Interactive Scripting. It is hoped that this course will provide an entry point into the dynamic world of interactive scripting. We will define interactivity as a relationship of mutual influence – similar to a conversation – between participants, based in input, processing, output, and feedback. The participants can be any combination of humans and other systems; mechanical, electric, or other. Scripting will be understood as the will of the creator/artist/designer within this relationship. We will study various techniques and tools to make the intention of the script writer clear to the participants and effective within the media it is deployed. Students will be encouraged to use both electric and non-electronic materials. While various software and hardware will be presented, the focus of our work will be on developing a clear understanding of what interactive scripting is, and to have each student locate media in which they can engage the concepts presented in such a way as to make their understanding of the materials covered clear. We will develop a discourse to differentiate between one-dimensional, responsive interfaces, and interactive relationships. A final project will be required of each student that will exemplify that students understanding of the course material.
Evaluation:
Grades in this course will be based on regular class attendance, the quality of your work, class participation, and progress. Tardiness and excessive absences will adversely affect your grade. Participation in discussions and critiques is mandatory.
Projects & Grading:
You will be asked to do assignments throughout the semester. Most of the assignments will be presented in class and will be designed to stimulate group conversation.
***We will not have a final exam during finals week***
Students will be graded by letter, A-F, on all evaluated work. Work must be completed on time and in full satisfaction of each project goal. Late work (assignments handed in or posted after the start of in-class critique sessions) will be automatically downgraded by one letter grade. In addition to in class exercises, you will complete four projects.
A
|
Well above the expectations of the course. Outstanding participation, attendance, and exceptional progress. |
B |
Above average assignments and participation. No more than one absence. |
C |
Average execution of assignments, participation, and no more than two absences. |
D |
Well below average: work, attendance (two absences), projects, and participation. |
F |
Unsatisfactory: work, attendance (more than two absences), projects, and participation |
Attendance:
Two or more unexcused absences from class may result in failure. Two unexcused late arrivals, or early departures will be marked as the equivalent of one absence. Absence from a class is not an excuse for skipping a tutorial, reading assignment, or posting an assignment. You are fully responsible for completing work.
Readings:
Readings will be linked from the syllabus. There is no textbook. You may utilize the printers in class to download hard copies of web-based content if you prefer. Critiques and discussion will frequently be initiated from various topics covered in the readings – in other words, please use the concepts you read about in discussion of fellow studentsÕ work.
Supplies:
We will be writing a lot of pseudocode (described below) during class. Please bring a notebook (paper!) to write your code in. Please bring to each class a storage media of your choice. I recommend a jump drive from the bookstore, in lieu of this, an ipod, or server space, or 1-2 CD-R(s) – Recordable Compact Discs (700 MB) will suffice. YouÕll probably go through many of them, for both this and other digital classes. You might also want to bring in a sharpie to label your CDÕs.
It is essential that all work done in class be saved to either your jump drive, CD-R, server space, ipod, etcÉ at the conclusion of class. There will be many, many other students using these computers and anything saved on them will be permanently removed shortly after the conclusion of class.
Food and Drink in the Computer Labs:
No.
ADA Compliance Statement
Any student who feels s/he may need an accommodation based on the
impact of a disability should contact [insert instructorÕs name/title]
privately to discuss specific needs. Please contact the Learning Resource
Center at 410-225-2416, in Bunting 458, to establish eligibility and coordinate
reasonable accommodations. For additional information please refer to:
http://www.mica.edu/learningresourcecenter/.
Health and Safety Compliance
From the Office of Environmental Health and Safety (EHS):
The Office works to provide EHS support for all members of the
MICA community. The primary
goal of the Office is to be proactive in establishing a culture of safety in
which each member of the community shares ownership responsibility that allows
each person to be involved in maintaining a healthy work and studying
environment. EHS uses several methods to achieve this objective.
First, the EHS office looks at the totality of the EHS
requirements by combining campus needs with state and federal requirements and
clearly communicating the shared policies and procedures. Second, EHS identifies training needs
and develops guidelines for the use of equipment, material and procedures. Third, we ensure compliance with
policies through evaluations, inspections, and committees.
It is the responsibility of faculty and students to understand
health and safety policies relevant to their individual activities and to
review MICA's Emergency Action Plan, as well as to participate in training,
drills, etc. It is also each
faculty member's responsibility to coordinate with the EHS Office to ensure
that all risks associated with their class activities are identified and to
assure that their respective classroom procedures mirror the EHS and Academic
Department guidelines. Each of the Academic Department's also publish EHS
procedures and policies such as a dress code, the use of personal protective
equipment, fire safety, training, and how to properly dispose of chemical
waste. Each of these policies and
procedures must be followed by all students and faculty. Most importantly, it is the responsibility
of the faculty to review, test, and assess each student's awareness of basic
safety procedures, such as evacuation routes, use of chemicals, fire
prevention, and all other guidelines posted by the Environmental Health and
Safety Office, (e.g., smoking policy, independent studio policies, pet policy,
disposing of hazardous and chemical waste, etc).
To become a member of the Faculty EHS Committee or for any
questions relating to EHS, please contact Denelle Bowser, EHS Manager, at
dbowser@mica.edu or by calling 410.462.7593. You can also visit the department online at www.mica.edu/ehs
Electronic Art,
Artists, and Projects List
Weekly Schedule
______________________________________________________________________________
Introduction, Resource website,
review syllabus, registration matters
We will deal with concepts of
interaction as well as formal programming skills during our time together. Our programming work will begin with
flow charts, move through pseudo-code, and conclude with javascript.
interaction = a relationship of mutual influence, analogous to a
conversation, based in input, processing, output, and feedback.
Cyberspace is a "metaphor we
live by," born two decades ago at the intersection of computers, networks,
ideas, and experience. It has reflected our experiences with information
technology, and also shaped the way we think about new technologies and the
challenges they present. It had been a vivid and useful metaphor for decades;
but in a rapidly-emerging world of mobile, always-on information devices (and
eventually cybernetic implants, prosthetics, and swarm intelligence), the rules
that define the relationship between information, places, and daily life are
going to be rewritten. As the Internet becomes more pervasive-- as it moves off
desktops and screen and becomes embedded in things, spaces, and minds--
cyberspace will disappear. --The End
of Cyberspace
Digital
Designers Rediscover Their Hands
Olympics Opening Ceremony:
Phoney fireworks,
authenticity in the digital age
Dog Day Afternoon
The
Third Memory, Pierre Huyghe
Pierre Huyghe lecture on The
Third Memory
Sensory Deprivation Tanks
Marc
Horowitz National Dinner Tour
The point >> our concern isnÕt about Real vs. Fake, it is
about accurate accounts of what is happening, what qualities of experience are
present, what elements are involved, and how we can interact with those
elements and how those elements can interact with us. In order to advance knowledge we must develop a practice
designed to persistently enhance our understanding of the complex interactions
that comprise reality at any given moment.
We are, evidently, highly
influenced by the materials, digital or otherwise, around us. As the materials that comprise
our environments change, it is essential that we, artists and designers,
develop strategies to understand the various and varying relationships between
mind and media.
So now what?
To me, and hence for you,
Social Media Aggregators, like friendfeed,
offer a valuable interactive structure.
By creating a class friendfeed
site we should be able to add an interactive (mutual influence) element to the
structure of the class. All of us,
including me, will contribute and we will all discuss what we submit, with a
view to gain a better understanding of what is going on.
Today we will setup a friendfeed group page, and all join.
I suggest that you use a screen
name unique to this class.
I will often ask you to each post
material to friendfeed during the week,
that you feel addresses content we cover in class.
We will begin this process this
week.
HereÕs how it works, I call it the
Ôwrite and feedÕ:
***Troll behavior, i.e.,
inappropriate, rude, offensive posting is not permitted. If you act like a Troll youÕll be
banished from the site, and if you are banished from the site you fail the
class.
In addition to the write and feed,
please read this brief
article by Jaron Lanier for next class.
You may choose to respond to the article in your contributions to the
feed.
Week 2
PHP, Twitter, preliminary scripting and
interaction schemas.
***the
fix for Ôget_status_send_vars_to_php_tweeter_class.phpÕ is in the comment Ò//Ó
just above this line near the
start of the script:
curl_setopt($c,
CURLOPT_URL, "http://twitter.com/statuses/user_timeline/NEED TO PUT YOUR TWITTER
ACCOUNT NUMBER HERE.xml");
To
find you twitter account number
Some
preliminary interaction schemas
Today
weÕre going to speak a bit more on how different media bring out different
experiential qualities and understandings.
WeÕre
then going to begin working on our own interaction schemas.
WeÕre
going to start simple: our first
exercise is going to be about interacting with a stranger, getting someone you
donÕt know to respond to something youÕve placed somewhere. WeÕre going to term the first
interaction by a participant the Òrabbit holeÓ
The rabbit
hole can be
as simple as posting a link in the description of a video youÕve posted on youtube, or an invitation of some sort on craigslist, etc.
The
interaction schemas weÕre going to be developing over the next few weeks can be
understood as narratives, or stories, because weÕre going to work on
interacting with a participant through different locations, leading them to
specific places for specific reasons, and using the specific qualities of each
place to help tell our story.
Some
tools:
Gliffy – online flow chart webware
– sign up, weÕre going to use this until the desktop flow chart software
arrives.
tinyUrl – shrink that
interactive.mica.edu/blah/blah URL, and mask it, tooÉ
twitter – sign up, youÕre gonna need
it.
idesktop.tv – download youtube stuff
in a variety of formats – very useful if you want to start of with
youtube.
Like
to embed some HTML in your PHP, me too! Convert
html to php: ***this doesnÕt work that well, but may be, nevertheless,
ÒhelpfulÓÉ
Rabbit
Hole Project #1
i. You must change the username
and password info for it to work.
ii. You must change the header
(Location) in order for it to return to the page you want it to return to after
it has sent you a tweet.
Over
the next few weeks weÕll be extending the rabbit hole to more extensive
interaction schemas. Please begin
to think about what sort of interaction, and what sort of media youÕd like to
use, and begin experimenting.
Some
preliminary terms:
Process:
á a series of tasks that result in a
goal
Code:
Algorithm:
á A series of tasks leading to a specific
result. Do you hear that echo? Scripts, and programs can be considered Algorithms. Successful Algorithms:
á Reach their goal
á Are Lean (no redundancy or extraneous
steps)
á Are designed for the specific system
that will run (parse) them in mind
á May be Unilateral/one dimensional or
Interactive/Adaptive.
Another
term that we can use when developing an algorithm, is narrativity.
Narrativity:
Two
additional media to think about:
Live
Streams: Ustream, Mogulus,
Stickam – you could lead someone to
a live stream.
SocialfictionÕs
Ò.walkÓ
scripting language –if youÕre getting tweets from participants on the web
you could have them effect actions you take outside.
With
Socialfiction in mind>>
Student
Discount! >>
If
you have students or know students who would like to attend the Conflux
lectures, please have them enter the discount code: flux when ordering tickets
so they can receive an additional 20% off of our low low ticket prices! I
encourage you to bring your students; we have a great program of speakers lined
up this year. Please make sure they bring a valid student ID for entry. If you
can help spread the word on your site/blog, we'd appreciate it. The festival
begins Thursday and I hope to see you there.
Assignment:
Create
and deploy 3 rabbit holes.
Flow
chart them.
Think
about how they worked, be able to talk about how to extend them.
In addition to the write and feed,
please read this brief
article by Jaron Lanier for next class.
_________________________________________________________________________
Week
3
Your
Projects.
Lanier
article.
HTML
forms, PHP, conditional logic
Review
of operative knowledge:
Something
you might be interested in:
Tuesday
Night, September 16th
High Zero begins this year
with a free concert, a collaboration between Peter Rose (visionary filmmaker
from Philadelphia) and Second Nature, Baltimore's radical improvising
orchestra. Rose has created a new film in his "Studies in
Transfalumination" series using footage shot in Baltimore with his
proprietary techniques, and will improvise this footage non-linearly in
relation to a freely improvised sound track by Second Nature. Peter Rose and
John Berndt will give a short talk before the performance.
*Transfalumination (Live
Film)*
Peter Rose
-> http://www.highzero.org
->http://www.redroom.org
Remember:
We
have .php scripts that
OK,
Today
we are going to spend some time working with HTML forms,
and
conditional logic in php.
Our
goal is to deepen our interaction with a participant.
Online
tutorials. PHP, working with HTML forms (scroll down to part 4!)
course files can be downloaded here
What
to do:
We
will be working on these projects over the next two classes and run them in two
weeks!
Assignment:
Extend
one of your Rabbit Hole interaction schema from this week using HTML forms,
PHP, and conditional logic.
Create
at least two paths for participants to take.
Flow
chart your ideas.
Show
them next week.
Look
over Psychology
of the User, and please think of some examples of any of the concepts in
the presentation and post three of them to the friendfeed site.
Write
one paragraph on what the presentation means to you, and post that to the
friendfeed site.
Remember,
Sam Sheffield is available to help you with your scripting! Please contact him to make an
appointment if necessary! You wonÕt regret it! sam> jss@problemboard.com
________________________
Week
4
Programming
Fundamentals/Javascript Intro
United
States of Mind: researchers find geographic links to personality traits
Remember
Psychogeography?
WeÕve
talked about how different media elicit different personality traits.
How to trick an internet
scammer to carve a computer out of wood
Scambaiter
gets scammers to reenact monty pythonÕs dead parrot
sketchÉ
The wide (and highly interactive) world of scam
baiting
Òinteractivity
is a relationship of mutual influenceÓ
A Scripting
Language used by many programmers is Pseudo-Code, aka Structured English.
Pseudo-Code:
Fundamentals
(functional pseudocode)
Review:
An algorithm is a procedure for solving a problem in terms of the actions to be executed and the order in which those actions are to be executed. An algorithm is merely the sequence of steps taken to solve a problem.
Pseudocode is an
artificial and informal
language that helps programmers develop algorithms. Pseudocode is a
"text-based" detail (algorithmic) design tool.
The rules of Pseudocode are
reasonably straightforward. All statements showing "dependency" are
to be indented. These include while, do, for, if, switch.
Examples:
1.
//This is a comment, because it
follows the double slashes. These
words are not part of the program, they are
//notes, explanations, and
descriptions of what you are trying to accomplish. Please start all your scripts with comments.
//This script will help me cross
the street. The title of this
script is: cross the street.
Walk_sign = 0; //comments
may be used anywhere. Please use
them liberally. We have just
created and initialized
//a
variable.
If Walk_sign
= 1 Then //conditional logic based on the
value of the variable.
Action
"cross the street"
//output of program based on the value of the variable.
Else //if
the variable does not = 1 then what follows is executed.
Action
"donÕt cross the street, continue to read the value of the traffic
signal"
2.
//this program computes a
studentÕs grade
total = 0; //Initialize total to zero
grade counter = 1; //Initialize grade counter to zero
grade = 0; //Initialize grade to zero
class average = 0; //Initialize class average to zero
While grade counter <= 10 //while grade counter
is less than or equal to ten
Prompt
Òinput the next gradeÓ;
//Input the next grade;
Total
= Total + grade; //Add the
grade into the total
class average = total/10;
Print class average
3.
//this program calculates an
average grade for all students in one class.
total = 0; //Initialize
total to zero
counter = 0; //Initialize counter to zero
grade = 0; //Initialize grade to zero
sentinel = 7; //In programming a sentinel value is a value that terminates a loop.
Prompt ÒInput the gradesÓ
while counter != sentinel; //run this loop until the sentinel has
been reached
total
= total + grade; //add this grade
into the running total
counter
= counter + 1; //add one to the
grade counter
input
the next grade (possibly the sentinel)
if counter != 0; //if the counter is not equal to zero
average
= total/counter; //set the
average to the total divided by the counter
print
average; //print
the average
else
print
'no grades were entered' ;
4.
//this program calculates how
many students passed and failed.
passes = 0; //initialize passes to zero
failures = 0; //initialize failures to zero
student = 1; //initialize student to one
While student <= 10; //while student
counter is less than or equal to ten
input the next exam result
if the student passed
passes
= passes + 1; //add one to
passes
else
failures
= failures + 1; //add one to
failures
student = student + 1; //add one to student counter
print the number of passes;
print the number of failures;
if passes <= 8 //if eight or more
students passed
print
"your instructor must be an exemplary citizen";
else
print
ÒletÕs just keep this our little secretÓ
_____________________________________________________
Questions?
LetÕs
try some of this out and write a short script together.
The goal
of the script is to flip a coin and respond to heads and tails differently.
The
steps are:
1. Define what you want the script to
do and place this description in comments at the top of the page.
2. Create and Initialize your
variables. Feel free to apply comments
liberally to remind you of what you are doing.
How to use these movies:
Our goal is to get through chapters 1-4 by next week, and I will ask you to begin working on chapter 5 in class next time.
Deep, Searchable, Javascript Reference
Assignment:
JavaScript Tutorials nos. 1-4, save your work to your class folder.
_______________________________________________________
Week 5
REVIEW:
o MAIN
PROGRAM
CALL VIDEO_STORE
END MAIN
FUNCTION VIDEO_STORE
CALL BANK
PRINT "Go down another block, it is on the left side of the
street. Ò
CALL POST_OFFICE
RETURN
END FUNCTION
FUNCTION BANK
PRINT "Make a right on Maple go down to Cedar and make a
right."
RETURN
END FUNCTION
FUNCTION POST_OFFICE
PRINT ÒCross the Street and go down one more block.Ó
RETURN
END FUNCTION
LetÕs create a
Program with Functions.
LetÕs
create a Program with Functions and a variable.
****Can we
use conditional logic somewhere?
LetÕs
create a Program with Functions and an array.
Week 6
Presidential
Debate tonight!
Your
scripts/functions.
Data
Visualization –hans rosling TED talk (link within link)
Sosolimited
ReConstitution Ô08
***ReConstitution
will be shown at the Corcoran on October 15th – tickets
are still available!!
Jason
Corace obituary
project
Fang-Yu Lin
political science 101
Google
Viral Marketing
LetÕs
discuss the Pedabyte Age, and Data, and Scientific MethodologyÉ
Mimi Ito,
et al, the
stuff we haul around with us
Visual
Cognition:
The
Amazing Color Changing Card Trick
Visual Cognition Lab
Experiments
(Another)
REVIEW:
Assignment:
Please
write and post to our friendfeed site a BRIEF (1-2 paragraph) Environmental
Autobiography Reflection
Continue with your language of choice.
Week
7
ÒFacts create norms, not illuminationÉÓ Werner Herzog
Project presentations
Presidential debate Wednesday night
Cognitive set experiment
The Netflix Prize
seeks to substantially improve the accuracy of predictions about how much
someone is going to love a movie based on their movie preferences. Improve it
enough and you win one (or more) Prizes. Winning the Netflix Prize improves our
ability to connect people to the movies they love.
Gavin Potter – This Psychologist may outsmart the Math brains, from wired.
His paper on his Netflix algorithm: ÒPutting the collaborator back into collaborative filteringÓ
Some excerpts:
When [rating
movies] ... a user is being asked to perform two separate tasks.
First, they
are being asked to estimate their preferences for a particular item. Second, they
are being asked to translate that preference into a score.
There is a
significant issue ... that the scoring system, therefore, only produces an
indirect estimate of the true preference of the user .... Different users are
translating their preferences into scores using different scoring functions.
[For example,
people] use the rating system in different ways -- some reserving the highest
score only for films that they regard as truly exceptional, others using the
score for films they simply enjoy .... Some users [have] only small differences
in preferences of the films they have rated, and others [have] large
differences .... Incorporation of a scoring function calibrated for an
individual user can lead to an improvement in results.
[Another]
powerful [model] we found was to include the impact of the date of the rating.
It seems intuitively plausible that a user would allocate different scores
depending on the mood they were in on the date of the rating.
It is our view
that when it is important to extract exact preference information and
preference orderings between items, then the designers of such systems should
consider other options such as the paired comparison of items. These types of system have a
significant advantage in that they only require users to provide preference
ordering information and the users do not, therefore, have to translate their
preferences into a scale. Because
one can also examine the transitivity of the results these systems proved an
inbuilt estimate of the reliability of the results. The disadvantage, of course, is amore complex user interface
and users many not be prepared to respond to such types of system.
Gavin makes a point of:
á
Translation vs.
comparison
Interactivity, operative knowledge, is about persistent comparisons,
not so much about translation.
Translation: A restating of something in other words.
While gazing at
something, a work of art, for example, one may be said to be in the act of
translating the experience embodied in the creation of the work to oneÕs own
experience.
What is the
effect of a cognitive set on this act of translation?
Comparison: A statement or estimate of similarities and differences.
Observing the qualities of similarity and difference.
When we are
comparing different things we are observing their similarities and differences
– this operation is more complex than translating, as it engages, at the
very least, multiple points of view – as more than one ÔthingÕ is being
observed.
When we spoke
about knowledge as operative, and interaction as a relationship of mutual
influence between at least two entities, werenÕt we really talking about
comparisons?
Act of
translating oneÕs preference for a movie into a scale of 1-5.
By parsing the
dataset for biases (tendencies), and factoring in those tendencies, GavinÕs
algorithm was able to more accurately predict movie ratings.
By asking viewers
to compare two or more movies, and select which one they prefer, he was able to
get increasingly more accurate predictions about what films a viewer might
like.
When we ask people to
compare and select what they prefer, and not to quantify their feeling on a
numeric scale, we gain greater insight – and the participant gains better
insight into their own tendencies/biases.
When these tendencies/biases can be shared, a collective increase in
knowledge occurs, as one can compare oneÕs own tendencies/biases, with others,
etc.,
How Magicians Control Your Mind
At a major
conference last year in Las Vegas, in a scientific paper published last week
and another due out this week, psychologists have argued that magicians, in
their age-old quest for better ways to fool people, have been engaging in
cutting-edge, if informal, research into how we see and comprehend the world
around us. Just as studying the mechanisms of disease reveals the workings of
our body's defenses, these psychologists believe that studying the ways a
talented magician can short-circuit our perceptual system will allow us to
better grasp how the system is put together.
Comparisons are, perhaps less ÔspecificÕ than
translations, but they seem to reveal more about the people and things involved
in the comparison.
Web Analytics:
Assignment:
WeÕll meet again in two weeks.
Please continue in your various languages, and read:
Putting the collaborator back into collaborative
filtering
And post a few things to the friendfeed site that relate to the
reading.
____________________________
Week 8
LetÕs discuss this
article and the embedded .pdf (of Gavin PotterÕs brief paper on
how heÕs handling the Netflix prize) – which you
read last week.
This Psychologist may outsmart the Math brains, an article on Potter from wired.
Gavin Potter makes a point about scaling our feelings, and how when we do that two things happen:
Q: what was his solution to improve the Cinematch algorithm?
What ÔconcernsÕ have been expressed about GavinÕs solution, in regard to what it is asking of the user?
We train to the medium:
What is the implication of living in a world where we are increasingly surrounded by media that asks us to scale our environmental responses?
ÒFacts create norms, not illumination.Ó Werner Herzog
We can think of facts as concretized knowledge.
The computer processes concretized knowledge.
Our minds deal in degrees of knowledge and understanding that are far more nuanced than the computer can interpret.
Remember the Jaron Lanier article, and his thoughts on the Turing Test?
TotallyLooksLike – concretized comparisonÉ. Why do I think that?
Remember we talked about Cognitive Sets?
And that knowledge is operative – that the environment changes as we change.
How are we changing the environment and how might these changes be affecting us – what is our environment teaching us, what sort of cognitive set is it presenting?
Remember the Chris Oakley video (the catalogue)we watched?
How might we re-shoot this video with cognitive sets, and
environmental psychology in mind?
Jung Personality Typology Test
The computer is understood as a tool for enhanced inquiry
and understanding. In regard to
what weÕve just been discussing, is it?
what do we gain from keeping more accurate accounts of our thoughts and
feelings offline?
And this excerpt from the introduction to Swiss
Psychologist Jean PiagetÕs book ÔGenetic
EpistemologyÕ:
ÒÉIn cases involving the physical world the abstraction is
abstraction from the objects themselves. A child, for instance, can heft
objects in his hands and realize that they have different weights - that
usually big things weigh more than little ones, but that sometimes little
things weigh more than big ones. All this he finds out experientially, and his
knowledge is abstracted from the objects themselves. But I should like to give
an example, just as primitive as that one, in which knowledge is abstracted
from actions, from the coordination of actions, and not from objects. This
example, one we have studied quite thoroughly with many children, was first
suggested to me by a mathematician friend who quoted it as the point of
departure of his interest in mathematics. When he was a small child, he was
counting pebbles one day; he lined them up in a row, counted them from left to
right, and got ten. Then, just for fun, he counted them from right to left to
see what number he would get, and was astonished that he got ten again. He put
the pebbles in a circle and counted them, and once again there were ten. He
went around the circle in the other way and got ten again. And no matter how he
put the pebbles down, when he counted them, the number came to ten. He
discovered here what is known in mathematics as commutativity, that is, the sum
is independent of the order. But how did he discover this? Is this
commutativity a property of the pebbles? It is true that the pebbles, as it
were, let him arrange them in various ways; he could not have done the same
thing with drops of water. So in this sense there was a physical aspect to his
knowledge. But the order was not in the pebbles; it was he, the subject, who put
the pebbles in a line and then in a circle. Moreover, the sum was not in the
pebbles themselves; it was he who united them. The knowledge that this future
mathematician discovered that day was drawn, then, not from the physical
properties of the pebbles, but from the actions that he carried out on the
pebbles. This knowledge is what I call logical mathematical knowledge and not
physical knowledge.Ó
And this quote from Charles S. Peirce, from a paper entitled
ÒThe Scientific Method and FallibilismÓ
ÒÉIt is a matter of real fact to
say that in a certain room there are two persons. It is a matter of fact to say that each person has two
eyes. It is a mater of fact to say
there are four eyes in the room.
But to say that if there are tow persons, and each person has
tow eyes there will be four eyes is not a statement of fact, but a statement
about the system of numbers which is our own creation.Ó
Week 9
Visualizing the
Election in the Pedabyte Age:
ÒThe 20th
Century was about sorting out supply, the 21st Century is about
sorting out demand.Ó Gavin
Potter
The idea of the Internet is that everything is available, but
availability and access are aspects of each other. More nuanced methods of access equal greater
availability. Less nuanced methods
of access make the vastness of online data meaningless.
Video the Vote – keeping an eye on democracy
how to legally video your vote
Current
TV - is relying
entirely on Web users to provide its news content today. Through a partnership
with social networking sites Digg and Twitter, the channel will rely on
Internet users to provide its news content. The channel's TV screen will be a
crowded and sometimes disconnected "dashboard" of text and video
created or chosen by Internet users.
Election
dashboard
What
is your state of mind? Tagcloud
This Thursday, November 6, from 2-3PM Under Armour will be in
Brown
320 to present on internship opportunities they have available to
MICA
students. The
Directors of 5 departments (Graphic Design, Web,
Apparel, New Media, and Innovation) will be on hand to answer
questions and talk about their areas within the company. We would
like to encourage you to pass this information on to your students
and
encourage them to attend, as this is a fantastic way to find out
about
local internships with an international corporation.
Week 10
Your Projects
Searching, Browsing, and Recommending.
Obama launches website to remain in touch with public ˆ change.gov
á
Transition team rolls out change.gov within 24 hours of last
week's historic vote
á
Web site allows visitors to "follow the setting up of the
Obama administration"
á
Visitors can share their vision for an Obama presidency, apply for
a job
á
Web site is an extension of Obama's online strategy during the
campaign
The Art,
Science and Business of Recommendation Engines
Searching, Browsing and Recommendations.
A good recommendation engine can make a difference for
any online business.
This is because there are two fundamental activities online -
Search and Browse.
When a consumer knows exactly what she is looking for, she searches for it.
But when she is not looking for anything specific, she browses.
It is the browsing that holds the golden opportunity for a
recommendation system, because the user is not focused on finding a specific
thing - she is open to suggestions.
During browsing, the user's attention (and their money) is up for
grabs.
By showing the user something compelling, a web site maximizes the
likelihood of a transaction.
So if a web site can increase the chances of giving users good
recommendations, it makes more money.
Obviously this is a difficult problem, but the incentive to solve
it is very big.
The main approaches fall into the following categories:
*
Personalized recommendation - recommend things based on the individual's past
behavior
* Social recommendation -
recommend things based on the past behavior of similar users
* Item
recommendation - recommend things based on the thing itself
* A
combination of the three approaches above
Amazon - The King of Recommendations
Taxonomy vs. Tagsonomy:
Taxonomy (from Greek taxis meaning arrangement or
division and nomos meaning law) is the science of classification according to a
pre-determined system, with the resulting catalog used to provide a conceptual
framework for discussion, analysis, or information retrieval. In theory, the
development of a good taxonomy takes into account the importance of separating
elements of a group (taxon) into subgroups (taxa) that are mutually exclusive,
unambiguous, and taken together, include all possibilities. In practice, a good
taxonomy should be simple, easy to remember, and easy to use.
Tagsonomy is a shared, emergent, personal, evolving
classification system.
Case Study:
John UdellÕs Annotating the Web
Tagsonomy
of JohnÕs Post on del.icio.us
You can see what words were used on del.icio.us and rank them on a
chart. "Google" and "maps" were the tags most commonly
used, but then the list diversifies. People used "screencast",
"xml", "hacks", "howto" and "travel"
among others. None of these terms are words we have in our taxonomy. Had we
tagged the post using our structure, we would have had to use "Application
Development" or "Internet" which means nothing to the people who
care about Jon's screencast. Different people identify the same thing in
different ways...it's the blind men and the elephant story. No matter how
clever our structure gets, we'll never make everyone see the elephant the same
way.
ÒI'm not suggesting that structure is unnecessary. In fact,
it's very necessary for some of the broader categorization that makes our site
useful. However, we spend way too much time thinking about a master structure
and building complicated tools to accomplish complicated tasks that ultimately
underserve the people we want to help.
I'm suggesting instead that in addition to a limited structure,
we can build a system for connecting things. And if the world around us adopts
the same connective tissue, we will be able to open up new possibilities for
helping people find what they need. What seemed impossible when the Semantic
Web was proposed is actually happening out there right now...with or without
you.Ó –Matt
McAlister
Pandora - The Recommendation System Based on Genetics –
remember Gavin PotterÕs Netflix Prize strategy?
How Pandora and the music genome project work:
á
Pandora has no concept of genre, user connections or ratings.
á
It doesn't care what other people who like Gomez also like.
á
When you create a radio station on Pandora, it uses a pretty
radical approach to delivering your personalized selections:
o
Having analyzed the musical structures present in the songs you
like, it plays other songs that possess similar musical traits.
o
Pandora relies on a Music Genome that consists of 400 musical
attributes covering the qualities of melody, harmony, rhythm, form,
composition and lyrics.
á
It's a project that began in January 2000 and took 30 experts in
music theory five years to complete.
á
The Genome is based on an intricate analysis by actual humans
(about 20 to 30 minutes per four-minute song) of the music of 10,000 artists
from the past 100 years.
á
The analysis of new music continues every day since Pandora's
online launch in August 2005.
Interfacing/Interacting with the Data:
á
We can give any song the station plays either a thumbs-up or a
thumbs-down, and providing this feedback instantly changes the station's
playlist.
á
Let's say we don't care for a given song, to give it a
thumbs-down, we left-click on the album art and chose the thumbs-down, "I
don't like it" option.
á
Now Pandora will never play that song on station again, and it
will play songs that are genetically similar to that song less often.
á
If we click on the arrow next to the Radio station and choose
"Edit this station," we can see that Pandora has put that song on the
list of songs we don't like.
á
Giving a thumbs-up has the opposite effect -- that song and other
songs like it will play more often.
o
The idea is to
continually provide feedback so the station learns more and more about what we
like and don't like.
o
The result is a progressively personalized radio station that
really does play only music we want to hear.
o
It takes a while to get there, but most people agree that the
feedback process works.
Some of the other things we can do with Pandora include:
* Add
more music to a station (based on a new seed song or artist)
* Add a
song to our Favorites list so we can keep track of the music we like
* Buy
the music we like from Amazon or iTunes by clicking on the album art and
choosing a store
* Share
a station with a friend through an e-mail link
*
Minimize the player so it sits in the corner while we do other stuff on the
computer
* Create
up to 100 stations
*
Register for RSS feeds to find out what your friends are listening to, what the
top 20 artists are and other information
á
*
Link to Pandora stations from your blog (Pandora will even generate the code
for you)
Here's what happened behind the scenes when we created our radio
station:
á
Pandora located a song by a specific artist and pulled up the Genome
analysis for that song.
á
It then ran an algorithm that compared every song in the Genome
database to the genetic makeup of that song in order to identify songs that
have similar traits.
á
The algorithm looks for matches across 400 parameters.
á
Here's just a handful of the traits and concepts it looks at
(definitions excerpted from the Virginia Tech Multimedia Music Dictionary):
o
arrangement - the selection and adaptation of a composition
or parts of a composition to instruments for which it was not originally
designed
o
beat - the regular pulse of music
o
form - the structure of a composition, the frame upon which it is
constructed; based upon repetition, contrast, and variation
o
harmony - the concordant (or consonant) combination of
notes sounded simultaneously to produce chords
o
lyrics - the words of a song
o
melody - a succession of tones comprised of mode,
rhythm, and pitches so arranged as to achieve musical shape
o
orchestration - the art of arranging a
composition for performance by an instrumental ensemble
o
rhythm - the subdivision of a space of time into a
defined, repeated pattern
o
syncopation - deliberate upsetting of the meter or pulse of
a composition by means of a temporary shifting of the accent to a weak beat or
an off-beat
o
tempo - the speed of the rhythm of a composition
o
vamping - to extemporize the accompaniment to a solo
voice or instrument
o
voice - the production of sound from the vocal chords, often used in
music; falls into six basic categories defined by pitch, ranging, from bottom
to top, Bass, Baritone, Tenor, Contralto, Mezzo Soprano, and Soprano.
Issues:
á
Some people find that the categories applied to analysis are too
subjective, and ultimately limit the breadth of selections so that after a while oneÕs station begins to
essentially play the same song by different artists.
á
A user cannot tell Pandora exactly what to play ahead of time due
to licensing issues between Pandora and the copyright holders of the music.
Long Tail Method:
á
In the digital age, where consumers can easily find the specific
thing they're looking for and producers can easily provide new content for
distribution,
á
Long Tail states that directing consumers off
the beaten path is a potential key to profitability.
Keep in mind here that every song's traits are determined "by
hand." There was an actual human being who identified the characteristic
voice types, beats, structures and tempos for each of the 400,000 songs in the
Genome database. It's a profound undertaking that will probably continue for as
long as Pandora Media has the money to pay its experts to listen to music all
day.
Del.icio.us - Can Tags Become Genes?
Dan
Gilbert, author of Stumbling on Happiness, challenges
the idea that weÕll be miserable if we donÕt get what we want. Our
"psychological immune system" lets us feel truly happy even when
things donÕt go as planned.
Programming
Collective Intelligence
Programmable web, list
of APIs
The
Project and the Algorithm – the politics of ranking algorithms.
Assignment:
Read: Confirmation
Bias, paying close attention to Peter WasonÕs 2-4-6 problem.
Think about the relationship between Dan
GilbertÕs, talk and the psychological phenomena of Confirmation Bias are
exemplified on the web, in particular in relation to custom
content/recommendation algorithms.
Post your thoughts on our Friendfeed
site.
____________________________
Week 11
Befpre there was
Google there was the idea for google ˆ initial presentation from Õ97, ÒThe anatomy of a large-scale, hypertextual web search engineÓ, by Sergie Brin and Lawrence Page.
Google has asserted that its mission is to organize the world's
information and make it universally accessible and useful.
Marissa Mayer on where GoogleÕs ideas
come from
As wonderful as Google is, there is still much to do.
Alternative Search Engines, from
ReadWriteWeb
100 Top Alternative Search Engines
Most search engines are about algorithms and statistics based on
frequency (popularity) of hits and links, without more nuanced structure.
Databases have been solely about structuring information.
In the middle there is the relationship between things.
Freebase, the first product of semantic web company Metaweb, is an
open, semantically marked up database of information using domains and types.
Unlike Wikipedia, which is a free form database, Freebase is
structured, where concepts and relationships are interlinked into a gigantic
network or graph. Another important difference is that Freebase is all about
its API (Application Programming
Interface). Any information contained inside the database
is accessible and can be retrieved via queries. In addition, the data in
Freebase is under a Creative Commons license - meaning that is readily
exportable and useful by others.
Adding Data and New Types to Freebase
API = (Application Programming Interface) A
language and message format used by an application program to communicate with
the operating system or some other control program such as a database
management system or communications protocol.
Freebase/ about
Assignment:
Work
on final projects
___________________________________________
Week 12
impact bias/affective forecasting
In his TED talk, Prof. Gilbert referred to our pre-frontal cortex as a simulator, capable of generating and dissipating both scenarios – the example he gave was a group at Ben and JerryÕs imagining a Liver and Onion flavor of ice-cream – their imagination would allow them to simulate the experience of that flavor without having to actually make it.. the challenge that Gilbert observes is that when we simulate future events we also engage in affective forecasting and often apply an impact bias to the affect that we see in the future.
Another recent observation from behavioral psychology is called Empathy gap , and it essentially describes how sensitive and dependent we are on our initial conditions. If we are angry it is very difficult for us to imagine, while angry, what happiness feels like.
When we imagine things we are simulating experience, and when we simulate experience many of us engage in affective forecasting and then apply impact biases to those forecasts.
While feeling a specific emotion, like anger, it is difficult for us to imagine other emotions – happiness, for example, this is called empathy gap.
Remember confirmation bias, and the observation by clinical psychologists that we tend to change our memories about our intentions, or, in Pierre HuyghesÕ work Ôthe third memoryÕ, our memories themselves in response to elements in our immediate environment?
Daniel Gilbert @ Pop!tech, pt. 1
Daniel Gilbert @ Pop!tech pt. 2
So we are highly sensitive to our immediate environment – and focus our attention on changes that occur quickly within that environment.
We also have a relatively new ability to imagine (simulate) the future – but donÕt do a very good job of it.
We seem to get into particular difficulty when we imagine how we will react emotionally to an imagined event.
Q: are our laptops, iphones,
ipods, wiis, etc., simulating events as well?
Q: are our gizmos and software
functioning as prosthetic imaginations?
Q: if so, what are the differences between events we imagine in
our minds without specific external stimulus and the experience of simulations
in specific media?
Q: in either case how is our
environmental awareness effected by vivid simulations?
Q: in either case how is the
quality of our connection to other people affected by vivid simulations?
Q: do readily available, custom
content biases simulations like music, video games, etc allow us to e ssentially
schedule and manage our emotional lives, independent of the shifting external
environment?
***we are highly sensitive to
our environment, and adapt to it at every moment. We build specific environments to stimulate specific affect,
or ranges of affect. With our
array of custom content gizmos we are creating an environments composed of
mobile, individuated custom content micro-environments, or are we???
More Dan Gilbert ˆ (optional – forward video to minute 34:50)
Daniel Gilbert on Charlie Rose (starts @ 34:50) – he gets into some additional ideas based on the premises weÕve heard above – in particular he gets into some thoughts about how we are all much more similar than different – but our privileging of individuality complicates this important understandingÉ
LUNCH
To compareˆ
To predictˆ
How to register for Nico Nico Douga
Reverse Speech, voices from the unconscious?
TECH:
***You will need
server space to store your scripts.
Your mica server space is fine as the scripts will be very small. If you donÕt have server space please see
me and weÕll get you some. I
suggest you create a folder specifically for your callxml applications***
1. Go here: Voxeo Account Registration,
complete registration. It is completely free.
2. Check email for PIN
3. Login on upper right corner
4. callxml 3.0 documentation/tutorials
– click on the Òlearning callxml 3.0Ó link under the ÒGetting StartedÓ
header. Callxml 3.0 is a significant improvement over its predecessors. It is close to an ECMA and supports
Regular Expressions via Xpath. It
is currently in Beta release but seems reliable.
5. Do the Helloworld and beyond
applications.
6. Use the Application Manager
from within the voxeo developer site.
When you have uploaded a script to your server, create a new application
via the Application Manager – make sure you click on the Òcallxml 3.0
BetaÓ button.
7. Use the debugger to check your
script for syntax errors.
8. Search the Òextreme support
forumsÓ – most of your questions will be answered there.
9. Please ask me if you have any
questions.
CallXML
* please do:
1. Hello
World tutorial , but use this script (which doesnÕt require you to record
anything)
1. <?xml version="1.0" encoding="UTF-8" ?>
<callxml version="2.0">
<text voice="English-Female2">
what an excellent day for mud wrestling.
</text>
</callxml>
2. Now try this script:
1. <?xml version="1.0" encoding="UTF-8"?>
<callxml version="2.0">
<block label="B_1">
<text termdigits="#" voice="English-Female2">
Here is some TTS in the default English Female voice from Speechify.
This TTS output can be ended at any time by pressing the pound key.
So what the heck are you waiting for?
Press the gol durn key on your phone!
</text>
<ontermdigit value="#">
<text voice="English-Female2">
Moving on, we will next check out the English male voice.
</text>
<goto value="#B_2"/>
</ontermdigit>
</block>
<block label="B_2">
<text termdigits="#" voice="English-Male2">
Here is some TTS in
the English Male voice from Speechify.
This TTS output can be ended at any time by pressing the pound key.
So what the heck are you waiting for?
Press the gol durn key on your phone!
</text>
<ontermdigit value="#">
<text voice="English-Female2">
Moving on, we will next check out the Spanish Female voice.
</text>
<goto value="#B_3"/>
</ontermdigit>
</block>
<block label="B_3">
<text termdigits="#" voice="Spanish-Female1">
Aqui
esta algun TTS en la voz femenina espanola de Speechify.
Usted tienen gusto de mis pantalones?
Presione la llave de la libra para parar TTS.
</text>
<ontermdigit
value="#">
<text voice="English-Female2">
Next, we will boogie down with the French Female voice.
</text>
<goto value="#B_4"/>
</ontermdigit>
</block>
<block label="B_4">
<text termdigits="#" voice="French-Female2">
Voici un certain TTS dans la voix femelle francaise de Speechify.
Veuillez appuyer sur la touche de livre pour
me faire la reddition.
</text>
<ontermdigit value="#">
<text voice="English-Female2">
We are now done messing with the TTS voices.
What did you expect, a celebrity voice?
</text>
</ontermdigit>
</block>
</callxml>
3. Now go through this tutorial, BE SURE TO SUBSTITUTE <TEXT
VOICE=ÓWHATEVER YOU WANT(SEE ABOVE> FOR THE<PLAY AUDIO TAGS> BELOW.
Tutorial: Hello
World with Termdigits
This Lesson is
based on the things you accomplished in Lesson 1. If you haven't yet done this
Lesson, you'll need to go through it first so that you aren't left in the dust
with the high-falutin' concepts that we discuss here.
In this tutorial,
we will:
* extend hello world to
respond to the * and # keys
* learn about the
termdigits attribute
* upload the new hello
world app and try it out
Step 1: extend
hello world to respond to keys
In the previous
tutorial, we ended up with a callxml file that looked like this:
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
</callxml>
In callxml,
things like <playaudio> are called action elements. These elements
perform "actions", such as playing audio, recording audio, and
hanging up. Callxml has another category of elements known as event elements.
These elements describe what to do when various events occur during a call,
such as when the user presses touch-tone keys on their telephone. Here we will
add a callxml event element to the hello world callxml we created in the last
tutorial. This event element will react to the "*" key.
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
<ontermdigit value="*">
</ontermdigit>
</callxml>
Now we need to
fill in the event element with instructions on what to do when the '*' key is
pressed. In this example, we will use another action element -- the
<text> element -- to read text to the caller, telling them that they
"pressed the star key."
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
<ontermdigit value="*">
<text>you pressed the
star key.</text>
</ontermdigit>
</callxml>
Next we'll add a
second event element for the '#' key, which will tell the caller they
"pressed the pound key" when they do, in fact, press that key.
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
<ontermdigit value="*">
<text>you pressed the
star key.</text>
</ontermdigit>
<ontermdigit value="#">
<text>you pressed the
pound key.</text>
</ontermdigit>
</callxml>
Step 2: the
termdigits attribute
Pretty easy so far...
but we need to do one more thing. By default, callxml will not interrupt
actions such as <playaudio> when keys are pressed. To allow an action to
be interrupted, or terminated, you must add a termdigits attribute to the
action. Termdigits specifies a list of digits which can terminate the action.
In this tutorial, we'll add termdigits="*#" to playaudio, as shown
below:
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"
termdigits="*#"/>
<wait
value="4s" termdigits="#*"/>
<ontermdigit value="*">
<text>you pressed the
star key.</text>
</ontermdigit>
<ontermdigit value="#">
<text>you pressed the
pound key.</text>
</ontermdigit>
<onerror>
<sendemail from="MyApp@here.com"
to="YourEmail@there.net" type="debug">
We caught an error in our
application. Details follow...
</sendemail>
</onerror>
</callxml>
You'll notice
that we also added a new element into the mix, the <wait> tag. We need
this to be placed at the end of our <playaudio>, since our sound file is
so short, otherwise, the caller's DTMF ijnput may not have time to be
recognized. You'll probably also notice that this tag has the same termdigits
attribute as in our <playaudio> element. This is required as well, since
if a caller enters DTMF input while in the <wait>, then we need to be
able to trap and handle the event.
We also tossed
another curve ball at you, as well. You'll note the <onerror/sendemail>
tags at the very bottom of the code. This is not an accident; since CallXML
does not have a Form Interpretation Algorithm, any and all event handlers
should reside at the very bottom of your CallXML documents in order to execute.
The cool thing about this event handler, coupled with the <sendemail>
element, is this: Whenever the application takes a nose-dive, be it from a
fetch error, or a coding typo, the event will be caught, and an email sent to
the email address that you specify. When we set the type attribute to 'debug'
the resulting email will also contain information about the application failure
that you can use to correct the problem. If the problem in question still
eludes you, you can simply forward the debug email to the Voxeo Support team,
who can use this information to help you fix your application.
Step 3: save,
upload, and try it out
1. Your updated hello world callxml file is now done. Go ahead and save
it as "helloworld.xml", and upload it to the same web server and directory
you uploaded to in the previous tutorial. Call the number you received in the
previous example, and try pressing '*' or '#'. You should here a message saying
which key you've pressed.
Tutorial: Hello
World with Termdigits
This Lesson is
based on the things you accomplished in Lesson 1. If you haven't yet done this
Lesson, you'll need to go through it first so that you aren't left in the dust
with the high-falutin' concepts that we discuss here.
In this tutorial,
we will:
* extend hello world to
respond to the * and # keys
* learn about the
termdigits attribute
* upload the new hello
world app and try it out
Step 1: extend
hello world to respond to keys
In the previous
tutorial, we ended up with a callxml file that looked like this:
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
</callxml>
In callxml,
things like <playaudio> are called action elements. These elements
perform "actions", such as playing audio, recording audio, and
hanging up. Callxml has another category of elements known as event elements.
These elements describe what to do when various events occur during a call,
such as when the user presses touch-tone keys on their telephone. Here we will
add a callxml event element to the hello world callxml we created in the last
tutorial. This event element will react to the "*" key.
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
<ontermdigit value="*">
</ontermdigit>
</callxml>
Now we need to
fill in the event element with instructions on what to do when the '*' key is
pressed. In this example, we will use another action element -- the
<text> element -- to read text to the caller, telling them that they
"pressed the star key."
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
<ontermdigit value="*">
<text>you pressed the
star key.</text>
</ontermdigit>
</callxml>
Next we'll add a
second event element for the '#' key, which will tell the caller they
"pressed the pound key" when they do, in fact, press that key.
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"/>
<ontermdigit value="*">
<text>you pressed the
star key.</text>
</ontermdigit>
<ontermdigit value="#">
<text>you pressed the
pound key.</text>
</ontermdigit>
</callxml>
Step 2: the
termdigits attribute
Pretty easy so
far... but we need to do one more thing. By default, callxml will not interrupt
actions such as <playaudio> when keys are pressed. To allow an action to
be interrupted, or terminated, you must add a termdigits attribute to the
action. Termdigits specifies a list of digits which can terminate the action. In
this tutorial, we'll add termdigits="*#" to playaudio, as shown
below:
<?xml
version="1.0" encoding="UTF-8" ?>
<callxml
version="2.0">
<playaudio
value="helloworld.wav"
termdigits="*#"/>
<wait
value="4s" termdigits="#*"/>
<ontermdigit value="*">
<text>you pressed the
star key.</text>
</ontermdigit>
<ontermdigit value="#">
<text>you pressed the
pound key.</text>
</ontermdigit>
<onerror>
<sendemail
from="MyApp@here.com"
to="YourEmail@there.net" type="debug">
We caught an error in our application. Details follow...
</sendemail>
</onerror>
</callxml>
You'll notice
that we also added a new element into the mix, the <wait> tag. We need
this to be placed at the end of our <playaudio>, since our sound file is
so short, otherwise, the caller's DTMF ijnput may not have time to be
recognized. You'll probably also notice that this tag has the same termdigits
attribute as in our <playaudio> element. This is required as well, since
if a caller enters DTMF input while in the <wait>, then we need to be
able to trap and handle the event.
We also tossed
another curve ball at you, as well. You'll note the <onerror/sendemail>
tags at the very bottom of the code. This is not an accident; since CallXML
does not have a Form Interpretation Algorithm, any and all event handlers
should reside at the very bottom of your CallXML documents in order to execute.
The cool thing about this event handler, coupled with the <sendemail>
element, is this: Whenever the application takes a nose-dive, be it from a
fetch error, or a coding typo, the event will be caught, and an email sent to
the email address that you specify. When we set the type attribute to 'debug'
the resulting email will also contain information about the application failure
that you can use to correct the problem. If the problem in question still
eludes you, you can simply forward the debug email to the Voxeo Support team,
who can use this information to help you fix your application.
Step 3: save,
upload, and try it out
Your updated
hello world callxml file is now done. Go ahead and save it as
"helloworld.xml", and upload it to the same web server and directory
you uploaded to in the previous tutorial. Call the number you received in the
previous example, and try pressing '*' or '#'. You should here a message saying
which key you've pressed.
Assignment:
Work on
final projects, post content to friendfeed.
Week 13
Blog Post on GoogleÕs shifting focus, Ô05
jimmyrcom – many informative tutorials
In class exercise:
Part II:
PartIII:
Write up your experience and post it to friendfeed
The OTˆ
spinninglady illusion explanation
exactitudes, what type are you?
Assignment:
Have a nice holiday
Week 14
JG
Ballard, BBC interview with critic Tom Sutcliffe
Using
Processing to determine primary color in Sophia CoppolaÕs films
Work on Final Projects
Assignment:
Work on Final
Project
___________________________________
Media
as an ensemble of actions
Alternative/Augmented Reality Games, from the beginning:
Are
these not games?
o DoEat
Assignment:
Post
your reflections on todays discussion topic to our friendfeed room.
Continue
with your projects.
_______________________