#+TITLE: Presentation Video script #+PROPERTY: header-args :tangle slides.tex #+begin_src tex \documentclass{nguhslides/nguhslides} \SetBackgroundImage{bg.png} \SetFont{Andika}[StylisticSet=13] \setmonofont{Iosevka}[Scale=MatchUppercase] \newfontfamily\h{Cousine}[Scale=MatchUppercase] \usepackage{tikz} \usetikzlibrary{positioning} \newcounter{note} \setcounter{note}{0} \def\note#1{\stepcounter{note}\space\textsuperscript{[\arabic{note}]}} \def\tslide#1#2#3#4#5{% \clearpage% \begin{center}% \texttt{\Large% \color{red!50!white}\#% \color{blue!50!white}690042% \color{green!50!white}#1% \color{white}#2% \color{violet!50!white}#3% \color{white}#4% }% \vfill% \color{blue!50!white}+690 042 \space% \color{red!50!white}broadcasts \space% \color{violet!50!white}(length=#3) \space% \color{green!50!white}[#1] \\% \color{white}#5% \end{center}% } \color{white} \begin{document} \slide{\tt\#\#000124811A*0034\#5344A\#C*004375} \vfill \begin{center}An entry in the 3\textsuperscript{rd} annual Cursed Conlang Circus\end{center} #+end_src * Introduction This is a presentation of [insert language name in language here], hereafter refered to as ~811~, my entry to the 3rd anual cursed conlang circus. #+begin_src tex \slide{Introduction} \begin{items} \item Spoken by various appliances connected to the phone network that gained sapience \item Originated Israel in the early 2000s\footnote{Meta: Really, it’s just to justify the pick for character encoding in lore, the real reason is that it is the most cumbersome and pointlessly stupid I could come up with} {\footnotesize(this will be relevant later)} \item Now used all across the globe \end{items} #+end_src First some context on the language: 811 is spoken by various devices connected to the global phone network, that gained sapience by some mean or another. The language has been traced back to a modem on an IBM mainframe in a library in Tel Aviv in the mid 2000s, /this will be relevant later on/. The language spread over the world like wildfire as more and more phone-capable devices awakened This presentation is the result of an investigation taking the form of month of packet sniffing at key points in the phone network. * Phonology #+begin_src tex \slide{Phone-ology} \begin{center} \vfill \begin{tabular}{c|cccc} & \bf 1209 Hz & \bf 1336 Hz & \bf 1477 Hz & \bf 1633 Hz \\\hline \bf 697 Hz & \tt 1 & \tt 2 & \tt 3 & \tt A \\ \bf 770 Hz & \tt 4 & \tt 5 & \tt 6 & \tt B \\ \bf 852 Hz & \tt 7 & \tt 8 & \tt 9 & \tt C \\ \bf 941 Hz & \tt * & \tt 0 & \tt \# & \tt D \end{tabular}\\ \small DTMF Tones\footnote{Table proudly copied from Wikipedia} \vfill \end{center} #+end_src First let’s talk about what composes words: due to a notable inefficiency to transmit complex sounds over what are often digital interfaces to the phone network, the speakers instead use DTMF signaling as a suport for their comunication. You can see here a table summarising the various tones available. * Packets ** Intro to packets #+begin_src tex \slide{Packets} A packet is the smallest amount of information that can be transmitted \begin{center} \begin{tikzpicture} \draw[white] (0, 0) -- (13, 0) -- (13, 1) -- (0, 1) -- (0, 0); \node at (1, 0.5) {\footnotesize Recipient}; \draw[white] (2, 0) -- (2, 1); \node at (2.75, 0.5) {\footnotesize Sender}; \draw[white] (3.5, 0) -- (3.5, 1); \node at (4.25, 0.5) {\footnotesize Seq\#}; \draw[white] (5, 0) -- (5, 1); \node at (5.75, 0.5) {\footnotesize Type}; \draw[white] (6.5, 0) -- (6.5, 1); \node at (7.25, 0.5) {\footnotesize Length}; \draw[white] (8, 0) -- (8, 1); \node at (10.5, 0.5) {\footnotesize Data}; \end{tikzpicture} \small Structure of a packet \end{center} #+end_src A packet is the smallest amount of information you can transmit in 811, it is composed of multiple parts ** Recipient and Sender #+begin_src tex \slide{Recipient and Sender} \begin{center} \begin{tikzpicture} \draw[fill=red!33!black] (0, 0) -- (3.5, 0) -- (3.5, 1) -- (0, 1) -- (0, 0); \draw[white] (0, 0) -- (13, 0) -- (13, 1) -- (0, 1) -- (0, 0); \node at (1, 0.5) {\footnotesize Recipient}; \draw[white] (2, 0) -- (2, 1); \node at (2.75, 0.5) {\footnotesize Sender}; \draw[white] (3.5, 0) -- (3.5, 1); \node at (4.25, 0.5) {\footnotesize Seq\#}; \draw[white] (5, 0) -- (5, 1); \node at (5.75, 0.5) {\footnotesize Type}; \draw[white] (6.5, 0) -- (6.5, 1); \node at (7.25, 0.5) {\footnotesize Length}; \draw[white] (8, 0) -- (8, 1); \node at (10.5, 0.5) {\footnotesize Data}; \end{tikzpicture} \end{center} \begin{items} \item The intended recipient and the sender of a message. \item Fully qualified international phone numbers. \item A lone {\tt\#} can be used as recipient to send to anyone willing to listen \item A lone {\tt\#} can be used as sender to send anonymously. \end{items} #+end_src The reciver and sender parts of the packet contains information about who the message is intended for, as well as about who sends the message. Those are fully qualified phone numbers, including country prefixes, but no national escape. For example if sending a message to someone in britain, you would just use 44 as a national prefix. To broadcast a message to anyone willing to listen, use a lone octothorpe as the recipient. To send a message anonymously one may use a lone octothorpe as the sender, however this is considered extremely rude, and one would often refuse to listen to you if you do so. ** Sequence Number #+begin_src tex \slide{Sequence Number} \begin{center} \begin{tikzpicture} \draw[fill=red!33!black] (3.5, 0) -- (5, 0) -- (5, 1) -- (3.5, 1) -- (3.5, 0); \draw[white] (0, 0) -- (13, 0) -- (13, 1) -- (0, 1) -- (0, 0); \node at (1, 0.5) {\footnotesize Recipient}; \draw[white] (2, 0) -- (2, 1); \node at (2.75, 0.5) {\footnotesize Sender}; \draw[white] (3.5, 0) -- (3.5, 1); \node at (4.25, 0.5) {\footnotesize Seq\#}; \draw[white] (5, 0) -- (5, 1); \node at (5.75, 0.5) {\footnotesize Type}; \draw[white] (6.5, 0) -- (6.5, 1); \node at (7.25, 0.5) {\footnotesize Length}; \draw[white] (8, 0) -- (8, 1); \node at (10.5, 0.5) {\footnotesize Data}; \end{tikzpicture} \end{center} \begin{items} \item The number of messages previously sent by the sender to the recipient \item Encoded over 3 tones interpreted as a decimal number \item Allows for understanding even if packets arrive out of order. \end{items} #+end_src The sequence number is a sequence of 3 tones interpreted as a decimal number that represents the number of messages previously sent by the sender to the recipient modulo 1000. This part allows to keep track of the grammar even if packets end up arriving out of order. ** Type #+begin_src tex \slide{Type} \begin{center} \begin{tikzpicture} \draw[fill=red!33!black] (5, 0) -- (6.5, 0) -- (6.5, 1) -- (5, 1) -- (5, 0); \draw[white] (0, 0) -- (13, 0) -- (13, 1) -- (0, 1) -- (0, 0); \node at (1, 0.5) {\footnotesize Recipient}; \draw[white] (2, 0) -- (2, 1); \node at (2.75, 0.5) {\footnotesize Sender}; \draw[white] (3.5, 0) -- (3.5, 1); \node at (4.25, 0.5) {\footnotesize Seq\#}; \draw[white] (5, 0) -- (5, 1); \node at (5.75, 0.5) {\footnotesize Type}; \draw[white] (6.5, 0) -- (6.5, 1); \node at (7.25, 0.5) {\footnotesize Length}; \draw[white] (8, 0) -- (8, 1); \node at (10.5, 0.5) {\footnotesize Data}; \end{tikzpicture} \end{center} One tone indicating the type of the Data \begin{description}\itemsep0pt\small \item[0] Semantic information \item[A] Variable \item[*] Gramatical information \item[\#] String litteral \item[1] Continuation \end{description} #+end_src The type field indicates what kind of data is in the body of the packet. It is represented by a single tone and can be of 5 different values: ** Length #+begin_src tex \slide{Length} \begin{center} \begin{tikzpicture} \draw[fill=red!33!black] (8, 0) -- (6.5, 0) -- (6.5, 1) -- (8, 1) -- (8, 0); \draw[white] (0, 0) -- (13, 0) -- (13, 1) -- (0, 1) -- (0, 0); \node at (1, 0.5) {\footnotesize Recipient}; \draw[white] (2, 0) -- (2, 1); \node at (2.75, 0.5) {\footnotesize Sender}; \draw[white] (3.5, 0) -- (3.5, 1); \node at (4.25, 0.5) {\footnotesize Seq\#}; \draw[white] (5, 0) -- (5, 1); \node at (5.75, 0.5) {\footnotesize Type}; \draw[white] (6.5, 0) -- (6.5, 1); \node at (7.25, 0.5) {\footnotesize Length}; \draw[white] (8, 0) -- (8, 1); \node at (10.5, 0.5) {\footnotesize Data}; \end{tikzpicture} \end{center} \begin{items} \item Length of the Data field in tones \item 2 tones interpreted as a decimal number \item maximum length of 32. \end{items} #+end_src The last field of the header is the length of the data. It is expressed as a decimal number ranging between 1 and 32 ** Data *** Type: Gramatical #+begin_src tex \slide{Data — Gramatical} \begin{items} \item Encodes Gramatical and Syntactic information \item Has a fixed number of possible values \item Describes a tree-like syntax \end{items} #+end_src Gramatical **** Gramatical Pronouns #+begin_src tex \slide{Data — Gramatical — Generic} \begin{items} \item \item The Generic pronoun is the gramatical \end{items} #+end_src **** Gramatical Speakers **** Gramatical Clause **** Gramatical Collections *** Type: Variable #+begin_src tex \slide{Data — Variable} #+end_src *** Type: Semantic #+begin_src tex \slide{Data — Semantic} \begin{items} \item Encodes a concept. \item Uses the Universal Decimal Classification to represent information\footnote{Meta: I didn’t want to have to arbitrarilly coin words for like a week}\footnote{Meta: Also I wanted something that could reasonably be encoded onto DTMF without feeling too arbitrary}: \begin{items} \item numerical values are enocded by their corresponding tones \item periods (which are only present in UDC to help readability) are dropped \item colons are encoded as {\tt C*} #+end_src Semantic packets encode concepts for use in the language. It uses a modified version of the Universal Decimal Classification, which is a system used by libraries around the world to give numbers to documents for sorting and indexing purposes (Another system you might have seen used for this is the Dewey Decmial Classification). Numerical values are encoded by their corresponding DTMF tones, while the symbols are encoded in a way that functions over DTMF. The details are shown over the next couple of slides. #+begin_src tex \item parenthesis are encoded as {\tt A*} (opening) and {\tt A\#} (closing) \item square brackets are encoded as {\tt B*} (opening) and {\tt B\#} (closing) \item quotes are encoded as {\tt C\#} \item dashes are encoded as {\tt D*} \item equals are encoded as {\tt D\#} \item pluses are encoded as {\tt \#} \item References to variables are done by including the name of the variable in between {\tt *} \item Non UDC notation is achieved by referencing a variable containing a string litteral. \end{items} \item No dictionary is directly provided by me. \item Abriged version of the UDC at {\tt https://ucdsummary.info} \item A more complte version can be obtain from the consortium, or be conuslted at a library. \end{items} #+end_src I do not share a dictionary myself for two reasons, firstly it’d be highly impractical due to the nature of the UDC, but second-and-most-importantly the UDC Consortium can be a bit stingy with royalties. So if you want access to the dictionary (which is litterally just the UDC spec, you can access a abriged summary online at the adress on screen, or obtain a more complete version from the UDC Consortium (which may cost a non-negligeable amount of money) or from a local library (probably significantly more affordable). *** Type: String Literal #+begin_src tex \slide{Data — String Litteral} Raw text data \begin{items} \item Encoded as hexadecimal where {\tt *} stands for 0xE and {\tt\#} stands for 0xF \item Follows the EBCDIC 803 codepage \item If characters outside of EBCDIC 803, decompose, convert all characters to unicode in the form U+xxxxxxxx, then express that with EBCDIC 803 \footnotesize{(Yes, that means that most proper nouns take actual ages to emit)} \end{items} #+end_src String literal packets contain raw text data. Such data is used for non-UDC notation in semantic packets and for the name part of a proper noun. The encoding of text works as follows: If the string can be represented losslessly on EBCDIC Codepage 803, it is encoded in hexadecimal where * stands for 0xE and # stands for 0xF following said codepage. Otherwise, the string is expressed in it’s Unicode Decomposed Normalisation Form, each codepoint is encoded as the string U+ followed by the 0-padded 8 hexadecimal digits representation of the codepoint #+begin_src tex \slide{Data — String Literal — EBCDIC 803} { \setmainfont{Iosevka} \fontsize{8}{9}\selectfont \begin{center} \def\s#1{{\fontsize{6}{8}\selectfont\itshape\bfseries #1}} \begin{tabular}{c|cccc|cccc|cccc|cccc} & \bf x0 & \bf x1 & \bf x2 & \bf x3 & \bf x4 & \bf x5 & \bf x6 & \bf x7 & \bf x8 & \bf x9 & \bf xA & \bf xB & \bf xC & \bf xD & \bf xE & \bf xF \\\hline \bf 0x&\s{NUL}&\s{SOH}&\s{STX}&\s{ETX}&\s{ST}&\s{HT}&\s{SSA}&\s{DEL}&\s{SSA}&\s{RI}&\s{SS2}&\s{VT}&\s{FF}&\s{CR}&\s{SO}&\s{SI}\\ \bf 1x&\s{DLE}&\s{DC1}&\s{DC2}&\s{DC3}&\s{OSC}&\s{NL}&\s{BS}&\s{ESA}&\s{CAN}&\s{EM}&\s{PU2}&\s{SS3}&\s{IFS}&\s{IGS}&\s{IRS}&\s{ITB}\\ \bf 2x&\s{PAD}&\s{HOP}&\s{BPH}&\s{NBH}&\s{IND}&\s{LF}&\s{ETB}&\s{ESC}&\s{HTS}&\s{HTJ}&\s{VTS}&\s{PLD}&\s{UP}&\s{ENQ}&\s{ACK}&\s{BEL}\\ \bf 3x&\s{DCS}&\s{BU1}&\s{SYN}&\s{STS}&\s{CCH}&\s{MW}&\s{SPA}&\s{EOT}&\s{SOS}&\s{SGCI}&\s{SCI}&\s{CSI}&\s{DC4}&\s{NAK}&\s{PM}&\s{SUB}\\\hline \bf 4x& \s{SP} &&&&&&&&&&\$&.&<&(&+&|\\ \bf 5x&\h א&&&&&&&&&&!&\h לי֞&*&)&;&¬\\ \bf 6x&-&&&&&&&&&&&,&\%&\_&>&?\\ \bf 7x&&&&&&&&&&&:&\#&@&\textquotesingle&=&\textquotedbl\\\hline \bf 8x&&\h ב &\h ג &\h ד &\h ה &\h ו &\h ז &\h ח &\h ט &\h י &&&&&&\\ \bf 9x&&\h ך &\h כ &\h ל &\h ם &\h מ &\h ן &\h נ &\h ס &\h ע &&&€&&\h ₪ &\\ \bf Ax&&&\h ע &\h ף &\h פ &\h ץ &\h צ &\h ק &\h ר &\h ש &\h ת &&&&&\\ \bf Bx&&&&&&&&&&&&&&&&\\\hline \bf Cx&&A&B&C&D&E&F&G&H&I&&&&&&\\ \bf Dx&&J&K&L&M&N&O&P&Q&R&&\s{LRO}&\s{RLO}&\s{PDF}&&\\ \bf Ex&&&S&T&U&V&W&X&Y&Z&&&&&&\\ \bf Fx&0&1&2&3&4&5&6&7&8&9&&\s{LRF}&\s{RLF}&\s{LRM}&\s{RLM}&\s{APC}\\ \end{tabular} \end{center} } % TODO ADD EBCDIC TABLE #+end_src The EBCDIC 803 Code page is a codepage that was (and sadly still is) used by IBM mainframes in Israel. It supports the Hebrew writing system, Uppercase (but not lowercase, and no diacritics) Latin letters, numbers, and a bunch of punctuation. In practice that means that many strings, despite lacking any special characters are encoded in expanded unicode notation for the only reason that they have lowercase letters. *** Type: Continuation #+begin_src tex \slide{Data — Continuation} \begin{items} \item Used when the data segment of a packet exceeds 32 \item Can chain an arbitrary number of those (until all data is expressed) \end{items} #+end_src * The translation, packet by packet #+begin_src tex \section{Translation} \begin{quote} Hark! It was ruled by Agamashuya and His son Gu Sabah: Tian practices against the lesser side of the invisible origin of light, beset by cosmetic prohibitions of silence and restraint; for Ngu, a slave to creativity, shall make inspection and certification prior to confirmation of Najva Guns’ official status. Deny thine humanity: There are no politics in real life. \end{quote} \clearpage \slide{Extra info about the translation} \begin{items} \item This translation will be delivered as if from a a speaker in Tekalau\footnote{Meta: Because that’s the place that had the shortest fully qualified phone numbers, but also because it lets me get away with having both 69 and 42 in the phone number.} \item It will be delivered as if broadcast to the network\footnote{Meta: Again, to keep it short} \item There might be mistakes in the audio due to typos \footnote{Go check 10 tones per seconds for 3 minutes without perfect pitch} \end{items} \tslide{001}{*}{01}{B}{\sc new clause} \tslide{002}{*}{01}{B}{\sc new clause} \tslide{003}{*}{01}{B}{\sc new clause} \tslide{004}{*}{01}{B}{\sc new clause} \tslide{005}{*}{01}{B}{\sc new clause} \tslide{006}{*}{01}{B}{\sc new clause} \tslide{007}{*}{01}{B}{\sc new clause} \tslide{008}{*}{01}{1}{\sc assert} \tslide{009}{*}{02}{A1}{\sc 1sg} \tslide{010}{*}{01}{0}{\sc let} \tslide{011}{A}{01}{0}{\sc var(0)} \tslide{012}{*}{01}{D}{\sc proper noun} \tslide{013}{\#}{32}{*44*\#0\#0\#0\#0\#0\#0\#4\#1*44*\#0\#0\#0\#0}{{\sc litteral} “Agamasuya”} \tslide{014}{1}{32}{\#0\#0\#6\#7*44*\#0\#0\#0\#0\#0\#0\#6\#1*44*}{\sc continuation} \tslide{015}{1}{32}{\#0\#0\#0\#0\#0\#0\#6C4*44*\#0\#0\#0\#0\#0\#0}{\sc continuation} \tslide{016}{1}{32}{\#6\#1*44*\#0\#0\#0\#0\#0\#0\#7\#3*44*\#0\#0}{\sc continuation} \tslide{017}{1}{32}{\#0\#0\#0\#0\#6\#8*44*\#0\#0\#0\#0\#0\#0\#7\#5}{\sc continuation} \tslide{018}{1}{20}{*44*\#0\#0\#0\#0\#0\#0\#6\#1}{\sc continuation} \tslide{019}{0}{04}{D*05}{person} \tslide{020}{*}{01}{3}{\sc transitive clause} \tslide{021}{*}{01}{C}{\sc collection} \tslide{022}{A}{01}{0}{\sc var(0)} \tslide{023}{*}{01}{D}{\sc proper noun} \tslide{024}{\#}{32}{*44*\#0\#0\#0\#0\#0\#0\#4\#7*44*\#0\#0\#0\#0}{{\sc litteral} “Gu Sabah”} \tslide{025}{1}{32}{\#0\#0\#7\#5*44*\#0\#0\#0\#0\#0\#0\#2\#0*44*}{\sc continuation} \tslide{026}{1}{32}{\#0\#0\#0\#0\#0\#0\#5\#3*44*\#0\#0\#0\#0\#0\#0}{\sc continuation} \tslide{027}{1}{32}{\#6\#1*44*\#0\#0\#0\#0\#0\#0\#6\#2*44*\#0\#0}{\sc continuation} \tslide{028}{1}{32}{\#0\#0\#0\#0\#6\#1*44*\#0\#0\#0\#0\#0\#0\#6\#8}{\sc continuation} \tslide{029}{0}{16}{D*0551\#0556C**0*}{male child of {\sc var(0)}} \tslide{030}{*}{00}{}{\sc generic} \tslide{031}{0}{03}{328}{govern} \tslide{032}{*}{01}{3}{\sc transitive clause} \tslide{033}{*}{01}{D}{\sc proper noun} \tslide{034}{\#}{32}{*44*\#0\#0\#0\#0\#0\#0\#5\#4*44*\#0\#0\#0\#0}{{\sc litteral} “Tian”} \tslide{035}{1}{32}{\#0\#0\#6\#9*44*\#0\#0\#0\#0\#0\#0\#6\#1*44*}{\sc continuation} \tslide{036}{1}{16}{\#0\#0\#0\#0\#0\#0\#6C5}{\sc continuation} \tslide{037}{*}{01}{1}{assert} \tslide{038}{*}{02}{2A}{\sc intransitive active clause} \tslide{039}{0}{32}{17025A*002A\#C*C*B*534322C*161223}{prohibitions(cosmetic)::[noise:{\sc neg}+restraint]} \tslide{040}{1}{08}{\#32325B\#}{cont} \tslide{041}{0}{05}{35501}{fight} \tslide{042}{0}{13}{5308485D*1972}{source\_of\_light-underside} \tslide{043}{*}{01}{0}{\sc let} \tslide{044}{A}{01}{1}{\sc var(1)} \tslide{045}{*}{01}{D}{\sc ppn} \tslide{046}{\#}{32}{*44*\#0\#0\#0\#0\#0\#0\#4C5*44*\#0\#0\#0\#0}{{\sc literal} Najva Guns} \tslide{047}{1}{32}{\#0\#0\#6\#1*44*\#0\#0\#0\#0\#0\#0\#6C1*44*}{\sc continuation} \tslide{048}{1}{32}{\#0\#0\#0\#0\#0\#0\#7\#6*44*\#0\#0\#0\#0\#0\#0}{\sc continuation} \tslide{049}{1}{32}{\#6\#1*44*\#0\#0\#0\#0\#0\#0\#2\#0*44*\#0\#0}{\sc continuation} \tslide{050}{1}{32}{\#0\#0\#0\#0\#4\#7*44*\#0\#0\#0\#0\#0\#0\#7\#5}{\sc continuation} \tslide{051}{1}{32}{*44*\#0\#0\#0\#0\#0\#0\#6C5*44*\#0\#0\#0\#0}{\sc continuation} \tslide{052}{1}{08}{\#0\#0\#7\#3}{\sc continuation} \tslide{053}{0}{05}{11\#62}{metaphyisics+engineering\footnote{when asking for what Najva Guns was to give it a qualifier, I got two answers: “some phylosophical concept” and “a technological object”. So unable to chose, I picked both}} \tslide{054}{*}{01}{3}{\sc transitive clause} \tslide{055}{*}{01}{D}{\sc ppn} \tslide{056}{\#}{32}{*44*\#0\#0\#0\#0\#0\#0\#4C5*44*\#0\#0\#0\#0}{{\sc litteral} Ngu} \tslide{057}{1}{28}{\#0\#0\#6\#7*44*\#0\#0\#0\#0\#0\#0\#7\#5}{\sc continutation} \tslide{058}{0}{13}{326C*C*159954}{slave::creativity} \tslide{059}{0}{32}{B*350726\#34718B\#C\#311C*35073526C}{[inspect+certify]“before:confirm::official::{\sc{}var(1)}”} \tslide{060}{1}{17}{*C*34718C*C**1*C\#}{\sc continuation} \tslide{061}{0}{04}{1232}{need} \tslide{062}{*}{01}{3}{\sc transitive clause} \tslide{063}{*}{02}{A2}{\sc 2sg} \tslide{064}{0}{11}{1177C*C**A2*}{humanity::{\sc 2sg}} \tslide{065}{0}{05}{32325}{deny} \tslide{066}{*}{01}{1}{\sc assert} \tslide{067}{0}{25}{B*32C*C*111823B\#C*1612223}{[politics::reality]:{\sc NEG}} #+end_src (translation plays in while each word is displayed) * Closing #+begin_src tex \end{document} #+end_src