#52WeeksOfCode Week 13 – Graphics Challenge

Week: 13

Language: Graphics (any platform)

IDE(s): TextWrangler, bash


This week’s challenge is a little different, which is to explore graphic design. One of the suggestions was to ‘create some ASCII art’. I’m not an artist (you’re thinking of my brother Pete) but the topic sparked a chain of thought for this week’s post.

I’m a fan of ASCII, which is to say plain text. For coders, ASCII text is the easiest form of communication for software. It’s a quick and easy way to communicate with the user and can be used to easily pass data from one program to another.

Programming in Unix (and Unix-like systems such as Linux or BSD) is based on programs that read and/or emit ASCII code. This way all programs have a common language and the system simply provides hooks for different ways of passing the ASCII around.

If you’ll give me a moment to tie an onion firmly to my belt I’ll take you back to the olden days, when we didn’t have these fancy live-rendered 3D graphics and gesture controls. Yes, we typed because that’s all we had. Please note that I don’t necessarily want to go back to that. But I didn’t mind it and it’s still around in many ways,which is my point.

Anyway, humans being what they are, folks didn’t want to just type messages at each other. They decided to do art as well. Pre-Internet, this took place on Bulletin Board Systems (BBSs). Users would create their pictures, share them and use them as part of the signature text. In the early days of Usenet, there was at least one discussion group dedicated to ASCII art (rec.arts.ascii). Of course we still use ASCII art now, ex. emoticons.

For those of you who’d like to play with this palette, there are tutorials available as well as collections of animation done with ASCII and javascript. Someone even translated the first Star Wars movie into ASCII animated form. (Just type

telnet towel.blinkenlights.nl

at the command line.)

ASCII is still the lingua franca of the Internet. This Web page, for example, is just rendered from HTML, Javascript and CSS, all plain text. Even the language that Web servers use to communicate is plain text.

A surprising amount of behind-the-scenes Internet also runs on ASCII. Email (IMAP, POP3, SMTP), file sharing (HTTP, FTP, WebDAV) all work by passing plain old text around.


As I stated earlier, I’m no artist so I kind of wimped out on this week’s challenge. (I have a few ideas that would have taken me too long to implement and may come back to this later.) So I just put together a quick and dirty bash script to dump out (in the tradition of this blog) the phrase ‘HELLO WORLD’ in ASCII.

Here’s what the output looks like:hello_ascii.png

As you can see, the ‘W’ was a bit tricky as well as making the ‘D’ and ‘O’ look different enough. (I’m no artist, as I said.) I won’t insult you by posting the code.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s