Files
ioccc/2006/borsanyi
Landon Curt Noll f29b37e49a improve HTML menus, add social.html, prep for IOCCC28 winners
Prepare for the winners of **IOCCC28**.

> However these are not the 2024 droids you are looking for.  :-)

The HTML menu (both JavaScript and non-JavaScript) has been updated.

The `Status -> Rules and guidelines' have been replaced with two
separate menus `Status -> IOCCC rules` and `Status -> IOCCC guidelines`.

Added a new top level `social.html` page: built from a new `social.md`.

Sorted rules for building specific web pages in the top level `Makefile`.
Added `make social` to make the `social.html` page from `social.md`.

The `bin/gen-top-html.sh` now is able to process a argument of **social**
to process the new top level `social.html` page.

Changed `bin/gen-top-html.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-07-25".

Below `About -> Home page` a new `About -> IOCCC social media` menu item
as added.

Because the menu change touched every HTML file, we changed the general
copyright date range for HTML files from "1984-2024" to "1984-2025"
due to the extensive changes made for **IOCCC28**.

Those markdown files that were modified in 2025 had their copyright date
range also changed from "1984-2024" to "1984-2025".

Rebuilt tarballs and sitemap due to the extensive HTML rebuilding.

Ran `make update` to perform the above.
2025-07-26 13:06:29 -07:00
..
2020-12-30 16:57:03 -08:00
2023-07-06 21:49:38 -07:00

To build:

    make

Bugs and (Mis)features:

The current status of this entry is:

STATUS: INABIAF - please DO NOT fix

For more detailed information see 2006/borsanyi in bugs.html.

To use:

    ./borsanyi string > file.gif

Try:

    ./try.sh

We recommend you first try inputting for the filename example.gif and for the string ioccc@example.com. Of course you could also provide a different filename and even include your own email address or something else entirely. The script will not overwrite files. It runs the program in a loop until you answer that you do not wish to make another.

Judges' remarks:

This entry uses a very user-friendly representation of the font it uses (with a few exceptions). Check out the source and see for yourself! :-)

The resulting GIF file is likely to puzzle optical character recognition tools. The amount of imagination necessary to recognise the @ character will certainly challenge a few anti-CAPTCHA tools.

Author's remarks:

Email address to gif converter

Introduction:

Most spam robots collect email addresses from the websites of innocent people, like you. Conference organizers cannot disclose the participant's address to prevent malicious users from grabbing them. One solution is to write as my_email _at_ address _dot_ com. But robots are clever enough to sort that out. A more sophisticated approach is to create an image file with the email address and put that on the web page.

This program creates a GIF image file from the address given in the command line. To avoid complications with patent issues the LZW compression feature is not used. A typical email address is stored in less than 1-2 kilobytes.

Usage:

    make all
    ./borsanyi my@example.com > email.gif
    my_favourite_gif_viewer email.gif

The address cannot be longer than 42 characters, and may consist of the characters: a-z_A-Z0-9@.-.

The program is (like email addresses are) case insensitive.

Obfuscation:

Multicore support is a must in present-day applications. This entry supports up to 25 cores. The odd names in the bottom part of the program do have a meaning, they are not there just for obfuscation. The preprocessor is used to keep the program small, in fact, everything is a macro. Are you familiar with the GIF format? Studying this program will give you a (very) little insight.

Questions:

After analyzing the source code, try to answer these questions:

  1. How can you add a further supported symbol?
  2. Can you alter the look of the output characters?
  3. What limits the number of input characters to 42?

Portability:

The program uses POSIX threads (using the linker flag -lpthread). The program accepts email addresses not longer than 42 bytes composed from letters, digits, and the @._- symbols. An address not obeying these rules will cause undefined behaviour. The program is not expected to depend on endianness. The standard output is used for a binary output, which might cause problems. To avoid most caveats, the program does not output the octet 0x0a. The program assumes the use of ASCII.