diff --git a/1984/mullender/README.md b/1984/mullender/README.md index 617169ca7..e7529c915 100644 --- a/1984/mullender/README.md +++ b/1984/mullender/README.md @@ -186,10 +186,10 @@ since there was no CS curriculum when we started). We had an assignment to create a pair of programs for the computer networks course. The programs were supposed to send data reliably from one program to the other over an unreliable channel. This channel was simulated with a pair of -[pipes](https://en.wikipedia.org/wiki/Pipeline_(software)). +[pipes](https://en.wikipedia.org/wiki/Pipeline_(software)). We decided for fun to create an -[obfuscated](https://en.wikipedia.org/wiki/Obfuscation_(software)) set of +[obfuscated](https://en.wikipedia.org/wiki/Obfuscation_(software)) set of programs, only for the [PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor), to do this, but circumventing the channel (i.e. cheating, hence the needed obfuscation). Our @@ -205,12 +205,12 @@ there](https://groups.google.com/g/net.lang.c/c/lx-TAuEyeRI/m/HdOOnNx6LC0J) and it. Since we had just recently created these [obfuscated -programs](https://en.wikipedia.org/wiki/Obfuscation_(software)) we decided we could +programs](https://en.wikipedia.org/wiki/Obfuscation_(software)) we decided we could use the same technique for an obfuscated C program. We upped the ante a bit by making it "portable". To add to the -[obfuscation](https://en.wikipedia.org/wiki/Obfuscation_(software)), we used +[obfuscation](https://en.wikipedia.org/wiki/Obfuscation_(software)), we used different formats for the integers in the array: some in decimal, some in octal, some in hexadecimal, and when the value would fit, some as an ASCII character. @@ -240,13 +240,13 @@ both a [PDP-11](https://en.wikipedia.org/wiki/PDP-11) and a On the [VAX](https://en.wikipedia.org/wiki/VAX), the routine `main()` is called with the `calls` instruction. This instruction uses the first (2-byte) -[word](https://en.wikipedia.org/wiki/Word_(computer_architecture)) of the called +[word](https://en.wikipedia.org/wiki/Word_(computer_architecture)) of the called routine as a mask of [registers](https://en.wikipedia.org/wiki/Processor_register) that are to be saved on the [stack](https://en.wikipedia.org/wiki/Call_stack). In other words, on the VAX the first word can be anything. On the [PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor), the first word -is a [branch](https://en.wikipedia.org/wiki/Branch_(computer_science)) +is a [branch](https://en.wikipedia.org/wiki/Branch_(computer_science)) [instruction](https://en.wikipedia.org/wiki/Instruction_set_architecture#Instructions) that branches over the VAX code. The PDP and VAX codes are thus completely separate. @@ -354,7 +354,7 @@ program that we came up with is as follows: The first word (after the label `vax`) is the [PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor) [branch -instruction](https://en.wikipedia.org/wiki/Branch_(computer_science)). +instruction](https://en.wikipedia.org/wiki/Branch_(computer_science)). [PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor) branch instructions are octal `400` + the distance divided by `2`. The string that both the [PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor) and @@ -364,10 +364,10 @@ programs use is after the `str` label, and the `pdp` label. On the [VAX](https://en.wikipedia.org/wiki/VAX), the program -[pushes](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) 9 (the length +[pushes](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) 9 (the length of the string), the address of the string and 1, the [file descriptor](https://en.wikipedia.org/wiki/File_descriptor) on the -[stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)), and calls +[stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)), and calls `write(2)`. Since we didn't know the exact calling sequence for [system calls](https://en.wikipedia.org/wiki/System_call), we just copied the source for the `write(2)` system call stub into our program. After `write(2)` finishes, the @@ -453,7 +453,7 @@ The only problem we had was that the program had chosen an Since everybody knows what a [PDP-11](https://en.wikipedia.org/wiki/PDP-11) branch instruction looks like (everyone knows that the traditional magic word for an executable, `0407`, is a [PDP-11](https://en.wikipedia.org/wiki/PDP-11) -[branch](https://en.wikipedia.org/wiki/Branch_(computer_science)), we changed +[branch](https://en.wikipedia.org/wiki/Branch_(computer_science)), we changed that to [decimal](https://en.wikipedia.org/wiki/Decimal). After checking the size of the resulting program we saw that it was one byte too long. The limit was 512 bytes, and our program was 513 bytes. So we changed the word `and` in diff --git a/1986/README.md b/1986/README.md index 739cf9daa..e4df6ded2 100644 --- a/1986/README.md +++ b/1986/README.md @@ -13,7 +13,7 @@ A poll was taken for the worst code for [BSD](https://en.wikipedia.org/wiki/Berkeley_Software_Distribution) and [System V](https://en.wikipedia.org/wiki/UNIX_System_V) program. The [Bourne Shell](https://en.wikipedia.org/wiki/Bourne_shell) (`/bin/sh`) won for both -systems. The BSD [finger](https://en.wikipedia.org/wiki/Finger_(protocol)) +systems. The BSD [finger](https://en.wikipedia.org/wiki/Finger_(protocol)) program took third place. [Rules](rules.txt) and [results](../years.html#1986) were posted to _net.lang.c_ diff --git a/1986/wall/README.md b/1986/wall/README.md index 998b2dc8a..0d75cf39b 100644 --- a/1986/wall/README.md +++ b/1986/wall/README.md @@ -40,8 +40,8 @@ This caused a number of System V C pre-preprocessors to gripe about a syntax error. This program is a masterpiece of obfuscation and humor. Larry Wall (the hacker -who gave us [rn](https://en.wikipedia.org/wiki/Rn_(newsreader)) and -[patch](https://en.wikipedia.org/wiki/Patch_(Unix)), etc.) asks you to compile and +who gave us [rn](https://en.wikipedia.org/wiki/Rn_(newsreader)) and +[patch](https://en.wikipedia.org/wiki/Patch_(Unix)), etc.) asks you to compile and consider the warning message generated by the C compiler. Then execute the program and type characters into its standard input. You will see why the compiler documents the program. diff --git a/1989/jar.2/README.md b/1989/jar.2/README.md index f52543b04..6f588f7ae 100644 --- a/1989/jar.2/README.md +++ b/1989/jar.2/README.md @@ -32,7 +32,7 @@ NOTE: this entry will likely segfault on invalid input. This is the most useful program submitted this year. It is a rather large subset of -[lisp](https://en.wikipedia.org/wiki/Lisp_(programming_language)). +[lisp](https://en.wikipedia.org/wiki/Lisp_(programming_language)). It has no error recovery, and performs rather poorly in a number of cases. Even so, placing all this functionality in such a small, densely packed program, is impressive enough to win the `Best of Show` award. diff --git a/1989/robison/README.md b/1989/robison/README.md index 2d9e007bb..b9e6722a9 100644 --- a/1989/robison/README.md +++ b/1989/robison/README.md @@ -56,7 +56,7 @@ For an interesting document on APL, see This program is a handy picoAPL interpreter written in `C--`. It outputs the evaluation of an -[APL](https://en.wikipedia.org/wiki/APL_(programming_language)) expression from standard +[APL](https://en.wikipedia.org/wiki/APL_(programming_language)) expression from standard input. Functions are limited to dyadic `+`,`-`,`x`, and unary `-`; numerals must be binary. Parentheses may be used for grouping. For example: diff --git a/1990/jaw/README.md b/1990/jaw/README.md index 26ef5e762..310d93223 100644 --- a/1990/jaw/README.md +++ b/1990/jaw/README.md @@ -87,7 +87,7 @@ by the receiver. Command shell archives alleviate this problem somewhat, but still require standardization for the function of data compression and mail-transparency encoding. On Unix, these coding format quandaries are overcome by planting a novel [Trojan -Horse](https://en.wikipedia.org/wiki/Trojan_horse_(computing)) in the archive +Horse](https://en.wikipedia.org/wiki/Trojan_horse_(computing)) in the archive header to perform negotiation-less decoding. Specifically, we outline the development of an extraordinarily compact portable diff --git a/1991/README.md b/1991/README.md index ebdb5fd46..06849aa12 100644 --- a/1991/README.md +++ b/1991/README.md @@ -77,7 +77,7 @@ us with your comments and suggestions today. For those who appreciate a bit of Internet history, this is how people used to contact the IOCCC in this given year, via [Unix to Unix CoPy -(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): +(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): > ...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
> judges@toad.com diff --git a/1992/README.md b/1992/README.md index f6165dd6c..ac1ebaeae 100644 --- a/1992/README.md +++ b/1992/README.md @@ -67,7 +67,7 @@ us with your comments and suggestions today. For those who appreciate a bit of Internet history, this is how people used to contact the IOCCC in this given year, via [Unix to Unix CoPy -(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): +(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): > ...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
> judges@toad.com diff --git a/1992/buzzard.2/README.md b/1992/buzzard.2/README.md index ab789859e..85d3d6be7 100644 --- a/1992/buzzard.2/README.md +++ b/1992/buzzard.2/README.md @@ -137,7 +137,7 @@ part. For more information on what you can do once you've piped [third](%%REPO_URL%%/1992/buzzard.2/third) into first, type `help` and consult -[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) manuals for +[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) manuals for further reference. Six sample THIRD programs are included in the files `demo1.th` through `demo6.th`. See [buzzard.2.README.html](buzzard.2.README.html) for more information. @@ -157,7 +157,7 @@ tackle this project. on smaller machines; `m[]` needs to be at least 2000 long, though. I say `first` is portable mainly because it uses native types. Unlike -[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)), which +[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)), which traditionally allows byte and multi-byte operations, all operations are performed on C `int`s. That means `first` code is only as portable as the same code would be in C. As in C, the result of dividing `-1` by `2` is machine (or @@ -190,7 +190,7 @@ answer the question "what will this do when I run it". A reader who has deciphered `first` to this point may think they know the answer to this question, but they may not know the answer to the more important question, "what will this program do when given the right input?" -[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) aficionados, +[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) aficionados, and especially FORTH implementers, may recognize the similarity of the internal compiler format to many FORTH internal representations, and, being aware that FORTH interpreters can often be self-compiling, may be suspicious that this @@ -205,7 +205,7 @@ represents a step backwards, in more ways than one.) ### What exactly is `first`, then? `first` is a tiny interpreter which implements a sufficient pseudo-subset of -[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) to allow it +[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) to allow it to bootstrap a relatively complete version of FORTH (based loosely on forth79), which I call THIRD. Complete relative to what, I'm not sure. @@ -217,11 +217,11 @@ the design file, design, I give a justification for why each primitive in THIRD is sorta slow, because `first` has so few primitives that many things that are primitives in -[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) (like swap) +[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) (like swap) take a significant amount of time in THIRD. When you get the `Ok.` message from `third`, try out some sample -[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) code +[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) code (`first` has no way of knowing if keyboard input is waiting, so it can't actually prompt you in a normal way. It only prints `'Ok.'` after you define a word). @@ -266,7 +266,7 @@ If you compile the basic THIRD system without the help word (strings take up one 1000 `int`s (plus the return stack). Thus THIRD gives you a relatively complete -[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) system in +[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) system in less than 700 chars of C source + about 1000 `int`s of memory--and it's portable too (you could copy over the THIRD memory dump to another machine, in theory). If the above numbers seem to you to be mixing apples and oranges (C source and diff --git a/1993/README.md b/1993/README.md index c8ec5677a..09cd80e0d 100644 --- a/1993/README.md +++ b/1993/README.md @@ -34,7 +34,7 @@ us with your comments and suggestions today. For those who appreciate a bit of Internet history, this is how people used to contact the IOCCC in this given year, via [Unix to Unix CoPy -(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): +(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): > ...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
> judges@toad.com diff --git a/1993/leo/README.md b/1993/leo/README.md index 5449b74d3..0d9f6aed6 100644 --- a/1993/leo/README.md +++ b/1993/leo/README.md @@ -37,7 +37,7 @@ International Internet community. ## Author's remarks: This program plays -[Mastermind](https://en.wikipedia.org/wiki/Mastermind_(board_game)), if you call +[Mastermind](https://en.wikipedia.org/wiki/Mastermind_(board_game)), if you call it by a name ending by `d`, otherwise it _solves_ Mastermind. Call it without parameters to use 6 digits (colors), or indicate the number of possible digits (you cannot change the number of positions so easily). diff --git a/1993/rince/README.md b/1993/rince/README.md index 3e4dfacca..d0c2c7661 100644 --- a/1993/rince/README.md +++ b/1993/rince/README.md @@ -72,7 +72,7 @@ Use `rince.alt` or `rince.alt2` as you would `rince` above. The author has provided several CABBAGE files for your amusement: - [rince.data1](%%REPO_URL%%/1993/rince/rince.data1) plays -[Breakout](https://en.wikipedia.org/wiki/Breakout_(video_game)). Keys are `,` +[Breakout](https://en.wikipedia.org/wiki/Breakout_(video_game)). Keys are `,` for left, `/` for right, and `.` for 'fire the ball'. - [rince.data2](%%REPO_URL%%/1993/rince/rince.data2) plays the old [James Bonfield](../../authors.html#James_Bonfield) diff --git a/1994/README.md b/1994/README.md index 73dc9c37f..792e68f2d 100644 --- a/1994/README.md +++ b/1994/README.md @@ -102,7 +102,7 @@ us with your comments and suggestions today. For those who appreciate a bit of Internet history, this is how people used to contact the IOCCC in this given year, via [Unix to Unix CoPy -(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): +(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): > ...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
> judges@toad.com diff --git a/1994/schnitzi/README.md b/1994/schnitzi/README.md index 3c6d239e2..d3d95aa9d 100644 --- a/1994/schnitzi/README.md +++ b/1994/schnitzi/README.md @@ -6,7 +6,7 @@ There are two alternate versions, one that has an increased buffer size and one that uses `fgets()`; neither are completely functional. See below section [Bugs -and (mis)features](#bugs-and-misfeatures) for details and the [Alternate +and (mis)features](#bugs-and-misfeatures) for details and the [Alternate code](#alternate-code) section for how to use. diff --git a/1995/README.md b/1995/README.md index 91952d85f..eb067e51c 100644 --- a/1995/README.md +++ b/1995/README.md @@ -51,7 +51,7 @@ us with your comments and suggestions today. For those who appreciate a bit of Internet history, this is how people used to contact the IOCCC in this given year, via [Unix to Unix CoPy -(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): +(UUCP)](https://en.wikipedia.org/wiki/UUCP#Mail_routing): > ...!{sun,pacbell,uunet,pyramid}!hoptoad!judges
> judges@toad.com diff --git a/2000/thadgavin/README.md b/2000/thadgavin/README.md index 5b5085043..4429fc6b5 100644 --- a/2000/thadgavin/README.md +++ b/2000/thadgavin/README.md @@ -8,7 +8,7 @@ that case see the FAQ on "[SDL1 and SDL2](../../faq.html#SDL)" and the -FAQ on "[(n)curses](../../faq.html#curses)" +FAQ on "[(n)curses](../../faq.html#curses)" for more information. We recommend that you use the alternate code so you can see what this entry diff --git a/2001/anonymous/README.md b/2001/anonymous/README.md index 70f89886e..800329350 100644 --- a/2001/anonymous/README.md +++ b/2001/anonymous/README.md @@ -121,7 +121,7 @@ The build script should give an example command to compile the program. ### Features [Basic Block](https://en.wikipedia.org/wiki/Basic_block) -[Cache](https://en.wikipedia.org/wiki/Cache_(computing)): Rather than +[Cache](https://en.wikipedia.org/wiki/Cache_(computing)): Rather than translating each instruction individually the dynamic binary translator generates a translation for an entire basic block of subject code. Having translated a block once, the target code generated will be stored for the @@ -136,7 +136,7 @@ The program runs [dynamically linked](https://en.wikipedia.org/wiki/Dynamic_linker) [ELF binaries](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format), and when the subject program attempts to make a call to a standard -[library](https://en.wikipedia.org/wiki/Library_(computing)), the translator +[library](https://en.wikipedia.org/wiki/Library_(computing)), the translator attempts to make an appropriate call to the native system libraries on the target machine. This involves mangling between different calling conventions, etc. @@ -207,9 +207,9 @@ on to the next line of code. Due to space limitations only a handful of instructions are supported; these instructions which are supported are supported in somewhat non-conventional ways: chunks of the architecture (e.g. flags) are just ignored, the ELF -[loader](https://en.wikipedia.org/wiki/Loader_(computing)) does not really load +[loader](https://en.wikipedia.org/wiki/Loader_(computing)) does not really load the [ELF binary](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format), -the target [library linking](https://en.wikipedia.org/wiki/Linker_(computing)) +the target [library linking](https://en.wikipedia.org/wiki/Linker_(computing)) can only pass up to 3 parameters to the target library function, etc. In short, please consider this a full disclaimer for any bug that may diff --git a/2001/dgbeards/README.md b/2001/dgbeards/README.md index d8e565a6b..0fae3939e 100644 --- a/2001/dgbeards/README.md +++ b/2001/dgbeards/README.md @@ -160,7 +160,7 @@ program would probably be rated somewhere around 1700-1900. It is better than most players, but will get destroyed by experienced human opponents. This program searches to a fixed depth of 3 -[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)). Because it does not +[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)). Because it does not search very deep, it performs very poorly in quiet strategic positions. In such positions, it will often just shuffle pieces around aimlessly until a tactical exchange presents itself. diff --git a/2004/anonymous/README.md b/2004/anonymous/README.md index 3e9b9655f..26222358b 100644 --- a/2004/anonymous/README.md +++ b/2004/anonymous/README.md @@ -49,7 +49,7 @@ It was not until a sequel was called for that this was changed. If you want to read the first edition they reprinted it some years back: `The Hobbit Facsimile First Edition`. The details are also discussed in [History of -Middle-earth (HoMe)](https://tolkiengateway.net/wiki/The_History_of_Middle-earth) VI, [The Return of the +Middle-earth (HoMe)](https://tolkiengateway.net/wiki/The_History_of_Middle-earth) VI, [The Return of the Shadow](https://tolkiengateway.net/wiki/The_Return_of_the_Shadow), part one of the history of [The Lord of the Rings](https://en.wikipedia.org/wiki/The_Lord_of_the_Rings) of a twelve volume set - as well as in [The diff --git a/2004/gavare/README.md b/2004/gavare/README.md index 441fdf6ec..8cc4c75a9 100644 --- a/2004/gavare/README.md +++ b/2004/gavare/README.md @@ -114,7 +114,7 @@ although the compiler gives it special meaning) and no preprocessor directives. This program is a small -[ray-tracer](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)). The first +[ray-tracer](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)). The first line of the source code may be modified if you want the resulting image to be of some other resolution than the predefined. The `A` value is an anti-alias factor. Setting it to `1` disables the anti-aliasing feature which makes the diff --git a/2005/README.md b/2005/README.md index 132a2b933..7a5c3517c 100644 --- a/2005/README.md +++ b/2005/README.md @@ -46,7 +46,7 @@ parenthesis](mikeash/index.html) is self reproducing). + The [Most sonorous output - 2005/jetro](jetro/index.html) might `sound` :-) like a good idea. + The [Best 2D puzzle - 2005/giljade](giljade/index.html) takes editorial license with expressions as well as the -with the [vi editor](https://en.wikipedia.org/wiki/Vi_(text_editor)). +with the [vi editor](https://en.wikipedia.org/wiki/Vi_(text_editor)). + The [Most ambiguous language - 2005/chia](chia/index.html) entry is really a C program. diff --git a/2005/timwi/README.md b/2005/timwi/README.md index c3ee4452f..fe30a5af4 100644 --- a/2005/timwi/README.md +++ b/2005/timwi/README.md @@ -28,7 +28,7 @@ simple 3-character fix will make it slightly less so. Quite a few BF programs found on the Net expect byte-based memory, quite a few exceed the capacity of this interpreter, but there are many that work. Some -small [quines](https://en.wikipedia.org/wiki/Quine_(computing)) work, some don't. +small [quines](https://en.wikipedia.org/wiki/Quine_(computing)) work, some don't. Why? diff --git a/2005/toledo/README.md b/2005/toledo/README.md index 85de4a927..3f4eaaf9c 100644 --- a/2005/toledo/README.md +++ b/2005/toledo/README.md @@ -68,14 +68,14 @@ get the first mode, run the program without arguments: ``` The other mode is accessible running the program with one argument -(5-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) +(5-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) analysis): ``` ./toledo a ``` -Two arguments for 6-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) +Two arguments for 6-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) analysis: ``` @@ -83,7 +83,7 @@ analysis: ``` And each successive argument will analyze one -[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) more. There is no ply +[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) more. There is no ply limit, but beyond 7 ply is very slow, try it at your own risk and computing time. @@ -125,7 +125,7 @@ algorithms. The interface accounts for only a fraction of the code, the core does multiples functions: it is called recursively to analyze and evaluate each -[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)), does [alpha-beta +[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)), does [alpha-beta pruning](https://en.wikipedia.org/wiki/Alpha-beta_pruning), move generation, machine playing, check detection, illegal move verification and does moves after they are verified. @@ -142,7 +142,7 @@ Other features are: * [Checkmate](https://en.wikipedia.org/wiki/Checkmate) detection. * Stalemate detection. * Computer is tough (check -7-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) and even in 5 ply can give a surprise to +7-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) and even in 5 ply can give a surprise to amateur players. diff --git a/2005/vik/README.md b/2005/vik/README.md index 42f6e9873..7e5339324 100644 --- a/2005/vik/README.md +++ b/2005/vik/README.md @@ -33,7 +33,7 @@ sure to pay attention to commas! :-) ## Author's remarks: This entry is a [Wolfenstein](https://en.wikipedia.org/wiki/Wolfenstein) style -[graphics engine](https://en.wikipedia.org/wiki/Rendering_(computer_graphics)) +[graphics engine](https://en.wikipedia.org/wiki/Rendering_(computer_graphics)) where a user can navigate in a [3D](https://en.wikipedia.org/wiki/3D_computer_graphics) world. The [maze](https://en.wikipedia.org/wiki/Maze) has walls with [bitmap diff --git a/2006/birken/README.md b/2006/birken/README.md index af5350d03..66282ed9e 100644 --- a/2006/birken/README.md +++ b/2006/birken/README.md @@ -39,7 +39,7 @@ A: Electronic Design Automation - Mechanical Abstract Machine Emulator What is TOFU? It's not a veggie friendly food, nor it is [Verilog](https://en.wikipedia.org/wiki/Verilog) or [VHDL](https://en.wikipedia.org/wiki/VHDL) It is not even -[Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language))! +[Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language))! NOTE: On some systems, `file(1)` claims one of the `.tofu` files is Pascal source. :-) diff --git a/2006/meyer/README.md b/2006/meyer/README.md index 2ede0677b..8c12a0774 100644 --- a/2006/meyer/README.md +++ b/2006/meyer/README.md @@ -91,8 +91,8 @@ include: - virtual method tables (all the virtual method tables have been combined to a single [vtable](https://en.wikipedia.org/wiki/Virtual_method_table) table). - runtime method binding. -- [inheritance](https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)) -and [polymorphism](https://en.wikipedia.org/wiki/Polymorphism_(computer_science)). +- [inheritance](https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)) +and [polymorphism](https://en.wikipedia.org/wiki/Polymorphism_(computer_science)). It is left as an exercise to the reader to find a corresponding implementation in a popular object-oriented programming language. diff --git a/2006/toledo3/README.md b/2006/toledo3/README.md index e55ecbeff..07d99e995 100644 --- a/2006/toledo3/README.md +++ b/2006/toledo3/README.md @@ -86,7 +86,7 @@ a mistake and the computer surpasses you. ;) ### WHAT ABOUT THE ENGINE Uses an [alpha-beta](https://en.wikipedia.org/wiki/Alpha_Beta) search up to a -depth of 3+level [ply](https://en.wikipedia.org/wiki/Ply_(game_theory)), +depth of 3+level [ply](https://en.wikipedia.org/wiki/Ply_(game_theory)), extended with quiescence search, that helps playing strength, something around 1500 ELO (level 1) to 1700 ELO (level 3). diff --git a/2011/eastman/README.md b/2011/eastman/README.md index ac3c1a5bd..92f7399f8 100644 --- a/2011/eastman/README.md +++ b/2011/eastman/README.md @@ -48,7 +48,7 @@ aren't familiar with it. Back in its day, this demo inspired lust and awe in geeks around the world. The graphics are -[raytraced](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)), with +[raytraced](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)), with procedural textures on the ball and the back wall. I did cheat a little to simplify the calculations: it uses a parallel projection, but textures the back wall to look as if there were a floor being viewed in perspective. The shadow diff --git a/2011/fredriksson/README.md b/2011/fredriksson/README.md index 1a408a7b4..5f48525f9 100644 --- a/2011/fredriksson/README.md +++ b/2011/fredriksson/README.md @@ -117,7 +117,7 @@ expressions by putting `]` as the first character, and putting `-` last. ### Other uses -* You can use this in place of [cat](https://en.wikipedia.org/wiki/Cat_(Unix)). +* You can use this in place of [cat](https://en.wikipedia.org/wiki/Cat_(Unix)). Just say diff --git a/2011/richards/README.md b/2011/richards/README.md index 01c466d6d..14c4c708f 100644 --- a/2011/richards/README.md +++ b/2011/richards/README.md @@ -31,7 +31,7 @@ For more detailed information see [2011/richards in bugs.html](../../bugs.html#2 ## Judges' remarks: Oh no, yet another -[dc](https://en.wikipedia.org/wiki/Dc_(computer_program))-style calculator? (see +[dc](https://en.wikipedia.org/wiki/Dc_(computer_program))-style calculator? (see [2000/dlowe](../../2000/dlowe/index.html) using an embedded Perl interpreter and deemed `Worst Abuse of the Rules`). Well, this one does it (expression calculation, that is, not the rule abuse) in a different way. The author claims that his calculator @@ -42,7 +42,7 @@ without attempting to unravel the source? ## Author's remarks: This is an implementation of the classic UNIX -[dc](https://en.wikipedia.org/wiki/Dc_(computer_program)) command, the +[dc](https://en.wikipedia.org/wiki/Dc_(computer_program)) command, the [reverse Polish](https://en.wikipedia.org/wiki/Reverse_Polish_notation) calculator. Actually it's a pretty bad implementation, since it only implements 32-bit integers (well, `sizeof(int)`-sized integers). It only implements the diff --git a/2011/zucker/README.md b/2011/zucker/README.md index a5bcfc811..1babc7bee 100644 --- a/2011/zucker/README.md +++ b/2011/zucker/README.md @@ -164,7 +164,7 @@ If you get stuck, come back and read below for additional hints and information. ### How this entry works: The program is not quite a traditional [ray -tracer](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)), but a "[sphere +tracer](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)), but a "[sphere tracer](sphere-tracing.pdf)" which uses distance fields to encode proximity to objects in the scene. Using sphere tracing to compute visibility instead of analytic ray tracing provides two advantages: first, it greatly eases the diff --git a/2012/blakely/README.md b/2012/blakely/README.md index 7d4b3677a..f1c104144 100644 --- a/2012/blakely/README.md +++ b/2012/blakely/README.md @@ -33,7 +33,7 @@ For more detailed information see [2012/blakely in bugs.html](../../bugs.html#20 Several IOCCC themes ([RPN calculator](https://en.wikipedia.org/wiki/Reverse_Polish_notation), animated [GIF](https://en.wikipedia.org/wiki/GIF) generator, [ray -tracing](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) graphics) in one package! +tracing](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) graphics) in one package! Very impressive! The checkerboard pattern in the output can be broken. Could you figure out how? @@ -47,7 +47,7 @@ Larger GIF files confuse some image viewers. This program renders a generic [RPN](https://en.wikipedia.org/wiki/Reverse_Polish_notation) expression in -[ray-traced](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) animated +[ray-traced](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) animated [GIF](https://en.wikipedia.org/wiki/GIF) form. The expression in spatial variables `x` and `y` is specified on the command-line with the required resolution, and an animated GIF showing a fly-around of the resulting surface is diff --git a/2012/endoh1/README.md b/2012/endoh1/README.md index e6687f0f5..b105ce7ec 100644 --- a/2012/endoh1/README.md +++ b/2012/endoh1/README.md @@ -268,7 +268,7 @@ it is surely a C99 feature. [pour-out.txt](pour-out.txt) pours you a cup of tea. [tanada.txt](tanada.txt) simulates "Terrace farming". ("Tanada" means a -"[terraced rice](https://en.wikipedia.org/wiki/Terrace_(earthworks) fields)" in Japanese.) +"[terraced rice](https://en.wikipedia.org/wiki/Terrace_(earthworks) fields)" in Japanese.) [clock.txt](clock.txt) is a "water" clock created by HAMANO Tsukasa. diff --git a/2012/endoh2/README.md b/2012/endoh2/README.md index 3ee0f60ad..e655ce3b4 100644 --- a/2012/endoh2/README.md +++ b/2012/endoh2/README.md @@ -34,8 +34,8 @@ and: ## Judges' remarks: A -[pi](https://en.wikipedia.org/wiki/Pi)/[e](https://en.wikipedia.org/wiki/E_(mathematical_constant)) -printing quasi-[quine](https://en.wikipedia.org/wiki/Quine_(computing)) in [ASCII +[pi](https://en.wikipedia.org/wiki/Pi)/[e](https://en.wikipedia.org/wiki/E_(mathematical_constant)) +printing quasi-[quine](https://en.wikipedia.org/wiki/Quine_(computing)) in [ASCII art](https://en.wikipedia.org/wiki/ASCII_art) with a compressed font in it; what else to wish for in this program? [Virtual machine](https://en.wikipedia.org/wiki/Virtual_machine) emulation? @@ -47,7 +47,7 @@ Yeah, "Again". Sorry. But I don't feel guilty or uncomfortable. This entry is based on 'over-used themes' such as self reproducing program and [pi](https://en.wikipedia.org/wiki/Pi) or -[e](https://en.wikipedia.org/wiki/E_(mathematical_constant)) computation. I +[e](https://en.wikipedia.org/wiki/E_(mathematical_constant)) computation. I know you're tired of them. But have you ever seen them **all-in-one**? @@ -65,18 +65,18 @@ This program generates a new program in the shape of the Greek letter One more thing... When you give a command line argument `e` to the first program, the generated one will compute [Napier's -constant](https://en.wikipedia.org/wiki/E_(mathematical_constant)) +constant](https://en.wikipedia.org/wiki/E_(mathematical_constant)) rather than pi. ### Obfuscation This program itself is in the shape of a -[spigot](https://en.wikipedia.org/wiki/Tap_(valve)). This is derived as an +[spigot](https://en.wikipedia.org/wiki/Tap_(valve)). This is derived as an analogy with [spigot algorithm](https://en.wikipedia.org/wiki/Spigot_algorithm) which infinitely computes the value of a mathematical constant such as [pi](https://en.wikipedia.org/wiki/Pi) or -[e](https://en.wikipedia.org/wiki/E_(mathematical_constant)). +[e](https://en.wikipedia.org/wiki/E_(mathematical_constant)). The two sets of programs, `314*.c` and `271*.c`, are almost the same except their shape and constant computational part. I tailored the @@ -85,7 +85,7 @@ tweaking the computational order and adding meaningless code fragments. On the other hand, to make it fit inside one screen (80 x 25), my program is shortened properly, more than it looks. (As you may know, -[quines](https://en.wikipedia.org/wiki/Quine_(computing)) need to make its +[quines](https://en.wikipedia.org/wiki/Quine_(computing)) need to make its program size doubled.) For example, this program involves 3x5 bitmap font data of ten characters (`0` -- `9`), as just 20 bytes: `G1%xJ{;Q7wunmuGuu%uu`. We can decode character `n` as `275*s[n+10] - 8*s[n] - 8`. I solved the system of diff --git a/2012/hamano/README.md b/2012/hamano/README.md index f65a0da57..5ab7cf438 100644 --- a/2012/hamano/README.md +++ b/2012/hamano/README.md @@ -65,7 +65,7 @@ confused. The results can be viewed with Acrobat Reader, [evince](http://en.wikipedia.org/wiki/Evince) and Apple's -[Preview](https://en.wikipedia.org/wiki/Preview_(macOS)). +[Preview](https://en.wikipedia.org/wiki/Preview_(macOS)). The updated version can also be viewed using Ghostscript. diff --git a/2012/hou/README.md b/2012/hou/README.md index 46215b944..f8b831d8b 100644 --- a/2012/hou/README.md +++ b/2012/hou/README.md @@ -132,7 +132,7 @@ As an extra tweak, the text message actually does something useful. Remove the [^1]: [Russ Cox, Regular Expression Matching: the Virtual Machine Approach](http://swtch.com/~rsc/regexp/regexp2.html) -[^2]: [Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)](http://swtch.com/~rsc/regexp/regexp1.html) +[^2]: [Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)](http://swtch.com/~rsc/regexp/regexp1.html) @@ -819,7 +819,7 @@ explore yet untested numbers for the rest of your life. The number of hex digits in the start number is limited by `ARG_MAX`, probably minus some overhead for the environment variables (use -[env()](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html) +[env()](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html) to trim your environment). In bits this leaves you with `2 to the power of (4 * ARG_MAX)`. diff --git a/2018/burton2/README.md b/2018/burton2/README.md index b5070da04..3dd6e6b26 100644 --- a/2018/burton2/README.md +++ b/2018/burton2/README.md @@ -400,7 +400,7 @@ in [prog.c](%%REPO_URL%%/2018/burton2/prog.c), and the program [manpage.sh](%%REPO_URL%%/2018/burton2/manpage.sh) was added to the corpus. [manpage.sh](%%REPO_URL%%/2018/burton2/manpage.sh) is a useful program that turns ASCII versions of man -pages (e.g., [tac(1)](%%REPO_URL%%/2018/burton2/tac.1) man page) into real man pages. It works for C and C-like +pages (e.g., [tac(1)](%%REPO_URL%%/2018/burton2/tac.1) man page) into real man pages. It works for C and C-like languages, command lines, and was designed to handle man page sections 1-8. It works well on most inputs, but tends to need some raw nroff for more fancy constructions, such as combined arguments (e.g. the `-r` and `-s` arguments to tac diff --git a/2018/endoh2/README.md b/2018/endoh2/README.md index 4d7d80ae9..e88c69f54 100644 --- a/2018/endoh2/README.md +++ b/2018/endoh2/README.md @@ -38,7 +38,7 @@ sketch [comté](https://en.wikipedia.org/wiki/Comté_cheese) called ["Dead Parrot"](https://en.wikipedia.org/wiki/Dead_Parrot_sketch) from the British sitcom ["Monty Python's Flying Circus"](https://en.wikipedia.org/wiki/Monty_Python%27s_Flying_Circus) The "_Python_" in the award name refers to Monty Python, **not** the -[programming language Python](https://en.wikipedia.org/wiki/Python_(programming_language) +[programming language Python](https://en.wikipedia.org/wiki/Python_(programming_language) (the name of the programming language Python is derived from Monty Python). The shape of [prog.c](%%REPO_URL%%/2018/endoh2/prog.c) is "Undead Parrot" based on "dead parrot". The diff --git a/2018/yang/README.md b/2018/yang/README.md index 3a435692f..7ce48c99d 100644 --- a/2018/yang/README.md +++ b/2018/yang/README.md @@ -32,7 +32,7 @@ this program left and recompiling will reveal other tools including a right rota and a shift program. Strange things happen [when the world is upside -down](https://en.wikipedia.org/wiki/Wacky_Wednesday_(book))! It is entirely possible +down](https://en.wikipedia.org/wiki/Wacky_Wednesday_(book))! It is entirely possible that this remark is completely misleading. What exactly does the shift program do? diff --git a/2019/poikola/README.md b/2019/poikola/README.md index 389e8149a..1bf7199a3 100644 --- a/2019/poikola/README.md +++ b/2019/poikola/README.md @@ -86,9 +86,9 @@ Do you have the time to see what this program does? Think again, come back and try again. Note that [2](https://t5k.org/curios/page.php/2.html) can be said to be the -least [odd](https://en.wikipedia.org/wiki/Parity_(mathematics)) +least [odd](https://en.wikipedia.org/wiki/Parity_(mathematics)) [prime](https://en.wikipedia.org/wiki/Prime_number) because it is the greatest -[even](https://en.wikipedia.org/wiki/Parity_(mathematics)) prime. Moreover `2` +[even](https://en.wikipedia.org/wiki/Parity_(mathematics)) prime. Moreover `2` can be also said to be the greatest odd prime because it is the least even prime. diff --git a/2020/endoh1/README.md b/2020/endoh1/README.md index a7d514fa5..8a6bbbda5 100644 --- a/2020/endoh1/README.md +++ b/2020/endoh1/README.md @@ -54,7 +54,7 @@ Use `prog.alt` as you would `prog` above. ## Judges' remarks: When playing -[Minesweeper](https://en.wikipedia.org/wiki/Minesweeper_(video_game)), a +[Minesweeper](https://en.wikipedia.org/wiki/Minesweeper_(video_game)), a misclick might ruin a game, so why not leave the routine to the computer? This program automatically uncovers mines according to several rules, and leaves guessing (and applying the most straightforward of the rules -- just for fun, diff --git a/2020/ferguson1/HACKING.md b/2020/ferguson1/HACKING.md index 1ffadfd47..0d58038c0 100644 --- a/2020/ferguson1/HACKING.md +++ b/2020/ferguson1/HACKING.md @@ -507,7 +507,7 @@ snakeskin has some other purpose? ## Snake moves faster over time -In the game [Surround](https://en.wikipedia.org/wiki/Surround_(video_game)) you +In the game [Surround](https://en.wikipedia.org/wiki/Surround_(video_game)) you have no control over the speed. I believe there are five different speed levels but the player has no control over it except the drawing mode. It would be possible to make it so the snake moves faster over time. How often and by what diff --git a/2020/ferguson1/bugs.md b/2020/ferguson1/bugs.md index ead27ef5e..37751c84f 100644 --- a/2020/ferguson1/bugs.md +++ b/2020/ferguson1/bugs.md @@ -5,7 +5,7 @@
* [Built-in test unit for some features!](#builtin-test-unit) * [The snake doesn't seem to be moving](#stillsnake) -* [getch() also accepts input from some input hardware other than keyboards](#getch) +* [getch() also accepts input from some input hardware other than keyboards](#getch) * [SIZE=0 is the same as SIZE=1 and other oddities](#size) * ['I was a few places behind my tail and I ran into it!'](#bitetail) * [With negative growth the snake drops from the middle of the body](#middleofsnake) diff --git a/2020/ferguson1/gameplay.md b/2020/ferguson1/gameplay.md index 9912b5206..323dd8ac1 100644 --- a/2020/ferguson1/gameplay.md +++ b/2020/ferguson1/gameplay.md @@ -14,7 +14,7 @@ for the input keys. * [Playing the game](#playing) * [Walls](#walls) * [Cannibalism](#cannibalism) - * [Stretching (shedding)](#shedding) + * [Stretching (shedding)](#shedding) * [Winning](#winning) * [Quitting](#quitting) @@ -23,10 +23,10 @@ for the input keys. * [**Photosensitive epilepsy/Stimulation overload trigger warnings**](#warning) * [Drawing / Practice mode](#drawing) - * [Computer playing / Automatic mode (Photosensitive epilepsy/Stimulation overload trigger)](#auto) + * [Computer playing / Automatic mode (Photosensitive epilepsy/Stimulation overload trigger)](#auto) * [Variations](#auto-variations) - * [Grow-Shrink (Positive/Negative Winning) mode](#grow-shrink) - * [Hypnotic / Sleepy mode (Photosensitive epilepsy/Stimulation overload trigger)](#hypnotic) + * [Grow-Shrink (Positive/Negative Winning) mode](#grow-shrink) + * [Hypnotic / Sleepy mode (Photosensitive epilepsy/Stimulation overload trigger)](#hypnotic) * [Stimulation / Calming mode](#stim) * [Other ideas](#other-ideas) @@ -44,7 +44,7 @@ for the input keys. * [GROW / SHEDS - Growth / Shedding sizes](#growth) -7. [Conclusion (and inspirational words for everyone)](#conclusions) +7. [Conclusion (and inspirational words for everyone)](#conclusions)
@@ -728,7 +728,7 @@ are called Grow / Shrink).
-## Hypnotic / Sleepy mode (Photosensitive epilepsy/Stimulation overload trigger) +## Hypnotic / Sleepy mode (Photosensitive epilepsy/Stimulation overload trigger)
**Photosensitive epilepsy/stimulation overload trigger warning:** @@ -892,7 +892,7 @@ it will take the number of movements before it is 'its full size'.
-# 7. Conclusion (and inspirational words for everyone) +# 7. Conclusion (and inspirational words for everyone)
I believe that this file has given more than enough information for anyone to diff --git a/2020/ferguson1/obfuscation.md b/2020/ferguson1/obfuscation.md index 6d2bbd62f..f1be814ca 100644 --- a/2020/ferguson1/obfuscation.md +++ b/2020/ferguson1/obfuscation.md @@ -15,12 +15,12 @@ already knew that so no harm there, hey?
- [How does it work?](#works) - [How does the snake movement work?](#movement) -- [Drawing (manual) and computer playing (automatic) modes](#manual-automatic) +- [Drawing (manual) and computer playing (automatic) modes](#manual-automatic) - [Collision detection](#collision) * [Cannibal collision detection](#cannibalcollision) * [Collision detection when resizing the window of the game](#resizing) - [Obfuscation](#obfuscation) -- [Skinning the snake (i.e. decreasing the iocccsize)](#skinning) +- [Skinning the snake (i.e. decreasing the iocccsize)](#skinning) - [A few more interesting size optimisations](#size)
diff --git a/2020/ferguson1/troubleshooting.md b/2020/ferguson1/troubleshooting.md index 39781cac2..8f7034c28 100644 --- a/2020/ferguson1/troubleshooting.md +++ b/2020/ferguson1/troubleshooting.md @@ -8,15 +8,15 @@ anything that can cause more than one issue I will list those separately to keep it as structured as possible/easiest to find.
-* [The top wall isn't (all/some of the time) visible!](#topwall) +* [The top wall isn't (all/some of the time) visible!](#topwall) * [The snake isn't moving!](#notmoving) -* [I can't see the snake head (or other part of the snake)!](#invisiblehead) +* [I can't see the snake head (or other part of the snake)!](#invisiblehead) * [I can't see the bug!](#invisiblebug) * [The game froze!](#froze) * [The game gets slower as the snake gets bigger!](#bigsnake) * [I set SIZE=0 GROW=1, ate a bug but still only the head was visible! Why?](#headonly) * [I like black text on a white background but even with a white background terminal it ends up black!](#monochrome) -* [The text is hard to see (not bright enough)!](#toodark) +* [The text is hard to see (not bright enough)!](#toodark) * [Can I move the snake faster temporarily without having to modify the wait time?](#movefaster) * [On environmental variables more generally and string to int conversions](#envvars) * [Errors and error reporting](#errors) diff --git a/2020/ferguson2/recode.md b/2020/ferguson2/recode.md index 2c8648f48..86a998f08 100644 --- a/2020/ferguson2/recode.md +++ b/2020/ferguson2/recode.md @@ -18,7 +18,7 @@ have to if you don't wish to. - [Only write config file](#onlyconfig) - [Reusing a configuration](#reuseconfig) - [Write config file, read data file and pass to Enigma simulator](#passtoenigma) -- [Piping directly to the Enigma code once (with randomised settings, saved)](#directlytoenigma) +- [Piping directly to the Enigma code once (with randomised settings, saved)](#directlytoenigma) - [Usage conclusion](#conclusion) - [Example additions](#additions) - [Example uses](#exampleuses) diff --git a/2020/kurdyukov4/README.md b/2020/kurdyukov4/README.md index ef3825f7b..1330dda6a 100644 --- a/2020/kurdyukov4/README.md +++ b/2020/kurdyukov4/README.md @@ -66,7 +66,7 @@ the Elves in Tolkien's Legendarium. It means sound taste (plural is `lámatyáve and it refers to phonaesthesia - in other words, it refers to the pleasure of sound and form of words. It's discussed in [Morgoth's Ring](https://en.wikipedia.org/wiki/Morgoth%27s_Ring), volume X of [History of -Middle-earth (HoMe)](https://en.wikipedia.org/wiki/The_History_of_Middle-earth). +Middle-earth (HoMe)](https://en.wikipedia.org/wiki/The_History_of_Middle-earth). Now can you appreciate the award title a bit better? diff --git a/bin/gen-years.sh b/bin/gen-years.sh index ca0c6a1a8..a5778eb2c 100755 --- a/bin/gen-years.sh +++ b/bin/gen-years.sh @@ -686,7 +686,7 @@ for YYYY in $("$TAC_TOOL" "$TOP_FILE"); do echo "
" echo "## $YYYY - The $ORDINAL IOCCC" echo - echo "About the $ORDINAL IOCCC ($YYYY)
" + echo "About the $ORDINAL IOCCC ($YYYY)
" echo "Download all IOCCC winning entries of $YYYY
" echo } | if [[ -z $NOOP ]]; then diff --git a/bugs.md b/bugs.md index 7e85734c8..e5e3a3b50 100644 --- a/bugs.md +++ b/bugs.md @@ -2208,7 +2208,7 @@ make a pull request. If `DISPLAY` is not set the program will very likely crash, do something strange (or if you're very unlucky your computer might [halt and catch -fire](https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(computing))! :-) ). +fire](https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(computing))! :-) ).
@@ -3338,7 +3338,7 @@ Do you have a fix? We welcome it! The author stated that the program will crash if no argument is passed to the program though we note that your computer might also [halt and catch -fire](https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(computing)) :-) +fire](https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(computing)) :-)
@@ -3464,7 +3464,7 @@ The author stated that the program will crash if no argument is passed to the program or if invalid arguments (e.g. file does not exist) or images of mismatching sizes or unsupported pixel formats though we note that your computer might also [halt and catch -fire](https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(computing)) :-) +fire](https://en.wikipedia.org/wiki/Halt_and_Catch_Fire_(computing)) :-)
diff --git a/faq.md b/faq.md index 129c42c7f..83625879f 100644 --- a/faq.md +++ b/faq.md @@ -50,7 +50,7 @@ This is FAQ version **28.0.3 2024-07-27**. - 3.6 - An IOCCC entry messed up my terminal application, how do I fix this? - 3.7 - How do I run an IOCCC entry that requires X11? - 3.8 - How do I compile an IOCCC entry that requires SDL1 or SDL2? -- 3.9 - How do I compile an IOCCC entry that requires (n)curses? +- 3.9 - How do I compile an IOCCC entry that requires (n)curses? - 3.10 - How do I compile and use an IOCCC entry that requires sound? - 3.11 - Why do Makefiles use -Weverything with clang? - 3.12 - How do I find out how to send interrupt/EOF etc. for entries that require it? @@ -60,20 +60,20 @@ This is FAQ version **28.0.3 2024-07-27**. - 3.16 - How do I compile and install libjpeg-turbo for entries that require it? - 3.17 - How do I compile and install ImageMagick for entries that require it? - 3.18 - How do I compile and install OpenGL for entries that require it? -- 3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds? +- 3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds? - 3.20 - How do I download individual winning entries or all winning entries of a given year? - 3.21 - What are `try.sh` and `try.alt.sh` scripts and why should I use them? ## Section 4 - [Changes made to IOCCC entries](#faq4) - 4.0 - Why are some winning author remarks incongruent with the winning IOCCC code? -- 4.1 - Why were some calls to the libc function gets(3) changed to use fgets(3)? +- 4.1 - Why were some calls to the libc function gets(3) changed to use fgets(3)? - 4.2 - What was changed in an IOCCC entry source code? - [4.3 - Why do author remarks sometimes not match the source and/or why are there other inconsistencies with the original entry?](#faq4_3) - 4.4 - What is the meaning of the file ending in .orig.c in IOCCC entries? - 4.5 - Why were alternate versions added to some entries when the original entry worked fine and well? -- 4.6 - Why was arg count and/or type changed in main() in some older entries? +- 4.6 - Why was arg count and/or type changed in main() in some older entries? - 4.7 - Why were some filenames changed? - 4.8 - Why were files added or removed from some entries? @@ -92,7 +92,7 @@ other inconsistencies with the original entry?](#faq4_3) ## Section 6 - [Miscellaneous IOCCC](#faq6) - 6.0 - How did an entry that breaks the size rule 2 win the IOCCC? -- 6.1 - Is there a list of known bugs and (mis)features of IOCCC entries? +- 6.1 - Is there a list of known bugs and (mis)features of IOCCC entries? - 6.2 - May I mirror the IOCCC website? - 6.3 - May I use parts of the IOCCC in an article, book, newsletter, or instructional material? - 6.4 - Why do you sometimes use the first person plural? @@ -105,7 +105,7 @@ other inconsistencies with the original entry?](#faq4_3) - 6.11 - Am I allowed to use IOCCC content? - 6.12 - What is Mastodon and why does IOCCC use it? - 6.13 - How may I find my author handle? -- 6.14 - How do I set certain tabstops for viewing source code in vi(m)? +- 6.14 - How do I set certain tabstops for viewing source code in vi(m)? - 6.15 - How do the menus on the website work and what can I do if they don't work? - 6.16 - How do I find more information about a winning author of an entry? - 6.17 - What is a `.entry.json` file and how is it used? @@ -1723,7 +1723,7 @@ were posted on 17 April 1984. There were 4 entries that won in 1984: -1. [(dis)honorable mention](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0) +1. [(dis)honorable mention](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=842%40nsc.UUCP&rnum=8&filter=0) 2. [3rd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=843%40nsc.UUCP&rnum=7&filter=0) 3. [2nd place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=844%40nsc.UUCP&rnum=6&filter=0) 4. [1st place](http://groups.google.com/groups?q=Obfuscated&hl=en&lr=&ie=UTF-8&as_drrb=b&as_mind=1&as_minm=1&as_miny=1983&as_maxd=18&as_maxm=4&as_maxy=1984&selm=845%40nsc.UUCP&rnum=5&filter=0) @@ -2744,7 +2744,7 @@ for more information about pull requests.
-### FAQ 3.9: How do I compile an IOCCC entry that requires (n)curses? +### FAQ 3.9: How do I compile an IOCCC entry that requires (n)curses?
@@ -3403,7 +3403,7 @@ We recommend trying a method suitable for your environment first, if possible.
-### 3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds? +### 3.19 - What kind of make(1) compatibility does the IOCCC support and will it support other kinds?
@@ -3598,7 +3598,7 @@ the original code when reading the author's (and sometimes authors') remarks.
-### FAQ 4.1: Why were some calls to the libc function gets(3) changed to use fgets(3)? +### FAQ 4.1: Why were some calls to the libc function gets(3) changed to use fgets(3)?
@@ -3801,7 +3801,7 @@ judgement call.
-### FAQ 4.6: Why was arg count and/or type changed in main() in some older entries? +### FAQ 4.6: Why was arg count and/or type changed in main() in some older entries?
@@ -4411,7 +4411,7 @@ get around rule 2 size limits is discouraged).
-### FAQ 6.1: Is there a list of known bugs and (mis)features of IOCCC entries? +### FAQ 6.1: Is there a list of known bugs and (mis)features of IOCCC entries?
Yes! Please see [bugs.html](bugs.html) for a list of known bugs and/or issues of a @@ -4919,7 +4919,7 @@ NOTE: The _JSON null_ is **NOT** enclosed in quotes! ``` This _JSON member_ holds the -[Mastodon social network](https://en.wikipedia.org/wiki/Mastodon_(social_network)) +[Mastodon social network](https://en.wikipedia.org/wiki/Mastodon_(social_network)) handle of the author. There **MUST** be one and only one `mastodon` _JSON member_ and the _JSON value_ **MUST** diff --git a/markdown.html b/markdown.html index 57cb0ee0f..9c86e2ecd 100644 --- a/markdown.html +++ b/markdown.html @@ -505,12 +505,13 @@ echo "This code block is NOT indented" <===

Please do NOT use ASCII tabs in markdown files

+

Please do NOT indent with ASCII tabs, OR use any +ASCII tab characters anywhere inside a markdown file.

While we have nothing against the ASCII tab character in general, we have discovered that ASCII tab characters create problems when used as part of the leading whitespace within a markdown file.

If you need to indent 2 or more levels, use multiples of 4 ASCII -SPACES. Please do NOT indent with ASCII tabs, OR use any -ASCII tab characters anywhere inside a markdown file:

+SPACES.

For example:

```
     Please do **NOT**   use ASCII tabs  in markdown files.    <=== no thank you
@@ -527,7 +528,7 @@ not C code or any other non-markdown content:

// We ask that you to NOT use ASCII tab characters in your remarks.md writeup, // or in any other markdown files within your entry, please.

NOTE: Again, you are perfectly welcome to use ASCII tab characters in -your C code and other non-markdown files. We simply ask that you NOT use any +your C code and other non-markdown files. We simply ask that you do NOT use any ASCII tab characters in markdown files.

Tip for vim users

@@ -549,7 +550,7 @@ spaces.

If you’re in insert mode hit ESC first.

-

Please do NOT directly specify a language for a code block

+

Please use HTML comments to specify a language for a code block

We request that fenced markdown code @@ -616,16 +617,17 @@ a trailing <br>.

use trailing<br> br's outside of<br> a code block -

Again, use of a trailing backslash (\) inside a markdown fenced code -block is fine:

+

Again, use of a trailing backslash (\) inside a markdown code block is fine:

```
     This is OK\
     inside a\
     markdown code\
     block
 ```
-

This will prevent pandoc(1) from generating deprecated HTML elements such as -<br />.

+

as is:

+
    `This is OK\`
+

Doing it this way will prevent pandoc(1) from generating deprecated HTML +elements such as <br />.

Please do NOT use markdown style images

@@ -667,6 +669,18 @@ effect in standard HTML 5 and interacts badly with unquoted attribute values.

<hr>

If a short line is needed, use:

    <hr style="width:10%;text-align:left;margin-left:0">
+
+ +
+

Please do NOT use literal parentheses inside markdown link titles.

+

Instead of:

+
    [some (text)](https://example.com/curds)                  <=== no thank you
+

use:

+
    [some &lpar;text&rpar;](https://example.com/curds)
+

Instead of:

+
    [ls(1)](https://example.com/ls-man-page.1)                <=== no thank you
+

use:

+
    [ls&lpar;1&rpar;](https://example.com/ls-man-page.1)
@@ -676,23 +690,11 @@ to incorrect URLs or file paths.

Instead of:

    [some text](https://example.com/foo_(bar))                <=== no thank you

use:

-
    [some text](https://example.com/foo_&#x28;bar&#x29;)
+
    [some text](https://example.com/foo_&lpar;bar&rpar;)

As another example, instead of:

    This thing, ([some text](some/path)), is NOT ideal.       <=== no thank you

use:

    This thing, [some text](some/path), is better.
-
- -
-

Please do NOT use literal parentheses inside markdown link titles.

-

Instead of:

-
    [some (text)](https://example.com/cyrds)                  <=== no thank you
-

use:

-
    [some &#x28;text&#x29;](https://example.com/cyrds)
-

Instead of:

-
    [ls(1)](https://example.com/ls-man-page.1)                <=== no thank you
-

use:

-
    [ls&#x28;1&#x29;](https://example.com/ls-man-page.1)
diff --git a/markdown.md b/markdown.md index e1d4d11ca..9942c6709 100644 --- a/markdown.md +++ b/markdown.md @@ -211,13 +211,15 @@ Please do **NOT** indent using ASCII tab characters in markdown files.
+Please do **NOT** indent with ASCII tabs, **OR** use any +ASCII tab characters anywhere inside a markdown file. + While we have nothing against the ASCII tab character in general, we have discovered that ASCII tab characters create problems when used as part of the leading whitespace within a markdown file. If you need to indent 2 or more levels, use multiples of 4 ASCII -**SPACES**. Please do **NOT** indent with ASCII tabs, **OR** use any -ASCII tab characters anywhere inside a markdown file: +**SPACES**. For example: @@ -243,7 +245,7 @@ not C code or any other non-markdown content: ```` **NOTE**: Again, you are **perfectly welcome** to use ASCII tab characters in -your C code and other non-markdown files. We simply ask that you **NOT** use any +your C code and other non-markdown files. We simply ask that you do **NOT** use any ASCII tab characters in markdown files.
@@ -283,7 +285,7 @@ If you're in insert mode hit `ESC` first.
-## Please do NOT _directly_ specify a language for a code block +## Please use HTML comments to specify a language for a code block
@@ -407,8 +409,7 @@ use: a code block ``` -Again, use of a trailing backslash (`\`) inside a markdown [**fenced code -block**](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) is fine: +Again, use of a trailing backslash (`\`) inside a markdown code block is fine: ```` ``` @@ -419,8 +420,14 @@ block**](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) is f ``` ```` -This will prevent `pandoc(1)` from generating deprecated HTML elements such as -`
`. +as is: + +``` + `This is OK\` +``` + +Doing it this way will prevent `pandoc(1)` from generating deprecated HTML +elements such as `
`.
@@ -498,6 +505,37 @@ If a short line is needed, use: +
+## Please do NOT put a LITERAL "`(`" or "`)`" in markdown link titles +
+ +Please do **NOT** use literal parentheses inside markdown link titles. + +Instead of: + +``` + [some (text)](https://example.com/curds) <=== no thank you +``` + +use: + +``` + [some (text)](https://example.com/curds) +``` + +Instead of: + +``` + [ls(1)](https://example.com/ls-man-page.1) <=== no thank you +``` + +use: + +``` + [ls(1)](https://example.com/ls-man-page.1) +``` + +
## Please do NOT end markdown links with "`))`"
@@ -516,9 +554,11 @@ Instead of: use: ``` - [some text](https://example.com/foo_(bar)) + [some text](https://example.com/foo_(bar)) ``` + + As another example, instead of: ``` @@ -531,37 +571,6 @@ use: This thing, [some text](some/path), is better. ``` - -
-## Please do NOT put a LITERAL "`(`" or "`)`" in markdown link titles -
- -Please do **NOT** use literal parentheses inside markdown link titles. - -Instead of: - -``` - [some (text)](https://example.com/cyrds) <=== no thank you -``` - -use: - -``` - [some (text)](https://example.com/cyrds) -``` - -Instead of: - -``` - [ls(1)](https://example.com/ls-man-page.1) <=== no thank you -``` - -use: - -``` - [ls(1)](https://example.com/ls-man-page.1) -``` -
diff --git a/news.html b/news.html index 984cfe670..9720315fb 100644 --- a/news.html +++ b/news.html @@ -574,7 +574,7 @@ of the most recent news item.

"latest_news" : "Mon Jan 30 02:28:44 PST 2023"

2022-12-18

As per the suggestion of Toni Mikkola -(@Virtaava@home.social) +(@Virtaava@home.social&rpar; we now maintain a status.json page on this website.

In addition to the IOCCC-style Easter egg, you may count on the JSON status page having a JSON member with name of “contest” diff --git a/news.md b/news.md index 1c5061553..f6bc9a0e7 100644 --- a/news.md +++ b/news.md @@ -131,7 +131,7 @@ Nearly all of the [temp-test-ioccc website](https://ioccc-src.github.io/temp-tes website has undergone editorial review. Nearly all [IOCCC winning entries](years.html) compile on modern systems and many have `try.sh` scripts to help you run them. For those that cannot compile and/or do not work, we have made a -[Bugs and (Mis)features](bugs.html) page. +[Bugs and (Mis)features](bugs.html) page. We have made nearly 4823 changes to date! @@ -248,7 +248,7 @@ of the most recent news item. ## 2022-12-18 As per the suggestion of [Toni Mikkola -(@Virtaava@home.social)](https://fosstodon.org/@Virtaava@home.social) +(@Virtaava@home.social)](https://fosstodon.org/@Virtaava@home.social) we now maintain a [status.json](status.json) page on this website. In addition to the IOCCC-style _Easter egg_, you may count on diff --git a/next/guidelines.md b/next/guidelines.md index e1c902f7b..c1d900000 100644 --- a/next/guidelines.md +++ b/next/guidelines.md @@ -73,7 +73,7 @@ block or blockquote, just a vertical bar). This file contains _guidelines_ intended to help people who wish to participate in the [International Obfuscated C Code Contest -(IOCCC)](https://www.ioccc.org). +(IOCCC)](https://www.ioccc.org). These are **NOT the [IOCCC rules](rules.html)**, though it does contain comments about them. The [IOCCC guidelines](guidelines.html) should be viewed as diff --git a/next/rules.md b/next/rules.md index 630aed2c6..af5ae7c71 100644 --- a/next/rules.md +++ b/next/rules.md @@ -753,7 +753,7 @@ guidelines](../markdown.html) for additional markdown guidance.

The how to build instructions must be in Makefile format. See [the FAQ about -make(1) compatibility the IOCCC +make(1) compatibility the IOCCC supports](../faq.html#make_compatibility) for more details.

diff --git a/nojs-menu.md b/nojs-menu.md index ae4f61308..278fff6ba 100644 --- a/nojs-menu.md +++ b/nojs-menu.md @@ -5,7 +5,7 @@ * [Winning Entries](years.html) * [Winning Authors](authors.html) * [Location of winning authors](location.html) -* [Bugs and (mis)features](bugs.html) +* [Bugs and (mis)features](bugs.html) ## Status diff --git a/thanks-for-help.md b/thanks-for-help.md index 95fd81800..108a8a1d7 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -2409,7 +2409,7 @@ Cody also added the [try.sh](%%REPO_URL%%/1994/ldb/try.sh) script.

[Cody](#cody) added two alt versions, [one which uses -fgets_()](%%REPO_URL%%/1994/schnitzi/schnitzi.alt.c) but when fed its own source code cannot +fgets_()](%%REPO_URL%%/1994/schnitzi/schnitzi.alt.c) but when fed its own source code cannot generate code that compile and another [one with a bigger buffer size](%%REPO_URL%%/1994/schnitzi/schnitzi.alt2.c) which, when fed its own source code, will generate compilable code but not with the same buffer size but rather the