Files

129 lines
3.5 KiB
Markdown

## To build:
``` <!---sh-->
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](../../bugs.html#2006_borsanyi).
## To use:
``` <!---sh-->
./borsanyi string > file.gif
```
## Try:
``` <!---sh-->
./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](https://en.wikipedia.org/wiki/Lempel-Ziv-Welch) feature is not
used. A typical email address is stored in less than 1-2 kilobytes.
### Usage:
``` <!---sh-->
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.
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/
-->