SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Lift on GAE/J



        Get Lift on
Google App Engine for Java.

       - KITAMURA Ryo
       2009/12/26(Fri.)
Self-Introduce

●
    KITAMURA Ryo(@RKTM)
    ●
        Wake up in Mie
    ●
        Work at Nagoya
●
    Programmer
    ●
        Ruby!!! Scala!!
        –   VB6, VB.NET, ASP.NET
Self-Introduce

●
    Love
    ●
        Trekking
Self-Introduce

●
    Love
    ●
        Photography
Talk about ...

●
    What's Scala?
●
    What's Lift?
●
    What's Google App Engine for
    Java(GAE/J)?
●
    How to get Lift on GAE/J
●
    Any Question?
What's Scala?

●
    Scala
    ●
        Is a general purpose programming
        language.
    ●
        stands for "scalable language”
        –   is designed to grow with the
            demands of its users.
What's Scala?

●
    Scala
    ●
        Runs on Java VM.
        –   You can call Scala from Java
        –   and you can call Java from Scala.
    ●
        whose compiler produces
        –   byte code that performs every
            bit as good as comparable Java
            code.
What's Scala?

●
    James Gosling:
    ●
        "Which Programming Language
        would you use *now* on top of
        JVM, except Java?"
    ●
        James Gosling:”Scala.”
           ●
               http://www.adam-
               bien.com/roller/abien/entry/java_net_javaone_
               which_programming
What's Scala?

●
    James Strachan:
    ●
        “I can honestly say if someone had
        shown me the Programming in Scala
        book by by Martin Odersky, Lex
        Spoon & Bill Venners back in 2003
        I'd probably have never created
        Groovy.”
           ●
               http://macstrac.blogspot.com/2009/04/scala-
               as-long-term-replacement-for.html
What's Scala?

●
    Charles Nutter:
      –   “Scala, it must be stated, is the
          current heir apparent to the
          Java throne. No other language
          on the JVM seems as capable of
          being a "replacement for Java"
          as Scala.”
             –   http://blog.headius.com/2009/04/future-
                 part-one.html
What's Scala?

●
    Scala
    ●
        Is a pure object-oriented language.
        –   Type inference
        –   Static typing
        –   Every value is an object.
             val a = 12345
             a.toString
What's Scala?

●
    Scala
    ●
        Is a pure object-oriented language.
        –   Classes and traits.
        –   Extend by subclassing and mixin-
            based composition.
What's Scala?

●
    Scala
    ●
        Is functional.
        –   Every function is a value.
             val func = (x : Int) => x + 1
             func(1)
What's Scala?

●
    Scala
    ●
        Is functional.
        –   Higher-order functions
        –   Nesting functions
        –   Currying
What's Scala?

●
    Scala
    ●
        Is functional.
        –   Case classes and built-in support
            for pattern matching
        –   Built-in support for XML
            processing!
What's Scala?

●
    XML Sample
    val html = <html><head>foo</head>
    <body>hoge</body></html>

    println(html)
Sir, More Scala,
                    Sir!!




  Join “Nagoya Scala”!!
http://groups.google.co.jp/group/NagoyaScala
What's Scala?

●
    More Info For Scala Beginners
      –   http://www.impressjapan.jp/boo
          ks/2745
      –   http://github.com/yuroyoro/scal
          a-hackathon
      –   http://itpro.nikkeibp.co.jp/articl
          e/COLUMN/20080613/307981/
          ?ST=develop
What's Lift?

●
    Lift
    ●
        Scala-based Web App F/W.
    ●
        has cherry-picked the best ideas
        from a number of other
        frameworks,
    ●
        while creating some novel ideas of
        its own.
What's Lift?

●
    Lift
    ●
        Full stack
        –   AP Srv, ORM
    ●
        Convention over Configuration
    ●
        MVC
    ●
        template system like Wicket
        –   built on the XML processing
            capabilities of Scala
What's Lift?

●
    Lift
    ●
        Runs on Java VM.
        –   Many Java libraries
    ●
        Powerful support for
        –   AJAX
        –   Commet
What's Lift?

●
    More Info about Lift
      –   http://codezine.jp/article/detail
          /4310
      –   http://codezine.jp/article/detail
          /4512
GAE/J?

●
    What is Google App Engine?
●
    What is Google App Engine for
    Java?
GAE/J?




●
    Tantack did it!
     –I   guess :)
Get Lift on GAE/J

●
    * Skip installing.
●
    Development environment
    ●
        Windows XP SP3
    ●
        Java version: 1.6.0_14
    ●
        Apache maven: 2.2.0
    ●
        Scala 2.7.7 final
    ●
        Appengine SDK: 1.3.0
Get Lift on GAE/J

●
    maven
    mvn archetype:generate -U
     -DarchetypeGroupId=net.liftweb
     -DarchetypeArtifactId=lift-archetype-
    blank
     -DarchetypeVersion=1.1-SNAPSHOT
     -DremoteRepositories=http://scala-
    tools.org/repo-snapshots
     -DgroupId=com.mylift -DartifactId=liftgaej
Get Lift on GAE/J

●
    Create
    –   src/main/webapp/WEB-
        INF/appengine-web.xml
Get Lift on GAE/J

●
    appengine-web.xml
    <?xml version="1.0" encoding="utf-8"?>
    <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
     <application>liftgaej</application>
     <version>1</version>
     <system-properties>
       <property name="in.gae.j" value="true" />
     </system-properties>
     <sessions-enabled>true</sessions-enabled>
     <static-files>
       <exclude path="/**" />
     </static-files>
    </appengine-web-app>
Get Lift on GAE/J

●
    compile
mvn package
Get Lift on GAE/J

●
    Run on local machine
[SDK dir]dev_appserver.cmd
 target/liftgaej-1.0-SNAPSHOT
Get Lift on GAE/J

●
    Deploy!
[SDK dir]appcfg.cmd update
 target/liftgaej-1.0-SNAPSHOT
Get Lift on GAE/J

●
    Datastore?
    ●
        JPA sample:
           ●
               http://github.com/ymnk/lift-gae-jpa
    ●
        JDO sample:
           ●
               http://github.com/ymnk/lift-gae-jdo



        * I haven't tried them : (
References

●
    Scala
      –    http://www.scala-lang.org/
      –    http://dl.dropbox.com/u/261418
           /scala-hackathon/index.html
●
    Lift
      –    http://www.liftweb.com/
      –    http://groups.google.com/group/
           the-lift-book/files
References

●
    Lift on GAE/J
      –   http://d.hatena.ne.jp/yuroyoro/
          20090701/1246448458
Q?

●
    Do you have any Questions?
Done!

●
    Thank you!
●
    Join “ Nagoya Scala”
    ●
        @2010/01/22(Fri.)

Weitere ähnliche Inhalte

Was ist angesagt?

Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJava Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJAX London
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJRodrigo Lima
 
Swagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlierSwagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlierMiroslav Resetar
 
Modern javascript
Modern javascriptModern javascript
Modern javascriptKevin Ball
 
Java basics at Lara Technologies
Java basics at Lara TechnologiesJava basics at Lara Technologies
Java basics at Lara Technologieslaratechnologies
 
The Ultimate iOS 11 Course Learn to Build Apps
The Ultimate iOS 11 Course Learn to Build AppsThe Ultimate iOS 11 Course Learn to Build Apps
The Ultimate iOS 11 Course Learn to Build AppsSam Dias
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Railsmithunsasidharan
 
Creating books app with react native
Creating books app with react nativeCreating books app with react native
Creating books app with react nativeAli Sa'o
 
The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015jbandi
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approachFelipe Schmitt
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS LimitationsValeri Karpov
 
LaSalleCMS Presentation at LaravelTO Meet-Up
LaSalleCMS Presentation at LaravelTO Meet-UpLaSalleCMS Presentation at LaravelTO Meet-Up
LaSalleCMS Presentation at LaravelTO Meet-UpBob Bloom
 
Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?TechMagic
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the BeastRoberto Cortez
 
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Codemotion
 
Java Presentation
 Java Presentation Java Presentation
Java PresentationMarq2014
 
Maven beyond hello_world
Maven beyond hello_worldMaven beyond hello_world
Maven beyond hello_worldGabriel Dogaru
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react nativeDani Akash
 
React Native for ReactJS Devs
React Native for ReactJS DevsReact Native for ReactJS Devs
React Native for ReactJS DevsBarak Cohen
 

Was ist angesagt? (20)

Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon RitterJava Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
Java Core | JavaFX 2.0: Great User Interfaces in Java | Simon Ritter
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
 
Swagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlierSwagger - Making REST APIs friendlier
Swagger - Making REST APIs friendlier
 
React Native
React NativeReact Native
React Native
 
Modern javascript
Modern javascriptModern javascript
Modern javascript
 
Java basics at Lara Technologies
Java basics at Lara TechnologiesJava basics at Lara Technologies
Java basics at Lara Technologies
 
The Ultimate iOS 11 Course Learn to Build Apps
The Ultimate iOS 11 Course Learn to Build AppsThe Ultimate iOS 11 Course Learn to Build Apps
The Ultimate iOS 11 Course Learn to Build Apps
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 
Creating books app with react native
Creating books app with react nativeCreating books app with react native
Creating books app with react native
 
The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approach
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
 
LaSalleCMS Presentation at LaravelTO Meet-Up
LaSalleCMS Presentation at LaravelTO Meet-UpLaSalleCMS Presentation at LaravelTO Meet-Up
LaSalleCMS Presentation at LaravelTO Meet-Up
 
Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
 
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
Matteo Manchi - React Native for multi-platform mobile applications - Codemot...
 
Java Presentation
 Java Presentation Java Presentation
Java Presentation
 
Maven beyond hello_world
Maven beyond hello_worldMaven beyond hello_world
Maven beyond hello_world
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react native
 
React Native for ReactJS Devs
React Native for ReactJS DevsReact Native for ReactJS Devs
React Native for ReactJS Devs
 

Andere mochten auch

Sequence Alignment by Information Compression
Sequence Alignment by Information CompressionSequence Alignment by Information Compression
Sequence Alignment by Information CompressionNacho Caballero
 
Overview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web FrameworkOverview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web FrameworkIndicThreads
 
CS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDBCS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDBjorgeortiz85
 
Lassa virus detection using gene expression analysis
Lassa virus detection using gene expression analysisLassa virus detection using gene expression analysis
Lassa virus detection using gene expression analysisNacho Caballero
 
NGK2014 ヤマオススメ
NGK2014 ヤマオススメNGK2014 ヤマオススメ
NGK2014 ヤマオススメRyo RKTM
 
ヤマオススメ@NGK2014
ヤマオススメ@NGK2014ヤマオススメ@NGK2014
ヤマオススメ@NGK2014Ryo RKTM
 
Scala at foursquare
Scala at foursquareScala at foursquare
Scala at foursquarejorgeortiz85
 
Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...
Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...
Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...Nacho Caballero
 

Andere mochten auch (9)

Sequence Alignment by Information Compression
Sequence Alignment by Information CompressionSequence Alignment by Information Compression
Sequence Alignment by Information Compression
 
Hero
HeroHero
Hero
 
Overview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web FrameworkOverview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web Framework
 
CS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDBCS442 - Rogue: A Scala DSL for MongoDB
CS442 - Rogue: A Scala DSL for MongoDB
 
Lassa virus detection using gene expression analysis
Lassa virus detection using gene expression analysisLassa virus detection using gene expression analysis
Lassa virus detection using gene expression analysis
 
NGK2014 ヤマオススメ
NGK2014 ヤマオススメNGK2014 ヤマオススメ
NGK2014 ヤマオススメ
 
ヤマオススメ@NGK2014
ヤマオススメ@NGK2014ヤマオススメ@NGK2014
ヤマオススメ@NGK2014
 
Scala at foursquare
Scala at foursquareScala at foursquare
Scala at foursquare
 
Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...
Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...
Using the Host Immune Response to Hemorrhagic Fever Viruses to Understand Pat...
 

Ähnlich wie Get Lift on GAE/J Framework in Scala

Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfssusercd195b
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming LanguageHaim Michael
 
Eclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseEclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseMiles Sabin
 
Develop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumDevelop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumNgoc Dao
 
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?Miles Sabin
 
Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?
Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?
Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?Miles Sabin
 
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James NelsonGWTcon
 
Java Course 15: Ant, Scripting, Spring, Hibernate
Java Course 15: Ant, Scripting, Spring, HibernateJava Course 15: Ant, Scripting, Spring, Hibernate
Java Course 15: Ant, Scripting, Spring, HibernateAnton Keks
 
Scala's evolving ecosystem- Introduction to Scala.js
Scala's evolving ecosystem- Introduction to Scala.jsScala's evolving ecosystem- Introduction to Scala.js
Scala's evolving ecosystem- Introduction to Scala.jsKnoldus Inc.
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotBaruch Sadogursky
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGuillaume Laforge
 
Developing Secure Scala Applications With Fortify For Scala
Developing Secure Scala Applications With Fortify For ScalaDeveloping Secure Scala Applications With Fortify For Scala
Developing Secure Scala Applications With Fortify For ScalaLightbend
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotBaruch Sadogursky
 
RoR (Ruby on Rails)
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)scandiweb
 
Javascript training sample
Javascript training sampleJavascript training sample
Javascript training sampleprahalad_das_in
 
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack Suren Konathala
 

Ähnlich wie Get Lift on GAE/J Framework in Scala (20)

Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
 
Eclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in EclipseEclipsecon 2010 - Scala Support in Eclipse
Eclipsecon 2010 - Scala Support in Eclipse
 
Develop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumDevelop realtime web with Scala and Xitrum
Develop realtime web with Scala and Xitrum
 
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
JVM Languages Support in Eclipse - Monkey-patching the JDT for fun and profit?
 
Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?
Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?
Scala Support in Eclipse - Monkey-patching the JDT for fun and profit?
 
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson
 
Java Course 15: Ant, Scripting, Spring, Hibernate
Java Course 15: Ant, Scripting, Spring, HibernateJava Course 15: Ant, Scripting, Spring, Hibernate
Java Course 15: Ant, Scripting, Spring, Hibernate
 
Scala's evolving ecosystem- Introduction to Scala.js
Scala's evolving ecosystem- Introduction to Scala.jsScala's evolving ecosystem- Introduction to Scala.js
Scala's evolving ecosystem- Introduction to Scala.js
 
GWT-Basics
GWT-BasicsGWT-Basics
GWT-Basics
 
GWT-Basics
GWT-BasicsGWT-Basics
GWT-Basics
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we got
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
Developing Secure Scala Applications With Fortify For Scala
Developing Secure Scala Applications With Fortify For ScalaDeveloping Secure Scala Applications With Fortify For Scala
Developing Secure Scala Applications With Fortify For Scala
 
Scala Introduction.pptx
Scala Introduction.pptxScala Introduction.pptx
Scala Introduction.pptx
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we got
 
RoR (Ruby on Rails)
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)
 
Scala.js
Scala.js Scala.js
Scala.js
 
Javascript training sample
Javascript training sampleJavascript training sample
Javascript training sample
 
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
 

Mehr von Ryo RKTM

20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘いRyo RKTM
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い βRyo RKTM
 
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版Ryo RKTM
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Ryo RKTM
 
20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋Ryo RKTM
 
20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopmentRyo RKTM
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋Ryo RKTM
 
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版Ryo RKTM
 
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料Ryo RKTM
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』Ryo RKTM
 
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』Ryo RKTM
 
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料Ryo RKTM
 

Mehr von Ryo RKTM (12)

20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
 
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
 
20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋
 
20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋
 
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
 
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
 
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
 
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
 

Get Lift on GAE/J Framework in Scala

  • 1. Lift on GAE/J Get Lift on Google App Engine for Java. - KITAMURA Ryo 2009/12/26(Fri.)
  • 2. Self-Introduce ● KITAMURA Ryo(@RKTM) ● Wake up in Mie ● Work at Nagoya ● Programmer ● Ruby!!! Scala!! – VB6, VB.NET, ASP.NET
  • 3. Self-Introduce ● Love ● Trekking
  • 4. Self-Introduce ● Love ● Photography
  • 5. Talk about ... ● What's Scala? ● What's Lift? ● What's Google App Engine for Java(GAE/J)? ● How to get Lift on GAE/J ● Any Question?
  • 6. What's Scala? ● Scala ● Is a general purpose programming language. ● stands for "scalable language” – is designed to grow with the demands of its users.
  • 7. What's Scala? ● Scala ● Runs on Java VM. – You can call Scala from Java – and you can call Java from Scala. ● whose compiler produces – byte code that performs every bit as good as comparable Java code.
  • 8. What's Scala? ● James Gosling: ● "Which Programming Language would you use *now* on top of JVM, except Java?" ● James Gosling:”Scala.” ● http://www.adam- bien.com/roller/abien/entry/java_net_javaone_ which_programming
  • 9. What's Scala? ● James Strachan: ● “I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.” ● http://macstrac.blogspot.com/2009/04/scala- as-long-term-replacement-for.html
  • 10. What's Scala? ● Charles Nutter: – “Scala, it must be stated, is the current heir apparent to the Java throne. No other language on the JVM seems as capable of being a "replacement for Java" as Scala.” – http://blog.headius.com/2009/04/future- part-one.html
  • 11. What's Scala? ● Scala ● Is a pure object-oriented language. – Type inference – Static typing – Every value is an object. val a = 12345 a.toString
  • 12. What's Scala? ● Scala ● Is a pure object-oriented language. – Classes and traits. – Extend by subclassing and mixin- based composition.
  • 13. What's Scala? ● Scala ● Is functional. – Every function is a value. val func = (x : Int) => x + 1 func(1)
  • 14. What's Scala? ● Scala ● Is functional. – Higher-order functions – Nesting functions – Currying
  • 15. What's Scala? ● Scala ● Is functional. – Case classes and built-in support for pattern matching – Built-in support for XML processing!
  • 16. What's Scala? ● XML Sample val html = <html><head>foo</head> <body>hoge</body></html> println(html)
  • 17. Sir, More Scala, Sir!! Join “Nagoya Scala”!! http://groups.google.co.jp/group/NagoyaScala
  • 18. What's Scala? ● More Info For Scala Beginners – http://www.impressjapan.jp/boo ks/2745 – http://github.com/yuroyoro/scal a-hackathon – http://itpro.nikkeibp.co.jp/articl e/COLUMN/20080613/307981/ ?ST=develop
  • 19. What's Lift? ● Lift ● Scala-based Web App F/W. ● has cherry-picked the best ideas from a number of other frameworks, ● while creating some novel ideas of its own.
  • 20. What's Lift? ● Lift ● Full stack – AP Srv, ORM ● Convention over Configuration ● MVC ● template system like Wicket – built on the XML processing capabilities of Scala
  • 21. What's Lift? ● Lift ● Runs on Java VM. – Many Java libraries ● Powerful support for – AJAX – Commet
  • 22. What's Lift? ● More Info about Lift – http://codezine.jp/article/detail /4310 – http://codezine.jp/article/detail /4512
  • 23. GAE/J? ● What is Google App Engine? ● What is Google App Engine for Java?
  • 24. GAE/J? ● Tantack did it! –I guess :)
  • 25. Get Lift on GAE/J ● * Skip installing. ● Development environment ● Windows XP SP3 ● Java version: 1.6.0_14 ● Apache maven: 2.2.0 ● Scala 2.7.7 final ● Appengine SDK: 1.3.0
  • 26. Get Lift on GAE/J ● maven mvn archetype:generate -U -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype- blank -DarchetypeVersion=1.1-SNAPSHOT -DremoteRepositories=http://scala- tools.org/repo-snapshots -DgroupId=com.mylift -DartifactId=liftgaej
  • 27. Get Lift on GAE/J ● Create – src/main/webapp/WEB- INF/appengine-web.xml
  • 28. Get Lift on GAE/J ● appengine-web.xml <?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>liftgaej</application> <version>1</version> <system-properties> <property name="in.gae.j" value="true" /> </system-properties> <sessions-enabled>true</sessions-enabled> <static-files> <exclude path="/**" /> </static-files> </appengine-web-app>
  • 29. Get Lift on GAE/J ● compile mvn package
  • 30. Get Lift on GAE/J ● Run on local machine [SDK dir]dev_appserver.cmd target/liftgaej-1.0-SNAPSHOT
  • 31. Get Lift on GAE/J ● Deploy! [SDK dir]appcfg.cmd update target/liftgaej-1.0-SNAPSHOT
  • 32. Get Lift on GAE/J ● Datastore? ● JPA sample: ● http://github.com/ymnk/lift-gae-jpa ● JDO sample: ● http://github.com/ymnk/lift-gae-jdo * I haven't tried them : (
  • 33. References ● Scala – http://www.scala-lang.org/ – http://dl.dropbox.com/u/261418 /scala-hackathon/index.html ● Lift – http://www.liftweb.com/ – http://groups.google.com/group/ the-lift-book/files
  • 34. References ● Lift on GAE/J – http://d.hatena.ne.jp/yuroyoro/ 20090701/1246448458
  • 35. Q? ● Do you have any Questions?
  • 36. Done! ● Thank you! ● Join “ Nagoya Scala” ● @2010/01/22(Fri.)