Practical Web Applications

 

Over­view

The lines between web sites and web applic­a­tions are blurred. Out­side of the more clas­sical pub­lish­ing scen­arios (which are dis­cussed in a dif­fer­ent course), how do you take your XML data and put it on the web, tak­ing advant­age of mod­ern inform­a­tion archi­tec­ture prin­ciples and the cap­ab­il­it­ies of mod­ern browsers?

Dur­ing this two-day course you’ll learn about inform­a­tion archi­tec­ture prin­ciples such as REST-based sys­tems and iden­tity and secur­ity con­sid­er­a­tions, as well as a good set of tech­no­lo­gies to use and how to use them, includ­ing CSS, HTML5, JavaS­cript, and advanced tech­no­lo­gies such as OAuth. You’ll come away from the course with an appre­ci­ation of the prin­ciples, and hands-on exper­i­ence of some of the tech­no­lo­gies that you can use immediately.

The class pro­ject will be a web-based inform­a­tion site. We will be sup­ply­ing com­puters with soft­ware already installed, or you can bring your own laptop.

Fac­ulty mem­bers Matt Pat­ter­son, Nor­m Walsh, and Paul Downey teach, as well as Fac­ulty Board mem­ber Dr Lauren Wood. Other Fac­ulty mem­bers will be avail­able to help with the hands-on part of the classes.

Classes for 2011

Web Inform­a­tion Architecture

Taught by Paul Downey.

An intro­duc­tion to present­ing data in a form friendly to Machines and Humans using examples from around The Web. We’ll cover top­ics including:

  • Archi­tec­tural Styles: REST (v) RPC-style web services
  • Resources
  • Verbs: GET, POST, PUT, DELETE
  • Con­tent nego­ti­ation, canon­ical URIs and HTTP Range-14
  • Can your Web­site be your API?
  • Cach­ing
  • Mod­el­ling data as resources: doc­u­ments, tags, search­ing, filtering
  • Client-Side versus Server (JavaS­cript versus The Web)

The prac­tical exer­cise will be get­ting star­ted with our case-study using Sinatra (a Ruby frame­work avail­able from http://sinatrarb.com).

Nifty Tools

Taught by Matt Pat­ter­son.

The full-fat tools com­monly used to read, write, and trans­form XML and HTML doc­u­ments (such as XSLT and the DOM) are some­times like using the pro­ver­bial sledge­ham­mer. There are a whole host of bril­liant light­weight tools for pro­cessing XML and HTML on a server, your local machine, or in a web browser.

Dur­ing this class you’ll learn how to gen­er­ate and pro­cess XML using light­weight Ruby lib­rar­ies and DOM script­ing in the browser using JQuery and Javascript.

Out­line

  • Read­ing
    • XML pars­ing with Nokogiri
    • simple XPath
    • CSS Select­ors
    • More com­plex documents
    • simple (com­plex) XPath — cus­tom functions
  • Writ­ing
    • Builder
    • DOM-ish with Nokogiri
    • Namespaces, oh my!
  • DOM script­ing
    • Intro­duc­tion to JQuery
    • Doc­u­ment traversal
    • Doc­u­ment manipulation
    • Events

Secur­ity and Identity

Taught by Dr Lauren Wood.

Web sites and applic­a­tions are under con­stant attack for a vari­ety of pur­poses ran­ging from simple van­dal­ism to attempts to steal pro­pri­et­ary inform­a­tion. Web applic­a­tions need to be pro­tec­ted from such attacks and many require imple­ment­a­tion of secur­ity pro­vi­sions to limit access to inform­a­tion and func­tions to author­ized users.

Dur­ing this ses­sion you’ll learn about some of the most com­mon attacks and how to harden your Web applic­a­tion against them. You’ll learn about secur­ing access to your Web applic­a­tion, pro­tect­ing inform­a­tion dur­ing trans­fer, and the pros and cons of integ­ra­tion with external Web iden­tity services.

Client-Side Latest and Greatest

Taught by Nor­m Walsh.

The lan­guage of the web, HTML, is get­ting the largest and most sig­ni­fic­ant update per­haps in its entire his­tory. The W3C and the WHAT WG are col­lab­or­at­ing to pro­duce HTML5. The update includes both new fea­tures and new expect­a­tions of browser interoperability.

In this ses­sion, we’ll look at the chan­ging face of HTML. We’ll explore the new and updated ele­ments as well as how these ele­ments inter­act with new browser APIs.

  • Intro­duc­tion to HTML5 markup
    • New markup
      • Semantic markup (e.g., HTML Microdata and schema.org)
      • Inlines
      • Forms con­trols
      • Lights and sounds (can­vas, video, and audio)
      • HTML5 vs. Flash vs. Silverlight
    • Deprec­ated elements
    • Poly­glot markup
    • Mix­ing HTML and XML
  • Styl­ing with CSS
  • Dynamic beha­vior with JavaScript
  • Intro­duc­tion to HTML5 APIs
    • Geo­loca­tion
    • Client-storage