SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Dave Briccetti   Indrajit Raychaudhuri
@dcbriccetti     @indrajitr
Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
• Secure
• Interactive
• Designer Friendly
             Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
• Secure
• Interactive
• Designer Friendly
• Scalable
             Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
y !!
                                                                  a s
• Secure                                                    r E
                                                      p e
• Interactive                                   S u
• Designer Friendly
• Scalable
             Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
About Us
• Dave Briccetti                                          • Indrajit Raychaudhuri

  • Veteran software developer                                • Active Lift committer

  • Teacher in love with programming                          • Hacker trying to do programming




                       Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
The Project




Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
The Project
• Started by David Pollak (@dpp) in 2006

• Community (> 3000 members in ML)

• Committers from around the world

• Stable master philosophy




                         Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
The Project
• Developers ≠ Plumbers

• Best concepts from other frameworks




                          Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
The Project




Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
The Project
• Open Source (Apache 2.0 License)

• Ready on a JVM near you

• Full Java EE compliance

• Works in all modern servlet containers

• Batteries included (user replaceable)




                          Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
The Project
• Best implementation on JVM for

 Comet          Ajax

 REST           Templating




                        Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Secure Lift




Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Secure Lift
• Definitive strategy tackles OWASP Top 10

• So you don’t have to bother




                        Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Secure Lift
• Definitive strategy tackles OWASP Top 10

                                                   “.name *” #> “<script>alert(‘hi’);</script>”
• So you don’t have to bother




                        Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Interactive Lift




Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Interactive Lift
• Great support for Comet and AJAX

• Great REST Support

• Parallel Rendering of Snippets

• Lazy Rendering of Snippets




                         Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Interactive Lift
• Great support for Comet and AJAX
                                            serve {
                                              case "api" :: "user" :: AsLong(id) :: _ XmlGet _ =>
                                               <b>ID:{id}</b>
• Great REST Support                          case "api" :: "user" :: AsLong(id) :: _ JsonGet _ =>
                                               JInt(id)
                                            }
• Parallel Rendering of Snippets

• Lazy Rendering of Snippets




                         Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Interactive Lift
• Great support for Comet and AJAX

• Great REST Support

• Parallel Rendering of Snippets

• Lazy Rendering of Snippets




                         Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Interactive Lift
• Great support for Comet and AJAX
                                            // HTML
                                            <div class="lift:FetchTicker?parallel=true">
                                              Ticker server #1: <span class="ticker">The Ticker</span>
• Great REST Support                        </div>
                                            // Snippet
                                            object FetchTicker {
• Parallel Rendering of Snippets              def render = {
                                                Thread.sleep(500 millis) // The call
                                                ".ticker" #> Thread.currentThread.getName // The result
• Lazy Rendering of Snippets                  }
                                            }




                         Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Interactive Lift
• Great support for Comet and AJAX

• Great REST Support

• Parallel Rendering of Snippets

• Lazy Rendering of Snippets




                         Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Interactive Lift
• Great support for Comet and AJAX
                                            // HTML
                                            <div class="lift:LazyLoad">
                                              <span class="lift:LongTime"> I started this computation at
• Great REST Support                            <span id="start">start</span> and it
                                                completed at <span id="end">end</span>.
                                              </span>
• Parallel Rendering of Snippets            </div>
                                            // Snippet
                                            object LongTime {
• Lazy Rendering of Snippets                  def render = {
                                                val start = now
                                                Thread.sleep(randomLong(15 seconds))
                                                "#start" #> start.toString &
                                                "#end" #> now.toString
                                               }
                                            }




                         Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Designer Friendly Lift




Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Designer Friendly Lift
• Step 1: Get designers to write pure XHTML, HTML5

• Step 2: There isn’t any!




                             Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Scalable




Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Scalable
• Fast path for handling REST/Ajax/Comet

• No additional layers (e.g. bolt-on security)

• Foursquare and UK Guardian serve millions of pages a day with Lift




                           Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Summary
• Tremendously secure

• Highly Interactive Web apps simple

• Very friendly to designers

• Successful large scale deployments




                          Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Resources
• Source [github.com/lift]

• Books

  • Simply Lift [simply.liftweb.net]

  • Exploring Lift [exploring.liftweb.net]

• Wiki [wiki.liftweb.net]

• Mailing List [googlegroups.com/group/liftweb]

                            Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Scala: A Quick Primer
Smarter Java
• Runs on JVM, interoperated with any JVM language

• Functional (and OO too!)

• It’s a lot easier than you think

• Stories from the trenches




                            Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
Demo: TalkingPufn Web
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaGeorge Wilson
 
 Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage?  Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage? Michael Yagudaev
 
From Java to Ruby...and Back
From Java to Ruby...and BackFrom Java to Ruby...and Back
From Java to Ruby...and BackAnil Hemrajani
 
Developing, building, testing and deploying react native apps
Developing, building, testing and deploying react native appsDeveloping, building, testing and deploying react native apps
Developing, building, testing and deploying react native appsLeena N
 
Circular links of chains pieces weakest link process 11 stages powerpoint dia...
Circular links of chains pieces weakest link process 11 stages powerpoint dia...Circular links of chains pieces weakest link process 11 stages powerpoint dia...
Circular links of chains pieces weakest link process 11 stages powerpoint dia...SlideTeam.net
 
jQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsjQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsBradley Holt
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Different ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykDifferent ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykRuby Meditation
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swaggerTony Tam
 
Getting started with rails active storage wae
Getting started with rails active storage waeGetting started with rails active storage wae
Getting started with rails active storage waeBishal Khanal
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateMartin Grebac
 
A Day of REST
A Day of RESTA Day of REST
A Day of RESTScott Taylor
 
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js IntegrationBringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js IntegrationAcquia
 
Node.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyNode.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyWim Selles
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-finalChristian Posta
 
Write Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js MunichWrite Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js MunichMike North
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
 

Was ist angesagt? (19)

Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
 
 Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage?  Active Storage - Modern File Storage? 
 Active Storage - Modern File Storage? 
 
From Java to Ruby...and Back
From Java to Ruby...and BackFrom Java to Ruby...and Back
From Java to Ruby...and Back
 
Developing, building, testing and deploying react native apps
Developing, building, testing and deploying react native appsDeveloping, building, testing and deploying react native apps
Developing, building, testing and deploying react native apps
 
Maven part 1
Maven part 1Maven part 1
Maven part 1
 
Circular links of chains pieces weakest link process 11 stages powerpoint dia...
Circular links of chains pieces weakest link process 11 stages powerpoint dia...Circular links of chains pieces weakest link process 11 stages powerpoint dia...
Circular links of chains pieces weakest link process 11 stages powerpoint dia...
 
jQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsjQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchApps
 
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Different ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykDifferent ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail Bortnyk
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
Getting started with rails active storage wae
Getting started with rails active storage waeGetting started with rails active storage wae
Getting started with rails active storage wae
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
 
A Day of REST
A Day of RESTA Day of REST
A Day of REST
 
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js IntegrationBringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
 
Node.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyNode.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependency
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
 
Write Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js MunichWrite Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js Munich
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 

Ähnlich wie Lift Introduction

Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_phpJeanho Chu
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_phpJeanho Chu
 
Riding the Edge with Ember.js
Riding the Edge with Ember.jsRiding the Edge with Ember.js
Riding the Edge with Ember.jsaortbals
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalPromet Source
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's ArchitectureTony Tam
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1sandeep54552
 
"Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful..."Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful...softwaretrainer2elys
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEVishal Mittal
 
Kuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsKuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsCameron Dutro
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)Shumpei Shiraishi
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion IntroductionTomasz Zarna
 
Ruby Conf Preso
Ruby Conf PresoRuby Conf Preso
Ruby Conf PresoDan Yoder
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on RailsAvi Kedar
 
Ppt for Online music store
Ppt for Online music storePpt for Online music store
Ppt for Online music storeADEEBANADEEM
 

Ähnlich wie Lift Introduction (20)

Fluxible
FluxibleFluxible
Fluxible
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
 
Riding the Edge with Ember.js
Riding the Edge with Ember.jsRiding the Edge with Ember.js
Riding the Edge with Ember.js
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for Drupal
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 
"Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful..."Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful...
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
 
Kuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsKuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails Apps
 
ITT Flisol 2013
ITT Flisol 2013ITT Flisol 2013
ITT Flisol 2013
 
Silverlight 5
Silverlight 5Silverlight 5
Silverlight 5
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion Introduction
 
Ruby Conf Preso
Ruby Conf PresoRuby Conf Preso
Ruby Conf Preso
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
 
Ppt for Online music store
Ppt for Online music storePpt for Online music store
Ppt for Online music store
 

KĂźrzlich hochgeladen

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

KĂźrzlich hochgeladen (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Lift Introduction

  • 1. Dave Briccetti Indrajit Raychaudhuri @dcbriccetti @indrajitr
  • 2. Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 3. • Secure • Interactive • Designer Friendly Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 4. • Secure • Interactive • Designer Friendly • Scalable Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 5. y !! a s • Secure r E p e • Interactive S u • Designer Friendly • Scalable Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 6. About Us • Dave Briccetti • Indrajit Raychaudhuri • Veteran software developer • Active Lift committer • Teacher in love with programming • Hacker trying to do programming Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 7. The Project Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 8. The Project • Started by David Pollak (@dpp) in 2006 • Community (> 3000 members in ML) • Committers from around the world • Stable master philosophy Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 9. The Project • Developers ≠ Plumbers • Best concepts from other frameworks Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 10. The Project Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 11. The Project • Open Source (Apache 2.0 License) • Ready on a JVM near you • Full Java EE compliance • Works in all modern servlet containers • Batteries included (user replaceable) Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 12. The Project • Best implementation on JVM for Comet Ajax REST Templating Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 13. Secure Lift Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 14. Secure Lift • Definitive strategy tackles OWASP Top 10 • So you don’t have to bother Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 15. Secure Lift • Definitive strategy tackles OWASP Top 10 “.name *” #> “<script>alert(‘hi’);</script>” • So you don’t have to bother Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 16. Interactive Lift Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 17. Interactive Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 18. Interactive Lift • Great support for Comet and AJAX serve { case "api" :: "user" :: AsLong(id) :: _ XmlGet _ => <b>ID:{id}</b> • Great REST Support case "api" :: "user" :: AsLong(id) :: _ JsonGet _ => JInt(id) } • Parallel Rendering of Snippets • Lazy Rendering of Snippets Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 19. Interactive Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 20. Interactive Lift • Great support for Comet and AJAX // HTML <div class="lift:FetchTicker?parallel=true">   Ticker server #1: <span class="ticker">The Ticker</span> • Great REST Support </div> // Snippet object FetchTicker { • Parallel Rendering of Snippets   def render = {     Thread.sleep(500 millis) // The call     ".ticker" #> Thread.currentThread.getName // The result • Lazy Rendering of Snippets   } } Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 21. Interactive Lift • Great support for Comet and AJAX • Great REST Support • Parallel Rendering of Snippets • Lazy Rendering of Snippets Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 22. Interactive Lift • Great support for Comet and AJAX // HTML <div class="lift:LazyLoad">   <span class="lift:LongTime"> I started this computation at • Great REST Support     <span id="start">start</span> and it     completed at <span id="end">end</span>.   </span> • Parallel Rendering of Snippets </div> // Snippet object LongTime { • Lazy Rendering of Snippets   def render = {     val start = now     Thread.sleep(randomLong(15 seconds))     "#start" #> start.toString &     "#end" #> now.toString    } } Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 23. Designer Friendly Lift Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 24. Designer Friendly Lift • Step 1: Get designers to write pure XHTML, HTML5 • Step 2: There isn’t any! Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 25. Scalable Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 26. Scalable • Fast path for handling REST/Ajax/Comet • No additional layers (e.g. bolt-on security) • Foursquare and UK Guardian serve millions of pages a day with Lift Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 27. Summary • Tremendously secure • Highly Interactive Web apps simple • Very friendly to designers • Successful large scale deployments Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 28. Resources • Source [github.com/lift] • Books • Simply Lift [simply.liftweb.net] • Exploring Lift [exploring.liftweb.net] • Wiki [wiki.liftweb.net] • Mailing List [googlegroups.com/group/liftweb] Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC
  • 29. Scala: A Quick Primer
  • 30. Smarter Java • Runs on JVM, interoperated with any JVM language • Functional (and OO too!) • It’s a lot easier than you think • Stories from the trenches Copyright Š 2011 Lift Web Framework, Worldwide Conferencing, LLC

Hinweis der Redaktion

  1. - Heard of Lift\n- Used Lift (and other web framework)\n- Toughest problem in building web application\n- Security, Interactive, Scalable (not 90&apos;s type - cloud grade), Designer friendly (User interface)\n\n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. Backed by vibrant community\nCommitter in every 3 TZ\nThe master never breaks [people conveniently use SNAPSHOT for deployment]\nCommits go through CI server\nMilestone Release on regular basis (for those preferring stable build)\n
  9. Plumbing taken care of, so that developer don&amp;#x2019;t have to\nView First philosophy\nSeaside: Granular sessions and security\nRails: Convention over configuration\nWicket: Designer friendly templates\n+ the tough ones (truly realtime with existing tech is hard)\n
  10. Business friendly license, very clean IP\nTypically builds a war\nThus, works on all modern servlet containers on a compatible JVM\nFor well known containers it even detects availability of advanced features and uses them (continuation in Jetty, Tomcat 7, GlassFish)\nMost of all that you need for a web application is bundled (but everything has clean abstraction - so you can choose your own implementation)\ne.g., The HTTPProvider can be implemented to work on, say, Netty/Unfiltered\n\n
  11. Comet and Ajax\nAsynchronous page rendering\nDesigner friendly templates\n\n
  12. Injection\nXSS\nSession Management\nDirect Object References\nCSRF\nURL Access\n\n
  13. Injection\nXSS\nSession Management\nDirect Object References\nCSRF\nURL Access\n\n
  14. - Via Actor model\n- Continuations supported on Jetty6+, Tomcat 7, Glassfish 3\n- JS boiler plate handled behind the scene\n- Supports JQuery, YUI, ExtJS\n\nFrameworks usually don&amp;#x2019;t have these ootb, riding on Lift&amp;#x2019;s comet support, it&amp;#x2019;s easy to do &amp;#x201C;server push&amp;#x201D;\n
  15. - Via Actor model\n- Continuations supported on Jetty6+, Tomcat 7, Glassfish 3\n- JS boiler plate handled behind the scene\n- Supports JQuery, YUI, ExtJS\n\nFrameworks usually don&amp;#x2019;t have these ootb, riding on Lift&amp;#x2019;s comet support, it&amp;#x2019;s easy to do &amp;#x201C;server push&amp;#x201D;\n
  16. \n
  17. \n
  18. Impedance mismatch and friction between design team and development team\nRaise of hands on the trouble\nDemo code on class based and namespace based approach\n
  19. Backed by strongly typed language\nHighly Functional. Therefore, parallel-izable (scalable)\n\nSimple notion of Transformation\nRequest =&gt; Response [NodeSeq =&gt; NodeSeq] based on current user/system state\nNodeSeq is immutable\n\nSnippets can be executed in parallel\n\n
  20. To Wrap Up:\nprobably the friendliest for a JVM based framework\n\n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n