Here at Intraway, we make software. And as is the case at most software companies, a lot of us are what one might call ‘geeks’… and we geeks love ASCII art.
So what is ASCII art anyway?
ASCII art is a graphic design technique that consists of using the array of printable characters to represent an image, or to compose some larger text. The oldest known computer-generated ASCII art was created by Kenneth Knowlton around 1966, when he and Leon Harmon published the book “Studies in Perception I“.
For those of you who are unfamiliar with coding, ASCII (American Standard Code for Information Interchange) is a standard for character encoding, i.e. a code that represents English characters as numbers. Each letter from the English alphabet gets a number, ranging from 0 to 127. Standard ASCII uses 7 bits to represent each character, although some extensions have been developed that use an extra bit, bringing the count of representable values to 256 (e.g. Extended ASCII and ISO Latin 1). Of course there are many character encoding standards out there, with UTF-8 being the most popular at the moment. Nevertheless ASCII is not only the first, but also the most simple.
Our core values
Here at Intraway we share a set of values that define the way we work and interact with each other. These core values are:
- Wow through excellence & commitment
- Build the best team
- Think incredible
- Enjoy the ride
- Strive to find a better way
- Do more with less
- Become trusted advisers
We value excellence, which is why our team is full of great people. We aren’t afraid to think outside the box, even when our ideas may sound insane. We are passionate about what we do because we love it. And last but not least, we want our clients to trust us so we always find the best way to satisfy their expectations, in a punctual fashion and with the resources we have at hand.
Given how important our core values are, and how cool ASCII art is, I thought that it might be fun to merge both concepts. It started as a simple bash script and then evolved to an (as of yet) simple bash script intended to be run on login. The purpose of the script is to show a single random core value on each call.
As you may have noticed, each of Intraway’s core values is represented by a beautiful logo. In order to convert the logos to ASCII, I first had to download them. I could have asked the design team to send them to me, but obviously that wouldn’t be geeky enough, so instead I browsed our website, ran the inspector, and downloaded the .svg files which were hidden behind some CSS classes. Once I had downloaded the logos, I had to look for a utility that could perform the conversion to ASCII automatically.
The winner was jp2a, a very simple yet powerful open source tool that allows you to convert from JPG to ASCII. Its source code (which is beautiful, by the way) is available on GitHub. One of the most interesting features about jp2a is that it allows you to set the ratio between the colors of the image (i.e. allows you to set a level of ‘relevance’ for each color), thereby improving the quality of the final image. This came in handy because each logo consists of only one color painted on a transparent background. After the logos were converted to ASCII, the result was encoded in Base64, so that it could be used inside a bash script.
Stop teasing, get me to the terminal!
The following images show some of the core values that have been generated using the aforementioned script. I invite you to go ahead and try it out for the rest of them! For your convenience, the script’s source code is available on GitHub.
The script doesn’t use anything out of the ordinary, but in any case here are the utilities you need in order for it to work properly:
- Bash 4
- Bash 4 introduces associative arrays, a feature that is used extensively here.
- Base64 utility (
- Part of coreutils, which should be available on all platforms.
So that’s all for now. Feel free to add any additions or suggestions in the comments. Happy coding, and #enjoytheride!