Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Sunday, July 19, 2009

A Poetic for Software Engineers

I’ve long wished to write poetry—perhaps you have as well. What can we, as software engineers, bring to the world of poetry from our experience?

I would like to introduce a new form of poetry called technic poetry. It’s poetry based on something that we are very familiar with: software code. Technic poetry is a kind of found poetry, based on actual production code, reworked to produce a new level of sound and meaning. Any software engineer with a good ear and poetic sensibility can write it; we certainly have plenty of raw material for creating this art. I would be curious to hear verses from the most elegant parts of the Linux kernel.

Here’s an MP3 of me reading a technic poem I created, titled Overlay (see below).

The first step to creating a technic poem is to select some code to turn into verse. Here’s an example from the CSS file I used to create Overlay:

.welcome h2 {
font-size: 2em;
}
.welcome-links {
list-style: none;
margin: 1em 0;
margin: 0 0 1em;
font: 2em/1.3 georgia;
}
.welcome-links #welcome-link-invite a { background-position: 0 -14px; }

. . . . . . . . . .

Next, we rearrange it into poem form, choosing portions that impart the sense that we are aiming at—this creates a kind of intermediate language for the poem. Finally, we remove punctuation and alter the letter case to give it the traditional appearance of a poem and to make it easier to read.

Intermediate LanguageFinal Form of Overlay
.welcome
.welcome-links
#welcome-link-invite
background: no-repeat

.welcome .search-large
#home-so3 .search-large
.search-large input:focus
.list-full-friends .friend-actions
.form-invite .form-actions

.search-live a:hover
.search-live a.active
.popup .pop-inner
.networks .and-others
.notice-success
.notice p:last-child
.notice

.profile,
.spinner-block
.discover-friends .name,
.module-style-green
.module-style-blue
#overlay iframe
Welcome.
Welcome, links.
Welcome, link. Invite
Background; no, repeat.

Welcome, search large,
Home, so, search large.
Search large, input, focus,
List full friends, friend actions
Form, invite, form actions.

Search, live, a’hover;
Search, live, a’active.
Popup, pop inner
Networks and others.
Notice success,
Notice p’last child,
Notice.

Profile, spinner, block,
Discover friends, name,
Module style green
Module style blue
Overlay, I frame.

Here’s an MP3 of me reading the above poem. Note that the result has transcended its original meaning. From a set of homepage CSS styles, it has become a vital call to “search”, and a welcoming home. This sort of reframing is characteristic of found poetry.

Technic poetry is important to me because I wanted a poetry that poetry-loving engineers could write. Few of us have the classical training to make erudite allusions; few of us have kept up with avant garde trends. Technic poetry requires neither—it democratizes the writing of poetry to include technically oriented people, and can be written by others as well. Even technical knowledge is not needed—only the judicious selection of words and patterns from source code files.

Labels:

8 Comments:

Post a Comment

<< Home