Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Sunday, July 26, 2009

Lines written on a bus, travelling home from Vancouver

Streetlamp by streetlamp
We glide through the night
Languidly we sit on padded seats
While Quebecois girls trill in the background
It's night.
A bell, and the red light illumines
The bus turns right on Resthaven Road
En français.

A traveller ascends the stair
The Quebecois girls laughingly alight
Branches screechingly scrape the roof
I see faces reflected in the glass
As the bus turns into the woods.

Woman at my right,
You and I are strangers mute
You with your earbuds and I with my suit.

Lights are yellow here
Greenhouses glow with a yellow light
Streetlamp by yellow streetlamp
Yellow numbers on double-decker buses
And a dank yellow smell.

I wish this languid ride would never end
Its hectic destination be postponed
But then, one fully is oneself at home.

Saturday, July 25, 2009

Moleskine out. Paperblanks in.

I picked up this lovely Moleskine-sized notebook for recording homilies. Isn’t it beautiful? I find it more interesting than basic black. $13.
PaperBlanks French Ornate Mini

A 1½-Inch-Wide Web Browser

For a while now, I’ve been wanting a mini web browser to be always visible on my monitor. Sometimes I want to look up things quickly: checking a Wikipedia article, doing a quick calculation in Google, looking up a review on Amazon. The minibrowser should be small enough so that it is always visible—I don’t want to have to open a new browser window or do any kind of context switch to get a tiny bit of information.

This morning I thought of a great way to do this: Opera’s “Small Screen” mode. You can make the browser very small, and it reformats the page accordingly. Check out the 1½-inch Wikipedia page below—still perfectly legible.


To keep the browser always visible, I put it on top of some empty space in Google Sidebar, on the right side of my monitor. This setup works very well with Yubnub: I can easily check a Wikipedia article by entering “wp tour de france” into the address bar; do a calculation on Google by typing “g 7*24*3600”; look up Amazon reviews using “am visual display of quantitative information”; etc.

Modeless, ambient, augmented access to the world, in a 1½-inch corner of the screen—love it.

Opera Small-Screen Mode

Friday, July 24, 2009

Edward Tufte on a worthy alternative to PowerPoint

An excellent paper size for presentation handouts is A3, 30 by 42 cm or about 11 by 17 inches, folded in half to make 4 pages. That one piece of paper, the 4-pager, can show images with 1,200 dpi resolution, up to 60,000 characters of words and numbers, detailed tables worthy of the sports pages, or 1,000 sparkline statistical graphics showing 500,000 numbers. That one piece of paper shows the content-equivalent of 50 to 250 typical PP slides.

—Edward Tufte, Beautiful Evidence

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
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
.popup .pop-inner
.networks .and-others
.notice p:last-child

.discover-friends .name,
#overlay iframe
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,

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.


Sunday, July 12, 2009

How to Staple a Booklet Using a Regular Stapler

If you ever find yourself needing to staple a booklet but don’t have a proper long-arm stapler, you can do it with a regular stapler as follows:
  1. Find two books of equal height and place them together, allowing a small gap for the staple to come through (see picture below).
  2. Open the stapler and pound the staple through the booklet, into the gap between the two books.
  3. Flatten the staple legs using a hammer or any hard object.

  4. How to staple a booklet using a regular stapler

    Saturday, July 04, 2009

    Good ways in which to spend free time

    Leisure is distinct from play, in that leisure helps you to grow. Here are a list of leisure activities from the book How to Think About the Great Ideas:
    …any form of learning; any form of thinking; reading, mainly for the improvement of one’s mind not just to kill time; making things of any kind, from carpentry to the highest form of works of art: writing books, painting pictures, taking photographs, and enjoying works of artConversation, not just chit-chat but conversation whereby one learns something or helps others to learn something. That is leisure. And certainly writing letters, not business letters, but the kind of letters with which one communicates to one’s friends is another form of leisure activity. All the activities of friendship I would call social active leisure. And certainly the things we do in rearing our children provides another form of leisure activity. And then there are the political aspects of leisure, all the duties of citizenship such as voting.

    Current Books “In Play”

    These are books that are currently “in play” for me; that is, in a semi-finished state (and have been for some time). I eagerly look forward to free time in which I can push forward on some of these.

    005 Pragmatic Version Control Using Git
    158 The Rhythm of Life
    271 The Soul of Elizabeth Seton
    282 The Curé d’Ars
    808 Poet’s Choice
    821 The New Penguin Book of English Verse
    909 The Usborne Encyclopedia of World History

    Which of your books are currently “in play”?

    Beauty is more important in computing than anywhere else in technology…

    Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.

    – David Gelernter

    Simplicity is prerequisite for reliability.

    – Edsger W. Dijkstra

    In computer science, we stand on each other's feet.

    – Brian Reid


    Friday, July 03, 2009

    Eye Level

    I’m sitting on the floor upstairs, at the eye level I had as a seven-year old. This house is a part of me—there are 32 years of memories that I can see in the walls, in the rooms, in the tables, even in the windows, through which we crawled to get onto the roof to sing. And yet everything has changed—the carpets have changed, the walls have changed, beds have been moved, furniture has been donated and replaced. My parents’ bedroom is now the office in which I work, and I never dreamed as a seven-year old that a little silver box with twinkling green lights would connect me to the entire world.

    I look down the staircase at a sheet of paper stuck on the wall, the only visible memento of five arduous years of my life, spent away from this house. How I longed to return to this house, to the sunny kitchen with its high sloping roof, and the living room that was rarely entered, and the garage, heavy with memories, of tin cars and goalie pads, model ships and electric motors.

    Someone recently asked me what keeps me in Victoria. I replied that it’s my hometown, the place of my childhood, the place I have always dreamed I would live. It’s a certain truth that you become a part of the place you live and it occupies a place inside you.

    Useful Unicode Characters for Twitter

    These useful characters work in most browsers, including Internet Explorer:

    • ‣ … † ‡ ※ ‼ ‽ ⁂ ☻ ☺ ☼ ♀ ♂ © ® ™ ∞ ≠ ♠ ♣ ♥ ♦ ♪ ♫ ▬ ▲ ► ◄ ▼ ¶ 〰 —

    The next ones are cool, but alas they do not work in Internet Explorer:

    ➨ ✄ ✕ ✉ ➊ ➋ ➌ ☀ ☁ ☂ ★ ☆ ☑ ☒ ☚ ☛ ☝ ☟ ☢ ☣ ☧ ☨ ☹ ☾ ☽ ✠ ☊ ♒ ♔ ♕ ♖ ♗ ♘ ♙ ♚ ♛ ♜ ♝ ♞ ♟ ♢ △ ◉ ✔ ✘ ✖ ✚ ✱ ❤ ❦ ❧ ❢ ❡ ❛ ❜ ❝ ❞ ⍨ ⍩ ⍢ ⍣ ⍤ ⍥ ✈ ⋘ ⋙ ∎

    I’m a fan of POSTAL MARK FACE (U+3020—see below). Thankfully Microsoft had the good sense to support POSTAL MARK FACE in IE.