Author:
- Name: Stephen Sykes
Location: FI - Republic of Finland (Finland)
To build:
make
To use:
./sykes2
Try:
./try.sh
This will repeatedly remake the program and run it then sleep for one second for a nice show of time.
Judges’ Comments:
As they say, “Lather, rinse, repeat”! :-)
If you have the time :-), figure out how this small 1-line entry works!
Author’s remarks:
At 130 characters of C code (without the newline at the end), this should fit into the “1-liner” category.
The clock numerals are rendered as an old fashioned 7 segment display. The encodings for which segments light for which number, and for where each segment appears on screen are hidden in the two strings.
When reading the program, you may want to refer to a table of operator
precedence (try man 7 operator
) - careful choices were made to keep the usage
of brackets to a minimum, and to keep the character count as low as possible.
One interesting bit of obfuscation - the null at the end of the second string actually forms part of the lookup table.
Intel CC warns about the lack of a declaration for the argument to main()
.
(gcc
does not notice this though, even with -Wall
.) But anyway it can
easily be declared as int
at the expense of 4 more characters.
I’m not sure of the effects on a hard disk of rewriting the same file multiple times per second for a long time. Run at your own risk!
Inventory for 2006/sykes2
Primary files
- sykes2.c - entry source code
- Makefile - entry Makefile
- sykes2.orig.c - original source code
- try.sh - script to try entry
Secondary files
- 2006_sykes2.tar.bz2 - download entry tarball
- README.md - markdown source for this web page
- .entry.json - entry summary and manifest in JSON
- .gitignore - list of files that should not be committed under git
- .path - directory path from top level directory
- index.html - this web page