Starting Line: Web Standards, Documentation and Techniques

Week One

Monday, August 24 Video

  1. Course overview
  2. Course policies
  3. Course projects

Wednesday, August 26 Video

  1. Asking questions publicly on Basecamp
  2. Walking through web-development environments
  3. Web standards: how we got to a real-time web
  4. Web-standards refresher
  5. Core techniques, practices, and expectations in this class

Non-blocking Realtime Foundations: Asynchronous JavaScript, Event

Week Two

Monday, August 31 Video

  1. Introduce Project One
  2. Why asynchronous JavaScript?
  3. Older methods: callbacks
  4. The Event interface in client-side JavaScript

Wednesday, September 2 Video

  1. The Promise API
  2. Asynchronous JavaScript in disguise async and await
  3. The CustomEvent interface in client-side JavaScript

Catch Up and Open Q & A

Week Three

Monday, September 7

  1. Labor Day (No Class)

Wednesday, September 9 Video

  1. Open Q & A
  2. Leftover material on async, client-side events
  3. Serving localhost over SSL (https)
  4. Previewing what’s to come: Node.js, ExpressJS, Socket.io

RTC Messaging Classics: WebSockets and Socket.io; EventEmitter

Week Four

Monday, September 14 Video

  1. File systems and Node.js
  2. Database vs. flat-file storage
  3. Watching for changes
  4. Diffing out changes: diff
  5. Events

Wednesday, September 16 Video

  1. EventEmitter
  2. WebSockets vs. Socket.io
  3. Sending and receiving messages
  4. Sockets with multiple connected clients

Web Workers and Service Workers; The Web Notifications API

Week Five

Monday, September 21 Video

  1. Workers overview
  2. Functions and classes available to workers
  3. Web Workers

Wednesday, September 23 Video

  1. Service Workers
  2. The service-worker lifecycle
  3. OS and browser settings for notification testing
  4. The Web Notifications API
  5. The Push API

Conferences; Remaining Notifications/Project One Topics

Week Six

Monday, September 28

  1. No class. Group conferences. See Basecamp for schedule.

Wednesday, September 30 Video

  1. Remaining Project One topics and techniques
  2. Merge strategies on GitHub repositories
  3. Serialization/API endpoint
  4. Code organization: routes, lib/
  5. The export syntax
  6. Open Q&A

Media Capture and Streams API Fundamentals

Week Seven

Monday, October 5 Video

  1. Working in secure contexts (https), even in local development
  2. Starting lines: the HTML <audio> and <video> elements
  3. The HTMLMediaElement JavaScript API
  4. The MediaDevices Web API
  5. enumerateDevices() and Device IDs
  6. The Media Capture and Streams specification
  7. Determining available devices
  8. Seeking permissions
  9. Requesting and returning a local media-stream playback
  10. Inspecting stream objects: MediaStreamTrack

Wednesday, October 7 Video

  1. No live class (Stolley on the DL for a massive headache)
  2. Full Project Two description

Planning and Scoping the Second Project

Week Eight

Monday, October 12

  1. Fall Break (No Class)

Wednesday, October 14 Video

  1. Stolley sketches and scopes an example Project Two
  2. Project Two Q&A
  3. Remaining media capture and stream topics
  4. Exploring device capabilities and the getSupportedConstraints() method
  5. The MediaCapabilitiesInfo API

WebRTC Fundamentals: RTCPeerConnection; adapter.js

Week Nine

Monday, October 19 Video

  1. A fuller look at WebRTC by critiquing Google Codelabs code
  2. The WebRTC 1.0: Real-time Communication Between Browsers specification
  3. Setting up a local WebRTC stream for diagnostic purposes

Wednesday, October 21 Video

  1. Resetting and refreshing
  2. Sketching out the WebRTC lifecycle
  3. Stolley sets up Express.JS with better foundations for rooms and signaling
  4. URL-based rooms
  5. Auto-generating rooms and handling dynamic socket.io namespaces on the server
  6. adapter.js (raw adapter-latest.js file)

Deeper into WebRTC; STUN, TURN, and Signaling

Week Ten

Monday, October 26

  1. Abbreviation party: ICE, SDP, STUN, TURN, etc.
  2. WebRTC, RTCPeerConnection interface
  3. Using public STUN servers
  4. Working with home routers and firewalls

Wednesday, October 28

  1. Stolley builds out his Project Two

Multiple Streams and Peer Connections

Week Eleven

Monday, November 2

  1. TBD

Wednesday, November 4

  1. TBD

WebRTC-Supporting Interface Design

Week Twelve

Monday, November 9

  1. TBD

Wednesday, November 11

  1. TBD

Monitoring Networks

Week Thirteen

Monday, November 16

  1. TBD

Wednesday, November 18

  1. TBD

Catch Up and Open Q & A

Week Fourteen

Monday, November 23

  1. Open Q & A

Wednesday, November 25

  1. Thanksgiving Break (No Class)

Work Week

Week Fifteen

Monday, November 30

  1. Open Q & A
  2. Stolley available for one-on-one help

Wednesday, December 2

  1. Open Q & A
  2. Stolley available for one-on-one help