From 04e936191c03b9a131df0c6b7de3f0c7f3ced483 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 5 Mar 2023 05:29:04 -0800 Subject: [PATCH] Point out bug in 2014/vik in years.html This is to let the viewers know that sometimes the program will display invalid input. The note is modelled after some of the other entries that have bug reports. Okay it's also some shameless self promotion but never mind that! :-) As well a few minor changes in 2014/vik/README.md mostly being removing double spaces in favour of single spaces (particularly in the general text). There were some other formatting fixes as well. In 2020/ferguson2/README.md I made a few adjustments as well (though I'm aware of a few more changes in 2020/ferguson[12]/README.md I want to make). --- 2014/vik/README.md | 54 ++++++++++++++++++++++++---------------- 2020/ferguson2/README.md | 23 +++++++++-------- years.html | 4 +++ 3 files changed, 48 insertions(+), 33 deletions(-) diff --git a/2014/vik/README.md b/2014/vik/README.md index 7b87237e9..3d7fed791 100644 --- a/2014/vik/README.md +++ b/2014/vik/README.md @@ -8,28 +8,33 @@ Daniel Vik ## Judges' comments: ### To build: - make + make all ### To run: - ./prog > foo.c + ./prog > foo.c ### Try: - echo 'Want to hear me beep?' | ./prog > audio_file.raw + echo 'Want to hear me beep?' | ./prog > audio_file.raw + + echo 'No. I want chocolate!' | ./prog | mplayer -demuxer rawaudio - - echo 'No. I want chocolate!' | ./prog | mplayer -demuxer rawaudio - ### Selected Judges Remarks: -This program sets a new tone for obfuscation. But do you understand -what it says about obfuscation? Perhaps: +This program sets a new tone for obfuscation. But do you understand +what it says about obfuscation? Perhaps: - ./prog < prog.c > prog.raw -might speak to your coding style? If not, then perhaps: + ./prog < prog.c > prog.raw + + +might speak to your coding style? If not, then perhaps: + + + ./prog < remarks.markdown | mplayer -demuxer rawaudio - - ./prog < remarks.markdown | mplayer -demuxer rawaudio - might help? :-) @@ -42,41 +47,46 @@ I can tell, there are at least six chocolate references in this program. This program can convert text to Morse to a raw 44.1kHz stereo audio file. Via streaming to mplayer, you can listen to the Morse audio. -Don't forget the last '-' as it makes mplayer read from stdin.) +Don't forget the last '-' as it makes mplayer read from stdin. + ## Convert audio file with Morse signals to text - $ ./prog e < audio_file.raw + + $ ./prog e < audio_file.raw + or alternatively pass a .wav file as input. -The preferred input format 44.1kHz stereo, but it does a decent job on mono -input and different frequencies as well. +The preferred input format 44.1kHz stereo, but it does a decent job on mono +input and different frequencies as well. + ### Portability -The program is portable to most platforms. The only system dependency is that +The program is portable to most platforms. The only system dependency is that the program relies on writing binary data to stdout. -Microsoft compilers adds a carriage return to newlines, and to compile the -program with this platform, the following line can be added after the main +Microsoft compilers add a carriage return to newlines, and to compile the +program with this platform, the following line can be added after the main declaration in order for the program to run correctly: - _setmode(_fileno(stdout), 0x8000); + + _setmode(_fileno(stdout), 0x8000); ### Known Issues The program uses a quite simple algorithm for detecting tone on and off events -in the Morse signal. Hence the program does not work well with noisy input +in the Morse signal. Hence the program does not work well with noisy input signals. I have tested it with several samples of man made Morse recordings as well as computer generated ones. -Generally, any recording from ham radio transmissions does not decode due to -noise and echoes. Other man made recordings may decode, but some characters -can be incorrect due to too big variation in length of tones and pauses. +Generally, any recording from ham radio transmissions does not decode due to +noise and echoes. Other man made recordings may decode, but some characters +can be incorrect due to too big variation in length of tones and pauses. However I found some man made recordings on that decode reasonable well. -If a recording don't decode, you could try to pre-process the input with a +If a recording doesn't decode, you could try to pre-process the input with a narrow bandpass filter on the frequency of the transmission. -------------------------------------------------------------------------------- diff --git a/2020/ferguson2/README.md b/2020/ferguson2/README.md index 77ac89c9f..b0642e67b 100644 --- a/2020/ferguson2/README.md +++ b/2020/ferguson2/README.md @@ -81,12 +81,12 @@ I will have more information on this entry at published. -- [IOCCC: An Enigma?](#ioccc) +- [IOCCC: an Enigma?](#ioccc) - [The 1992 Nathan entry](#nathan) - [Usage](#usage) - * [An example run](#example) + * [Example run](#example) - [The recode.c configurator](#recode) @@ -106,7 +106,7 @@ published. - [Resources](#resources) -### IOCCC: An Enigma? +### IOCCC: an Enigma? Is there a better single word that could describe the code that is IOCCC? I'm sure there are some other words that are equally as valid but I believe 'Enigma' @@ -189,12 +189,13 @@ Finally it'll prompt you for the plugboard pairs. After that you can input the string and it'll go from there. -#### An example run +#### Example run BTW: There's a much more entertaining (and delicious) challenge or exercise in -[recode.md][] (involves [chocolate-cake.html][]). These however show -the general program as well as how to use the two winning entries of the Morse -code that I referred to earlier. +[recode.md][] (involves [chocolate-cake.html][]) though one might need a different +kind of exercise after taking up the challenge! :-) These however show the +general program as well as how to use the two winning entries of the Morse code +that I referred to earlier: $ ./prog - @@ -228,21 +229,21 @@ Notice that all output except the deciphered/enciphered text is sent to stdout. If I didn't specify the `-` by e.g. `echo IOCCC | ./prog` then it will use the default settings; as the judges suggest this invocation I will not show it here. -You can also type it out like this though: +But you can also type it out like this: $ ./prog IOCCC UUMMX -The IOCCC comes from stdin; the UUMMX is stdout. +The IOCCC comes from stdin; the `UUMMX` is written to stdout. If I compile the 2014 entry and copy it to my local directory as `vik` I might do: $ echo TEST|./prog |./vik | mplayer -demuxer rawaudio - -And you would hear Morse code of the Enigma output of 'TEST' (i.e. KCWV). Or +And you would hear Morse code of the Enigma output of 'TEST' (i.e. `KCWV`). Or perhaps not in this case. I'm not sure: I discovered a bug in that entry (Fedora, CentOS and macOS all affected). @@ -289,7 +290,7 @@ Phew! The program redeemed itself after the test failure! :) (Technically above it didn't print a newline after the output and this is how it is with some of the things I pasted in the other file and maybe others here -too. Notice also how it showed the same output that my program gave it - UUMMX.) +too. Notice also how it showed the same output that my program gave it - `UUMMX`.) What about the other Morse code entry? diff --git a/years.html b/years.html index 288d44775..2779190f4 100644 --- a/years.html +++ b/years.html @@ -935,6 +935,10 @@ Contest
  • Makefile
  • README.md
  • prog.c +
  • A minor bug that shows up in some cases was found by +Cody Boone Ferguson +when working on his 2020 Enigma machine. See his +README.md file for details (search for vik).

    wiedijk - Y combinator