Difference between revisions of "1692: Man Page"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(-t explanation)
m (typo in -U)
Line 67: Line 67:
 
| -u||UTF-8 MODE; OTHERWISE DEFAULTS TO ANSEL||[Explanation of ANSEL necessary.] UTF-8 is rather standard. Similar in this regard to -q.
 
| -u||UTF-8 MODE; OTHERWISE DEFAULTS TO ANSEL||[Explanation of ANSEL necessary.] UTF-8 is rather standard. Similar in this regard to -q.
 
|-
 
|-
| -U||UPDATE (DEFAULT: FACEBOOK)||Update usually refers to replacing an old software with a newer version. The default here suggest posting a status update to Facebook.
+
| -U||UPDATE (DEFAULT: FACEBOOK)||Update usually refers to replacing an old software with a newer version. The default here suggests posting a status update to Facebook.
 
|-
 
|-
 
| -v||VERBOSE; ALIAS TO find / -exec cat {}||Almost standard flag, in ordinary programs the opposite of -q. This command prints the contents of all files in the filesystem tree. However, it will never complete, as certain device files never end (/dev/urandom contains random bytes). Note that the "find" command is missing <code>\;</code> and will not run, instead complaining <code>find: missing argument to `-exec'</code> .
 
| -v||VERBOSE; ALIAS TO find / -exec cat {}||Almost standard flag, in ordinary programs the opposite of -q. This command prints the contents of all files in the filesystem tree. However, it will never complete, as certain device files never end (/dev/urandom contains random bytes). Note that the "find" command is missing <code>\;</code> and will not run, instead complaining <code>find: missing argument to `-exec'</code> .

Revision as of 06:15, 10 June 2016

Man Page
For even more info, see blarbl(2)(3) and birb(3ahhaha I'm kidding, just Google it like a normal person.
Title text: For even more info, see blarbl(2)(3) and birb(3ahhaha I'm kidding, just Google it like a normal person.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: Initial draft/outline. As one of those comics, needs a section on each part. Needs an explanation of a man page for those unaware. Also needs fact-checking.
If you can address this issue, please edit the page! Thanks.

This comic shows a Unix man page for a fictional program called "blerp". It details the command line options for this program, many of which are strange, annoying, or even impossible. These options are mostly in alphabetical order.

Unix manpages are meant to provide a brief reference on the usage of a command, not verbose and well-written explanations as you may find in manuals which is another common type of documentation. This fictional manpage seems to exaggerate its crypticness, thus making fun of a common trait that many manpages have.

[Here is a short list of some thoughts on or explanations of the options.]

Flag Description Explanation
-a ATTACK MODE Like a robot or something similar. Strange for a command line program.
-b SUPPRESS BEES Nonsensical option.
-— FLAGS USE EM DASHES Hard to tell the difference between en and em dashes. Command line options (flags) typically use en dashes (short dashes approximately the same width as the letter n). Em dashes can't easily be typed into a command line interface, so switching flags from en to em dashes is excessively difficult and nonsensical.

Also implies a paradox where if flags were to use em dashes, this flag itself would be invalid.

-c COUNT NUMBER OF ARGUMENTS Most likely not useful.
-d PIPES OUTPUT TO DEBUG.EXE Almost a standard option, but .exe is the weird part.
-D DEPRECATED Useless.
-e EXECUTE SOMETHING Vague.
-f FUN MODE Strange and slightly ominous.
-g USE GOOGLE As an actual program flag, a bit hackjob-ish, but most likely relating to googling how this program works.
-h CHECK WHETHER INPUT HALTS Completely impossible, by the Halting Theorem.
-i IGNORE CASE (LOWER) Usually, ignoring case means that a program will run without differentiating between upper- and lowercase. This flag suggests that blerp will run ignoring all the lowercase characters completely, or ignoring all the uppercase characters with -I.
-I IGNORE CASE (UPPER)
-jk KIDDING A common acronym, not a program flag.
-n BEHAVIOR NOT DEFINED Possibly mathematically ominous? Otherwise useless.
-o OVERWRITE Standard flag.
-O OPPOSITE DAY Strange flag.
-p SET TRUE POPE; ACCEPTS \"ROME\" OR \"AVIGNON\" This refers to a historical schism in the Catholic Church. In the 14th century, the Pope briefly ruled from Avingon, France, instead of Rome. After the Papacy was returned to Rome in 1377, the Church split (the so-called Western Schism) as not everyone accepted the move and the Pople who ordered it. This flag apparently allows the user to select a preferred Pope. There is actually a possible feature request here, as \"PISA\", a third Pope, should also be an option.
-q QUIET MODE; OUTPUT IS PRINTED TO STDOUT INSTEAD OF BEING SPOKEN ALOUD In most cases, a program will output basic information to the console, and running it in quiet mode will make it run without outputting anything. Blerp, on the other hand, outputs information through audio, and the quiet flag causes it to run like a normal program.
-r RANDOMIZE ARGUMENTS Pointless and possibly damaging.
-R RUN RECURSIVELY ON http://* The star (*) symbol is often used as a wildcard to match any string of characters. "http://*" suggests that blerp will be run on every webpage on the internet.
-s FOLLOW SYMBOLIC LINKS SYMBOLICALLY [Needs explanation of symbolic links]
-S STEALTH MODE Similar to -a.
-t TUMBLE DRY Perhaps useful for a program that runs on a clothes dryer. Refers to directions like these.
-u UTF-8 MODE; OTHERWISE DEFAULTS TO ANSEL [Explanation of ANSEL necessary.] UTF-8 is rather standard. Similar in this regard to -q.
-U UPDATE (DEFAULT: FACEBOOK) Update usually refers to replacing an old software with a newer version. The default here suggests posting a status update to Facebook.
-v VERBOSE; ALIAS TO find / -exec cat {} Almost standard flag, in ordinary programs the opposite of -q. This command prints the contents of all files in the filesystem tree. However, it will never complete, as certain device files never end (/dev/urandom contains random bytes). Note that the "find" command is missing \; and will not run, instead complaining find: missing argument to `-exec' .
-V SET VERSION NUMBER Strange flag.
-y YIKES Meaningless.

The bug report site, http://www.inaturalist.org/taxa/46644-Hemiptera, isn't a currently active webpage, but inaturalist.org is a site working to extend biological research, and http://www.inaturalist.org/taxa/Hemiptera does work. wikipedia:Hemiptera is the order classifying True Bugs.

blorp(501)(c)(3) is not a valid chapter reference for a manpage, it is however a slightly covert reference to 501(c)(3) which is an organization that is tax-exempt.

Copyright "or best offer" is humourous, needs explanation of individual parts.

The "copyright" line references several variously open-source content licenses; GPL 2, GPL 3, creative commons, and BSD licenses are mentioned. "LIKE GECKO" is a reference to a web browser user-agent string; modern user-agent strings include a lot of text designed to let the browser pretend to be several different browsers/renderers, and "(like Gecko)" is the standard text for a browser that wants to be treated as if it were Gecko while admitting, if you look closely, that it isn't really Gecko. This copyright line, which includes a lot of mashed-together text that might appear to match any of several different licenses, resembles a user-agent string.

Transcript

[A terminal screen; the background is black and the text is white.]
NAME
blerp
SYNOPSIS
blerp {[ OPTION | ARGS ]...[ ARGS ... -f [FLAGS] ...}
blerp {... DIRECTORY ... URL | BLERP} OPTIONS ] -{}
DESCRIPTION
blerp FILTERS LOCAL OR REMOTE FILES OR RESOURCES USING PATTERNS DEFINED BY ARGUMENTS AND ENVIRONMENT VARIABLES. THIS BEHAVIOR CAN BE ALTERED BY VARIOUS FLAGS.
OPTIONS
-a ATTACK MODE
-b SUPPRESS BEES
-— FLAGS USE EM DASHES
-c COUNT NUMBER OF ARGUMENTS
-d PIPES OUTPUT TO DEBUG.EXE
-D DEPRECATED
-e EXECUTE SOMETHING
-f FUN MODE
-g USE GOOGLE
-h CHECK WHETHER INPUT HALTS
-i IGNORE CASE (LOWER)
-I IGNORE CASE (UPPER)
-jk KIDDING
-n BEHAVIOR NOT DEFINED
-o OVERWRITE
-O OPPOSITE DAY
-p SET TRUE POPE; ACCEPTS "ROME" OR "AVIGNON"
-q QUIET MODE; OUTPUT IS PRINTED TO STDOUT INSTEAD OF BEING SPOKEN ALOUD
-r RANDOMIZE ARGUMENTS
-R RUN RECURSIVELY ON http://*
-s FOLLOW SYMBOLIC LINKS SYMBOLICALLY
-S STEALTH MODE
-t TUMBLE DRY
-u UTF-8 MODE; OTHERWISE DEFAULTS TO ANSEL
-U UPDATE (DEFAULT: FACEBOOK)
-v VERBOSE; ALIAS TO find / -exec cat {}
-V SET VERSION NUMBER
-y YIKES
SEE ALSO
blerp(1), blerp(3), blirb(8), blarb(51) blorp(501)(c)(3)
BUG REPORTS
http://www.inaturalist.org/taxa/47744-Hemiptera
COPYRIGHT
GPL(2)(3+) CC-BY/5.0 RV 41.0 LIKE GECKO/BSD 4(2) OR BEST OFFER


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

I do not entirely understand how wikis work; however, I have attempted to add a transcript. I apologize if anything breaks. I also apologize if this is not how I should be apologizing.

In time, perhaps with counseling, I feel confident we will learn to forgive you. -- Brettpeirce (talk) 14:19, 27 June 2016 (UTC)

108.162.241.135 04:27, 10 June 2016 (UTC)

The Pope flag is referencing the time of the Avignon Papacy --108.162.237.243 04:56, 10 June 2016 (UTC)

Would have frickin' loved Randall if he inserted a reference to Pope of Dope here. :D Todor (talk) 08:17, 10 June 2016 (UTC)

OK, -e -h -v doesn't seem to work, it keeps halting at an input line!

Also, -p "AVIGNON" only works if I specify -D -I, -O, or -jk.

Why isn't -x documented on this man page? -x seems to do something but I'm not sure what the value of it is.

-y just returns "CHROMOSOME MISMATCH".

-a -e -f -n -o -r -S works if I specify -g, but -R starts to return CloudFlare errors after the first few million sites.

-v -d seems to make debug.exe speak out loud, but eventually it just starts spouting seemingly random numbers, unless I use -q. Is this desired behavior, or a bug?

255.255.255.0 (talk)  (please sign your comments with ~~~~)

(-jk | off) 108.162.221.8 20:19, 10 June 2016 (UTC)

The horrible thing about this comic is that somebody is sure to have implemented this program by the end of the day... 141.101.104.140 (talk) (please sign your comments with ~~~~)

Found one on Github: https://github.com/iKevinY/blerp . It has a man page file, but the program itself just outputs "bleep blerp" and doesn't implement any of the flags (yet?). 141.101.104.141 08:05, 10 June 2016 (UTC)
Thanks for linking my repo! I quickly drafted up the man page when the comic was released, and decided to use this project as an opportunity to become more familiar with Rust. I'll be gradually adding functionality to meet the "spec" of the man page. 108.162.244.79 06:38, 14 June 2016 (UTC)

"Behavior Not Defined" might be a reference to undefined behavior, where a program is allowed to do anything including make demons fly out your nose: https://en.wikipedia.org/wiki/Undefined_behavior 108.162.219.12 06:48, 10 June 2016 (UTC)

162.158.135.36 06:58, 10 June 2016 (UTC) Søren Mors

I thought Ansel was a deliberate misspelling of ANSI, the most common 8 bit codepage. 162.158.135.36 (talk) (please sign your comments with ~~~~)

The commit "Revision as of 07:08, 10 June 2016" reverted an IMO good explanation for the debug option with a bad one. Consider changing it back. Todor (talk) 07:20, 10 June 2016 (UTC)

I agree. The bad explanation also mixed up piping with redirection --141.101.104.76 07:41, 10 June 2016 (UTC)

I don't think `blerp -a -d -t -p "AVIGNON"` is a valid call to blerp, because the syntax line syntax is utterly off. For example, the first line has an unclosed open [, whereas the second line – in addition to having the corresponding unmatched ] – plays with the fact that even though {} is usually used to list a set of required items, {} is also how `find` (which might do something similar to blerp, and is in fact mentioned in -v) denotes its results when passed to an exec. 141.101.104.30 (talk) (please sign your comments with ~~~~)

Command line options do not normally use n-dashes; they use hyphens. Another problem with this option is that n-dashes and m-dashes cannot usually be displayed properly in the fixed-width fonts commonly used for command line terminals. The usual custom is to use two hyphens to represent a dash (which for proportional font display will often be converted to either an n-dash or m-dash).

In groff (GNU troff, the language in which man pages are written) the code for an m-dash is \(em. It will display as either two hyphens "--" or as an actual m-dash "" depending on the character set specified in the locale environment variables. Locoluis (talk) 17:17, 10 June 2016 (UTC)
Many commands use a double dash "--" to specify the end of the options. In "ls -a" the "-a" is an option. In "ls -- -a" the "-a" is the name of the file.--108.162.218.59 16:00, 11 June 2016 (UTC)

While "check whether input halts" clearly alludes to the halting problem, it may not actually be impossible, depending on what blerp actually does and what sort of input it accepts. (It says nothing about actually reporting the result, and it makes no guarantees that it will itself halt.)

PhantomLimbic (talk) 07:30, 10 June 2016 (UTC)

Indeed. Turing's proof for the halting theorem says that there is no algorithm that allows a Turing machine to determine whether any possible program/input combination will halt. However, this doesn't necessarily mean that it's impossible to develop an algorithm that determines whether a particular, fixed program will halt on an arbitrary input. 141.101.104.141 08:14, 10 June 2016 (UTC)

Currently, there is no mention of the unmatched square brackets in the synopsis, or unmatched parenthesis in the title text. Presumably a reference to XKCD comic 859. 141.101.98.77 07:51, 10 June 2016 (UTC)

Attack Mode might be a reference to the Yu-Gi-Oh Trading Card Game 162.158.85.117 08:23, 10 June 2016 (UTC)

Attack mode could also be a pun on "Attract Mode", a demo mode of arcade machines which is meant to attract players. 162.158.85.243 09:39, 15 June 2016 (UTC)

In the description of -b the computer (Named "Hex") from discworld uses ants not bees. Ref: https://en.wikipedia.org/wiki/Hex_(Discworld) 141.101.98.125 09:13, 10 June 2016 (UTC)Bluewhelk

Hmm. Reading the wiki article further Hex uses a beehive for long term storage! My bad 141.101.98.125 09:20, 10 June 2016 (UTC)Bluewhelk

"Or best offer" doesn't need to reference a financial offer, it may also mean that anyone offering to reuse the article with an alternative license is allowed to do so. Attack Mode and Stealth Mode seem to me to be references to computer viruses. Stealth Mode is also an option in some applications that can hide their presence when run, often because of malicious behavior, such as remote access tools, keyloggers, etc. Piping is not only used in Unix, it is also common in MS-DOS. Opposite Day has a good explanation on Wikipedia. Literal quote from Wikipedia: "Once Opposite Day is declared, statements mean the opposite of what they usually mean.". --162.158.222.217 11:17, 10 June 2016 (UTC)

Is there any evidence that Opposite Day may refer to Cyanide & Happiness? Opposite Day is a fairly well-known concept (at least from what I know growing up in the U.S.), and I don't see any direct connections to the specific C&H video short. I think that speculation should be removed. Sayno2quat (talk) 14:33, 10 June 2016 (UTC)

I could be wrong, but I think the program is also "simulating" a man (a play with the words because it's a man page). If you think like that a lot more commands makes sense (especially, -D, -e, -f, -g, -jk, -R, -u). Just a penny for a thought. --108.162.241.134 11:52, 10 June 2016 (UTC)

If someone wants a history of the useragent string (possibly a reference for that "citation needed"), then might be of interest. --Draco18s (talk) 16:12, 10 June 2016 (UTC)

The -n option might be a reference to echo, where it is an option often used but which does not work on all systems.
Am I the only one to see the “k” capitalized in -jK?
Ltrlg (talk) 18:55, 10 June 2016 (UTC)

I interpreted "CHECK WHETHER INPUT HALTS" as simply determining whether the input was a finite string. (while at the same time referencing the halting problem) --162.158.68.59 20:22, 10 June 2016 (UTC)

I think that "suppress bees" probably indicates a smoke situation, a situation where the magic smoke is let out of the computer, such as halt-catch-fire. Smoke is the way to suppress bees. 108.162.249.158 20:24, 10 June 2016 (UTC)

What does "BSD 4(2)" mean? --162.158.255.65 20:54, 10 June 2016 (UTC)

blerp -v | blerp -ha Mikemk (talk) 21:28, 10 June 2016 (UTC)

The word "bug" doesn't actually come from an insect; see the Etymology section of https://en.wikipedia.org/wiki/Software_bug 108.162.245.117 04:37, 11 June 2016 (UTC)

Some remarks to the current explanation:

- I think the description is more specific than suggested. It is true that command-line programs regularly read stdin and output something to stdout, but I would categorize only some of them grep/sed/awk/sort/... as filter in the narrower sense. Also that it can access remote files (URL syntax) is a clue
- In the syntax we have args, option, options, and flags
- the environment variables are never described
- attack mode could refer to a network attack, e.g. trying to break into protected servers, or not just filtering the information, but also using it in a damaging way
- suppress bees hints that for normal operation bees are used, something you would not expect from a typical command line program
- the em dashes are probably used from there on on the command line (right of this option)
- piping output to the MS-DOS debug.exe can be used for entering small assembly programs (including saving them typically as .com command), changing memory contents or accessing I/O ports. Normally it is used interactively. In a pipe setup it enhances the abilities of a text processing filter to do some enhanced actions on the target computer
- execute something, similar to the find program which can execute an external program per match; could also mean a specified algorithm and refer to halting check; in any case "something" is quite vague for a man page
- use google: either for input (e.g. read URLs by searching for ARG and getting the first found webpage) or some special Google API; possibly Google is so powerful, it can replace some of the functionality of the program. Just use Google
- Check whether input halts hints that the input processing including algorithm execution is so complex that it can run into an infinite loop, but easy enough to be not yet Turing complete or it is and -h is the joke; or some input never halts, e.g. /dev/random, or it refers to the robot theory, e.g. whether the attacked victim halts
- ignore case probably refers to the actual input files instead of to the command line
- overwrite would be funny with speech output
- the true pope is seemingly important fir filtering. Could refer to important faith settings for other programs, e.g. which editor to use vim/emacs or it us important for knowledge processing
- randomize arguments is good for some test procedures
- as mentioned in the explanation the copyright refers to the man page, not the program, here the explanation is inconsistent in the current revision

Sebastian --162.158.83.168 08:55, 11 June 2016 (UTC)


With reference to the See Also, the multiple blerps are due to different sections, see https://en.wikipedia.org/wiki/Man_page#Manual_sections 173.245.54.34 13:08, 11 June 2016 (UTC)

Could "supress bees" reference to "debian-main"? 162.158.86.131 19:20, 11 June 2016 (UTC)

Does the unclosed paren in the title text bother anyone else? 173.245.50.25 06:02, 12 June 2016 (UTC)

Not me, but someone somewhere... - 108.162.244.85 08:41, 12 June 2016 (UTC)

Is the newspaper on this What-If [1] relevant? - 108.162.244.85 08:41, 12 June 2016 (UTC)

I've never put anything on this site, but I feel it's worth mentioning that lerp (which stands for linear interpolation) is a thing and it sounds like blerp. 108.162.245.119 02:31, 13 June 2016 (UTC)

1. The NAME section is missing the one-line description that is necessary for the whatis and apropos commands. 2. "Set version number" could be used to set the version number in the output files or provide compatibility output. 108.162.216.98 02:38, 13 June 2016 (UTC)

I thought one of the main features of licences like the GPL and BSD was that they weren't revocable (unless you break the licence terms)? Oh, and someone else already mentioned it, but computer bugs aren't called "bugs" because of insects flying into them. The reason there's that famous bug in a logbook? That's because "bug" already existed as a term for a malfunction, and the operator who kept that logbook found it funny that a bug was caused by an actual bug. 141.101.98.92 00:42, 14 June 2016 (UTC)

The explanation about ANSEL is largely incorrect. ANSEL is backward compatible with 7-bit ASCII, which would make the "blerp" default compatible with most english-language inputs. Sysin (talk) 11:00, 15 June 2016 (UTC)

The capital flags D, I, O, R, S, U, V, have exactly one English anagram found: "DO VIRUS". 162.158.255.143 (talk) (please sign your comments with ~~~~)

Missing a Velociraptor option. -VR maybe? 108.162.246.70 01:03, 16 June 2016 (UTC)

-b is probably reference to "Suppress warnings/errors" option in some commands, while -y is probably reference to a "yes" option (default all prompts to yes), and -e a reference to some programs that allow you to execute commands within it, though wording makes it look that it may actually be executing randomly. 172.68.253.191 16:45, 4 December 2017 (UTC)

I think that GNU did this first, with `echo`. 162.158.166.191 (talk) (please sign your comments with ~~~~)