Course Description

 

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

 

______________________________________________________________________________

 

Week 1

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

 

Epic 2015

 

The Machine is Us/ing Us

 

Intro to the Semantic Web

 

Digital Designers Rediscover Their Hands

 

 

 

 

 

 

 

 

Olympics Opening Ceremony:

Fake Fireworks?

Phoney fireworks, authenticity in the digital age

 

Derren Brown Zombie Shooter

 

Mircea Cantor Deeparture

 

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Õ:

  1. After class take a moment and write one paragraph that clarifies the class content you found most useful, interesting, wanting to explore, etc.
  2. Post what youÕve written to friendfeed.
  3. Throughout the week contribute three things to friendfeed that you feel address what you wrote about in your paragraph.  What you post is up to you, it can be an article, video, image, more of your own writing, etc.
  4. We will begin next class by discussing what you all wrote and submitted.

 

***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

  1. login to your twitter account,  go to: http://twitter.com/home
  2. look for the RSS link in the lower, left of the page.
  3. Mouse over it, and look at the very bottom left corner of the window, and youÕll see a URL with a number.rss
  4. That is your twitter user account number.
  5. Paste it into the line in your script above

 

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

  1. Sign up for a twitter account.
  2. Sign up for gliffy.
  3. Setup a folder on the interactive.mica.edu/im_244_01 site.
    1. If you donÕt have access write to: help@mica.edu and ask for access to the site above.
  4. Download these php/html scripts.
    1. Òjust tweet class.phpÓ Sends a tweet to the twitter account you setup whenever someone opens the page.

                                               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.

    1. The other two are HTML/forms to the above script that allows the participant to send a custom message.
  1. Figure out where youÕd like to place your rabbit hole.
  2. Using gliffy, make an annotated (place explanatory text in the prims) flow chart of your Rabbit Hole, and use it wen you discuss the project with us next week.
  3. For next week create three of these on different sites, please be prepared to talk about what you learned, and what youÕd like to do to extend the rabbit hole into an interaction schema.

 

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

 

Computation:

á      the act of determining the specific tasks and the instructions to accomplish those tasks that need to be performed to reach the goal. If one can specify a sequence of tasks and related instructions which when followed will result in the completion of the goal then the problem is thought to be computable. Computation is about breaking a process into a series of tasks.  Often these tasks must be performed in a specific sequence, where, for example, the performance of task 2 is predicated on the performance of task1, etcÉ A series of tasks leading to a specific result is called an Algorithm.

 

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>>

 

Conflux/projects

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.

 

Psychology of the User

 

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

Wisconsin Card Sort

Òinteractivity is a relationship of mutual influenceÓ

 

 

Some Scripting Basics

 

 

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.

 

JavaScript Tutorials

 

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:

 

Some (more) Scripting Basics

 

 

 

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 15thtickets 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:

 

Some (more) Scripting Basics

 

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

 

Sarah Palin Debate Flow Chart

 

Cognitive set experiment

 

Netflix prize

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 PotterThis 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.,

 

Google image labeler

 

Ignite baltimore

 

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?

 

HotOrNot

RateMyTurban

TotallyLooksLike – concretized  comparisonÉ. Why do I think that?

Pandora/Music Genome Project

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?

 

Match.com Vs. okcupid

 

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.

 

Digital Conversion PSA

Video the Vote – keeping an eye on democracy

how to legally video your vote

            related website

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.

Fora TV

Indecision2008

Talkingpointsmemo

Rock the Vote

Town Hall

The Huffington Post

            Palin prank call

NY Times

            Election dashboard

            What is your state of mind? Tagcloud

CNN

            Electoral Map Calculator

Mogulus

Ustream

Stickam

 

Idiocracy

 

Under Armour

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.

 

How polls work:

 

Assignment:

  Prepare a brief presentation on your recent scripting projects

 

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.

 

Hollywood Stock Exchange

 

Reddit

 

Hello Quizzy

 

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

 

Confirmation Bias

 

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.

 

Google documentary, Ô07

 

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

 

Ujiko

 

kartOO

 

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.

 

Freedbase via ReadWriteWeb

 

Freebase Alpha Tutorial

 

Adding Data and New Types to Freebase

 

Exploring the Freebase API

 

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ˆ

Stockpickr.com

To predictˆ

James Altschul

 

How to register for Nico Nico Douga

 

Nico Nico Douga

 

Reverse Speech, voices from the unconscious?

 

TECH:

 

Voxeo

 

***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

 

    * quickstart guide

    * 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

 

google hacks

Ask Merlin

Thesis Toolkit

Blog Post on GoogleÕs shifting focus, Ô05

Controversy Discover Engine

Zotero

jimmyrcom – many informative tutorials

 

 

In class exercise:

 

Part II:

 

PartIII:

 

Write up your experience and post it to friendfeed

 

The OTˆ

spinning silhouette

spinninglady illusion explanation

 

exactitudes, what type are you?

 

Assignment:

  Have a nice holiday

Week 14

 

Hackers Documentary

 

 

42 Entertainment

 

 

 

JG Ballard, BBC interview with critic Tom Sutcliffe

 

Google Flu Trends

 

 

Using Processing to determine primary color in Sophia CoppolaÕs films

 

Glovepie

 

 

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.

 _______________________