diff --git a/2013/birken/README.md b/2013/birken/README.md index c026f0b22..e23a15e7e 100644 --- a/2013/birken/README.md +++ b/2013/birken/README.md @@ -8,72 +8,68 @@ Michael Birken ## To build: ```sh -make +make alt ``` -An alternate version which allows one to more easily see what is going on is -available. See Alternate code section below for more details. - -WARNING: if you have a problem with flashing colours please consider whether you -should try this entry or not. This problem can also occur with the alternate -version but to a lesser degree depending on how it's configured. - - ## To run: +To see why we recommend the alternate version instead of the original version, +see the [original code](#original-code) section. + ```sh -./birken < 17_columns_wide_paint_by_numbers_file +./birken.alt < 17_columns_wide_paint_by_numbers_file ``` +To see why we recommend the alternate version instead of the original version, +see the [original code](#original-code) section. ## Try: -```sh -./birken < ioccc.txt - -perl -e 'map{map{print int(rand()*8);}(0..16);print chr(10);}(0..30);' | tr '[0-4]' ' '| ./birken - -./demo.sh - -BIRKEN=birken.alt ./demo.sh -``` - - -### Alternate code: - -The alternate version for this entry which allows one to control -how fast the painting is done. - -To compile: - - -```sh -make clobber alt -``` +This alternate version, which we recommend that you use in order to see what is +happening with modern systems, and to not flash colours too quickly, which can +be problematic for some people, can be configured to different speeds by way of +the value used in `usleep()`. The default is `-DZ=15000`. Finding the 'right' default value was a fine line; the default, 15000 microseconds (0.015 seconds), will take quite a while to finish but it allows one to more easily see what is going on. Even easier to see would be 25000 but these values make it quite slow and one could easily lose interest. Like some -other entries where this was made an alternate version he made it -configurable at compile time. If you wish to speed it up by 100% you can instead -do: +other entries where this was made an alternate version it is configurable at +compile time. If you wish to speed it up by 100% you can instead do: ```sh make clobber CDEFINE=-DZ=7500 alt +./birken.alt < ioccc.txt + +perl -e 'map{map{print int(rand()*8);}(0..16);print chr(10);}(0..30);' | tr '[0-4]' ' '| ./birken.alt + +./demo.sh ``` -That will speed it up a fair amount but of course it will still take a while to -finish. If you wish to speed it up 200% you can use instead `3750`. Doing this -you might find the right value; use ctrl-c to terminate the program early. +If you wish to speed it up 200% you can use instead `-DZ=3750`. Doing this +you might find the right value to your liking; use ctrl-c to terminate the +program early. -Given that the [original](birken.c) version is easy to see without a delay this -slower value shouldn't be a problem. +### Original code: -Use `birken.alt` as you would `birken` above. +Should you wish to see the original without having to mess with the compiler +line, try: +```sh +make clobber all +``` + +Use `birken` as you would `birken.alt` above. To use the demo script with the +original code, try: + +```sh +BIRKEN=birken ./demo.sh +``` + +PLEASE be careful if you are sensitive to flashing colours! + ## Judges' remarks: This program also wins the "Most amusing abuse of the iocccsize tool" award; although not the diff --git a/2013/birken/demo.sh b/2013/birken/demo.sh index 647c24f33..1790cfb70 100755 --- a/2013/birken/demo.sh +++ b/2013/birken/demo.sh @@ -3,7 +3,7 @@ make clobber everything 2>/dev/null if [[ -z "$BIRKEN" ]]; then - BIRKEN="birken" + BIRKEN="birken.alt" fi trap "clear; exit" SIGINT diff --git a/thanks-for-fixes.md b/thanks-for-fixes.md index af52cb9e8..c0ecb4f32 100644 --- a/thanks-for-fixes.md +++ b/thanks-for-fixes.md @@ -1573,7 +1573,9 @@ Along with the [demo.sh](2013/birken/demo.sh) that he added, Cody also added an alternate version which allows one to control how fast the painting is done, based on the author's recommendations, except that Cody made it configurable at compile time just like he did with other entries (in all but one it was -alternate code) that use `usleep()`. +alternate code) that use `usleep()`. The alternate version and the original +version were swapped in the `To build`, `To run` and `Try` sections, with what +is normally `Alternate code` being `Original code`. ## [2013/cable3](2013/cable3/cable3.c) ([README.md](2013/cable3/README.md]))