Instructor: Shawn Van Every
Office Hours: Mondays from 1 to 3 and Thursdays from 1:30 to 2:30 or by appointment. Signup: https://itp.nyu.edu/inwiki/Signup/Shawn
Class Wiki: https://itp.nyu.edu/~sve204/cgi-bin/pwiki/wiki.pl?Live_Web_Fall_2015_Class_Wiki
The World Wide Web has grown up to be a great platform for asynchronous communication such as email and message boards which has extended into media posting and sharing. Recently, with the rise of broadband, more powerful computers and the prevalence of networked media devices, synchronous communications have become more viable. Streaming media, audio and video conference rooms and text based chat give us the ability to create new forms of interactive content for live participants.
Grades will be determined according to the following breakdown:
- Regular Assignments 25%
- Mid-Term Project 15%
- Participation and Attendance 20%
- Presentation 15%
- Final Project 25%
It is expected that everyone in the class will create and maintain a blog for their assignments.
Be sure to enter your name, preferred email address and the URL to your blog (you can always edit this later) on the class wiki.
This class is very participatory in nature and discussions will certainly take place outside of the classroom. Along with the blog, one of the primary vehicles for these discussions (as well as administrative issues) will be the listserv.
Laptops and WiFi
I love having WiFi available and I think it is a valuable tool for use in the classroom. Unfortunately, it can very easily be a distraction as well. We are going to be exploring a variety of models for live interaction online and therefore laptops will prove very useful. We should though be courteous to one another and when we have outside guests, during discussion or student presentations laptops use should be curtailed.
We will have weekly assignments that are relevant to material from the previous class. Due to the nature of the assignments, it is likely that you will want to work with other students as well as participate with the projects of your fellow students as "audience" members.
Attendance is mandatory. Please inform me via email if you are going to miss a class. Habitually showing up late for class or an excessive number of absences will adversely affect your grade.
As if I haven't said this enough. This class will be participatory, you are expected to participate in discussions and give feedback to other students both in class and participate with their projects. This (along with attendance) is 20% of your overall grade.
Group Storytelling Project
Starting on the 3rd class, we will have weekly student projects. I will divide the class up into groups and each week one or two groups will give a 15 minute storytelling demonstration utilizing technology from the previous class (chat, live drawing, audio, video conferencing, and so on).
Class will culminate final projects. It is expected that these will be both technology and content driven. Projects such as the development of a tool or a vehicle for live interaction will be considered but should be used in combination with content elements.
I will periodically assign readings (handouts and/or online articles). I will be updating the delicious tag "liveweb" (my liveweb bookmarks) with various sites and articles. Please feel free to use this tag as well. These bookmarks should make good material for further study, papers and presentations.
Class 1: September 8
Introductions What is the "live" web? (Synchronous vs. Asynchronous)
Add your name, preferred email address, and blog URL to the class wiki
Signup for the Listserv
Read Living on a Stream: The Rise of Real-Time Video, bet against or for it on your blog. Explain why.
Class 2: September 15
The foundation: Chat
Get up and running with Node.js on Digital Ocean and the example Socket.io Chat Application. Try to extend it a bit, make it better, more fun.
Tell your story via some text based synchronous medium online: IRC, A public web chat room, Slack, IM, something else. Write up your experiences in a blog entry. Pay particular attention to what worked and what didn't. Who was your audience? How big was it? How did you respond to them? What did you do differently than you would have done in person? How does the medium you choose to work with modify what you can and how you do?
Class 3: September 22
Transmitting Other Data Types: Collaborative Drawing, Mouse Events, Other data: Notes
In Class Example: basicsocketserver.zip
Improve on the chat or canvas drawing examples. What else could be shared this way? Could documents be collaborative edited?
Class 4: September 29
The Live AV Web: HTML5 Audio and Video with WebRTC
In Class Example: new_canvas.html and Collaborative Drawing + getUserMedia Example
Enhance one of your last 2 assignments with the ability collaboratively draw and/or to share camera images.
Class 5: October 6
The AV Web Part 2: Involving Everyone: Multiuser Audio/Video
Get up and running with Live Audio/Video using Peer JS and WebRTC
Come up with an idea for a mid-term project, blog about it and email the class about it (we don't have class next week).
Have a listen to this interview with Jaron Lanier
Class 6: October 20
Midterm Project Meditation: Give your midterm project more testing and thought. What worked, what didn't? What would you still like to do? Will you continue or move on? Document the project on your blog.
Class 7: October 27
What the platform wants?
Live Streaming (OLD Circa 2009)
Find a live or synchronous platform that is in use online and list out it's properties (ideal number of users, capabilities, types of interaction). What do you think it was designed for, what use? What is it actually used for? Does the use match the capabilities? What are the successes or problems in it's design or use? - Prepare to show and discuss in class
Class 8: November 3
WebRTC Data Channels: Notes
Bonus: Manipulating Video and Saving Files on Node.js: Notes
Bonus: Web Audio API: Notes | Push to talk example
Recreate an earlier project using WebRTC Data Channels or build a new simple peer to peer data sharing project.
Class 9: November 10
Going Beyond: Mobile and Live Data from other sources (Web Services)
Create a simple project which involves using data from mobile device sensors or is developed for "mobile first" and uses live audio/video/data.
Make sure your website is up to date with your work from this semester.
Class 10: November 17
Guest: Sam Gregory
Going Beyond: Live Data from the physical world (Arduino)
Example from Class
Make sure you are caught up with your homework and documentation.
Prepare a final project proposal; in a blog post include a short description of the idea, a bit of background (why you want to make it), include any references, and start thinking about how you will develop it.
Class 11: November 24
Final Project Proposals
Class 12: December 1
Additional Topics: Streaming Kinect Data
Class 13: December 8
Additional Topics: HTTPS - getUserMedia
Guest: Felipe Heusser
Class 14: December 15
Final Project Presentations - Expect Guests