Defamiliarization I: Unix

In doing this exercise I wanted to play with concepts of online identities, privacy and self-disclosure. Many people will have googled their own names at some point and may have found that a lot of their personal information, contact details and maybe photos or online contributions have crept into the online realm over time. Often there is information about ourselves floating around without us being explicitly aware of it. Personal data protection laws and customer profiling are hot topics which an individual might bery well be concerned about. However, in our everyday lives, most people aren’t likely to be explicitly aware of the ‘risk’ they’re taking every time one fills out a registration form or survey.

In a way this lurking danger of unwanted selfdisclosure, identity theft and privacy breach is always there but not explicitly. Almost as some kind of muzak that is perceptible, but only when one is willing to be attentive to it. This gave me the idea of channeling online personal information to an morse code converter that continuously spreads information about yourself whilst you remain blissfully unaware of the fact that your info is up for grabs (assuming that most people wouldn’t be able to decode morse code upon hearing it).

Choosing sound as a medium is especially interesting because it can be seen as operating in a ‘push’-mode of transmitting information. I mean ‘push’ in the sense that information comes to the receiver instantly, as opposed to ‘pull’-mode which requires the user to explicitly request the information, eg. by logging on to your mailbox or social networking account, or having to refresh a page. An example of ‘push’ is a setting on the iPhone that instantly notifies the user of incoming email, whereas ‘pull’ would be when the user actively asks for a new update. In this case, the perhaps (and hopefully somewhat) intrusive background sounds of the morse code would be considered noise by most people. But they are actually blind/deaf for the fact that their very own precious personal information is all around them, as free floating signals waiting to be picked up by anyone who may have an interest in ‘listening in’ attentively.

The following command lines are to be executed in ‘terminal’ on a mac.

lynx http://www.google.co.uk/search?=loes+bogers -dump | ~/morseplay/./morse.sh

lynx = text-based webbrowser
http://www.google.co.uk/search?=loes+bogers =  google query for “loes bogers”
-dump = instantly ‘dumps’ output of previous command
| =  pipe, channels the output of the ‘lynx’-command to the ‘morse.sh’-command as input
~/morseplay/ = path of script ‘morse.sh’
./ = execute all commands inside this file (so in this case all commands inside morse.sh….sh stands for script)
morse.sh = a script for a morse coder I found online*.

I found a script for a morse coder online and copied it. That’s the script called morse.sh which was executed with the input of the google search dumped through a pipe.

It’s a bit more complex to give commands to applications on a mac because they operate on a higher level than the terminal. Terminal treats an .app file as a directory rather than an executable script or application. By using a script instead of an application we were able to work around this. However, the script only provided a textual translation to morse code. I had found a widget and some online apps with an audio output but at this point it was too complicated to get them to communicate properly with lynx.

Google search to morse code
Google search to morse code

I thought to pipe the results of the google search into an audio output, producing the actual beeps or signs in spoken word. Any Mac that has Espeak installed should be able to do this (provided that punctuation is in fact pronounced) by executing the following:

lynx http://www.google.co.uk/search?=loes+bogers -dump | ~/morseplay/./morse.sh | espeak

If the pronunciation of punctiation marks can not be realised there might be the possibility to write a script that commands the synthetic speech application to recognize the . and – marks and pronounce them as “di(t)”, “dah” as in the official morse code.

*Script source; http://grulos.blogspot.com/2006/03/generate-morse-code-from-ascii.html

#!/bin/bash
# morse.sh - generate morse code from ascii
# you can contact me at:
# --. .-. ..- .-.. --- ... .--.-. --. -- .- .. .-..
# .-.-.- -.-. --- --

# if you don't like my "dots" and "dashes"
# you can change them
# dot=.
# dash=_

# generate ascii (from space to ~)
for ((i=32; i<127; i++)); do
   ascii="$ascii$(echo -en $(printf "%s%o" "\\" "$i"))"
done

# english chars that can be translated to morse
eng=".,?'!/():;=-\"\$@ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

# The morse code for each character in eng
mor=( # punctuation
      ·-·-·- --··-- ··--·· ·----· -·-·-- -··-· -·--·- -·--·-
      ---··· -·-·-· -···- -····- ·-··-·
      ···-··- ·--·-·
      # alphabet A-Z
      ·- -··· -·-· -·· · ··-· --· ···· ·· ·--- -·- ·-·· -- -·
      --- ·--· --·- ·-· ··· - ··- ···- ·-- -··- -·-- --··
      # Numbers 0-9
      ----- ·---- ··--- ···-- ····-
      ····· -···· --··· ---·· ----· )

mor=( ${mor[@]//·/${dot:-·}} )
mor=( ${mor[@]//-/${dash:--}} )

while read -a line; do
   for i in "${line[@]}"; do
      for (( j=0; j<${#i}; j++ )); do

        if  [ "${eng/${i:$j:1}/}" == "$eng" ]; then
            pos=${ascii%%${i:$j:1}*}
            eval char=\$\'\\$( printf "%o" "$(( ${#pos} ))" )\'
            [ "${eng/$char/}" == "$eng" ] && continue
         else
            char="${i:$j:1}"
         fi

      pos="${eng%%$char*}"
      printf "%s " "${mor[${#pos}]}"

      done
      printf " "
   done
   printf "\n"
done

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

FURTHER PLAY

Add to command line: ls > /users/loes/desktop/prac/outputmorse.txt
saves the output as a textfile (ASCII) format…(speech does not recognize this though, thus it should be changed somehow) which you could then use as input for speech programme eg. Espeak or Speech (on mac 10.4).

Entire command will be: lynx http://www.google.co.uk/search?=loes+bogers -dump | ~/morseplay/./morse.sh ls > morseoutput.txt


Defamiliarization, Exercises