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.