• Home

Welcome to Lift Workshop

Lift is an elegant and expressive open-source web framework that stresses the importance of security, maintainability, scalability, and performance, while allowing high levels of developer productivity. Lift is written in Scala, a multi-paradigm programming language that blends aspects of object-oriented and functional programming. Scala runs on the Java Virtual Machine and is fully interoperable with existing Java libraries.
* http://liftweb.net/index.php/Main_Page
* http://www.scala-lang.org/
This workshop is designed to quickly get you comfortable with the Lift framework. We'll introduce the Scala language and show you how to use Lift to build a moderately complex web application.

Date/Time:
Saturday, November 22, 2008
* Opening at 9:30 - Starting at 10AM
* Ending at 5PM

Location: Berkeley, CA (in a big house near downtown)
Once registered you will be given the address and directions.

Price: $300

Training Prerequisites:
You'll be asked to describe your previous experience with programming languages and web frameworks on our registration form.
Each participant must bring their own laptop with Java, Scala, and Lift pre-installed. (Provide instructions for installing.) You must also come with a text editor of your choice (jEdit, NetBeans, Eclipse, TextMate, emacs, vim, etc)

Course Ouline:
Philosophy of Lift
  • Secure by default
  • Component model
  • Templates, separation code & content
  • Keeping the meaning with the bytes
  • Easy ORM
  • No XML configuration
  • Site wide navigation and access control
  • Pre-built common functionality (User, etc)
Lift Architecture (Overview)
  • MVC
  • Request processing pipeline
  • dispatch, rewrite, view/template, snippets/comet
  • Mapper/ORM
Basic & Intermediate Scala
  • JVM basics
  • defs, vals, vars, lazy vals, type inference
  • classes, objects, traits, case classes
  • for-comprehensions, collections, option/can
  • pattern matching
  • implicits
  • actors
  • Exercises
Basic Lift Projects
  • Maven (dependencies, archetypes, test, compile, deploy)
  • Java Servlet basics (WARs, Jetty (continuations?), Tomcat, LiftFilter, etc)
  • Directory layout (Boot.scala, Comet, Model, Snippet, View)
  • DB Support (Derby, MySQL, PostgreSQL, etc)
  • Make new Lift project for Collaborative CMS
  • Play with the archetype project (user creation, login, etc)
  • Explore archetype-generated code (stuff in Boot.scala, User)
Basic Lift: Adding a To-Do List
  • Mapper basics
  • Snippet basics
  • Some SHtml goodies
  • Model objects with Mapper
  • Write some snippets
  • Make to-do swappable
Intermediate Lift: Adding a Wiki
  • More on Boot.scala
  • RewritePf
  • Rewrite pretty URLs
Advanced Lift: Adding Real-time Chat
  • Add real-time chat to the app
Instructor Biographies:
David Pollak has been shipping commercial software for 31 years. He started development of Lift in February 2007. David's checked past includes a stint as CTO at Cenzic, a web app security company, inventing the worlds first web-based collaborative spreadsheet and the real-time spreadsheet. David's been programming in Java since 1996 and Ruby/Rails since 2004. David lives in San Francisco with his wife, two kids, two cats, dog, and three fish.

Jorge Oritz has been a commiter on the Lift project since August 2007. He migrated to Lift after a stint as a Python and Ruby/Rails developer. For two years he helped teach C/C++ and Java programming at Stanford University, and later taught a class on Cross-Paradigm Programming with Scala.

Upcoming workshops