SlideShare a Scribd company logo
Zugspitze
   alpha
The Menu
Sources
Testing
Examples
Upload Service
Repositories
Module: Foomo.Flash
Module: Foomo.Zugspitze
AS: Foomo
AS: Zugspitze Core
AS: Zugspitze Service
Easy Setup
Writing Code
What’s next
Sources
foomo.core        zugspitze.core
foomo.mx          zugspitze.as3
foomo.rpc         zugspitze.mx
                  zugspitze.spark
                  zugspitze.air.mx
                  zugspitze.air.spark
                  zugspitze.mobile
                  zugspitze.rpc
                  (zugspitze.flash)
foomo.core
foomo.mx
foomo.rpc
foomo.rpc




                              Call



                 MethodCall          MethodReply

     RPCClient                                     Server


                 MethodCall          MethodReply
zugspitze.core
zugspitze.as3




                @see Implementation.as
zugspitze.mx
zugspitze.spark
zugspitze.air.mx
zugspitze.air.spark
zugspitze.mobile
zugspitze.rpc
foomo.rpc




                                           Proxy



                    ProxyMethodCallEvent              ProxyMethodCall

       Controller                                                          RPCClient

                    ProxyMethodCallEvent              ProxyMethodCall




                                    ProxyErrorEvent

                                                                        - ProxyErrorEvent
                                                                          - Security
                                                                          - EndPoint
                                                                          - Null
zugspitze.flash
Testing
foomo.coreTests         zugspitze.coreTests
foomo.mxTests           zugspitze.rpcTests




                                       - separate project
foomo.coreTests
foomo.mxTests
zugspitze.coreTests
zugspitze.rpcTests
Examples


zugspitze.air.sparkExamples
zugspitze.as3Examples
zugspitze.mobileExamples
zugspitze.mxExamples
zugspitze.sparkExamples
zugspitze.air.sparkExamples
zugspitze.as3Examples
Upload Service



Sources

Examples
Sources




          - Not a core library

          - resources/includes
          - sharedVo
Examples
Repositories



ASLibraries (Sources)

FlexProjects (Examples)
ASLibraries


ASLibrary-foomo_core.git
ASLibrary-foomo_mx.git
ASLibrary-foomo_rpc.git
ASLibrary-zugspitze_air_mx.git
ASLibrary-zugspitze_air_spark.git
ASLibrary-zugspitze_as3.git
ASLibrary-zugspitze_core.git
ASLibrary-zugspitze_mobile.git
ASLibrary-zugspitze_mx.git
ASLibrary-zugspitze_rpc.git
ASLibrary-zugspitze_spark.git


                                    - naming conventions
FlexProjects


FlexProject-foomo_examples_todo.git
FlexProject-zugspitze_air_sparkExamples.git
FlexProject-zugspitze_as3Examples.git
FlexProject-zugspitze_mobileExamples.git
FlexProject-zugspitze_mxExamples.git
FlexProject-zugspitze_sparkExamples.git




                                              - naming conventions
Foomo.Flash


Foomo.Flash

Foomo.FlashVendor

Foomo.FlashLibrary Generator
Foomo.Flash




              - CliCallCompc
              - FlashCompilerConfig
              - FlashVendor
Foomo.FlashConfigs




                     @see Toolbox
Foomo.FlashVendor




                     @see project.xml
                     @see project.xsd
Foomo.FlashVendor
Foomo.FlashLibrary Generator




                                - Ant File

                                @see AntTests
Foomo.FlashLibrary Generator
Foomo.Zugspitze


Foomo.Zugspitze

Foomo.ZugspitzeScaffold

Foomo.ZugspitzeServices

Foomo.Zugspitze.Backport
Foomo.Zugspitze




                  - ProxyGenerator
                  - Scaffold
                  - Services
Foomo.ZugspitzeScaffold




                           @see Configuration
                           @see project.xml

                           -> might move to Flash
Foomo.ZugspitzeServices




                           @see Services

                           - Ant File
Foomo.ZugspitzeServices
Foomo.Zugspitze.Backport
Foomo.Zugspitze.Backport




                           @see Backport_docs.png
Foomo

Core

Utils

MemoryManager

LogManager

SessionManager
foomo.core
foomo.utils
foomo.managers
foomo.managers.MemoryManger
foomo.managers.MemoryManager




       public interface IMemoryManager
       {
       	    function gc():void;
       	    function unload(obj:Object):void;
       	    function addUnloader(type:*, unloader:IUnloader):void;
       	    function removeUnloader(type:*):void;
       }
foomo.managers.LogManger
foomo.managers.LogManager




        public interface ILogManager extends IEventDispatcher
        {
        	    function get level():int
        	    function set level(value:int):void
        	    function isDebug():Boolean
        	    function isInfo():Boolean
        	    function isWarn():Boolean
        	    function isError():Boolean
        	    function isFatal():Boolean
        	    function removeLoggingTarget(target:*):Boolean;
        	    function addLoggingTarget(target:ILoggingTarget):String
        	    function log(category:*, level:int, message:String, parameters:Array):void;
        }

        # Set log level
        LogManager.level = LogLevel.DEBUG;

        # Log entry                                                                             @see SparkExamples
        if (LogManager.isDebug()) LogManager.debug(this, "Can't undo command - command in queue");
foomo.managers.SessionManager




        public interface ISessionManager
        {
        	    function get localIsAvailable():Boolean
        	    function get clientId():String
        	    function get sessionId():String
        	    function setLocalData(key:Object, value:*):*
        	    function getLocalData(key:Object, defaultValue:*=null):*
        	    function removeLocalData(key:Object):*
        	    function flushLocal():String
        	    function clearLocal():void
        }
foomo......
Zugspitze Core

MVC

Commands

CommandManager

StatusManager

Operations
zugspitze.core (MVC)
zugspitze.core (MVC)




                       - simple mvc
                       - use as is
zugspitze.core (commands)




                            - exec/undo/redo
                            - only exec usecases
CommandManager

public interface ICommandManager extends IEventDispatcher
{
	   function set historyName(value:String):void
	   function get historyName():String
	   function set historySize(value:int):void
	   function get historySize():int
	   function get undoAble():Boolean
	   function get redoAble():Boolean
	   function execute(command:ICommand):void
	   function undo():void
	   function redo():void
}

# Controller
this.executeCommand(new AddTodosCommand([todo], this.model, true));
StatusManager


public interface IStatusManager extends IEventDispatcher
{
	   function get stack():Array;
	   function get busy():Boolean;
	   function setBusyStatus(instance:Object):void;
	   function removeBusyStatus(instance:Object):void;
}

# Anywhere
StatusManager.setBusyStatus(this);
StatusManager.removeBusyStatus(this);
zugspitze.core (operations)




                              - async
                              - only result/error
                              - progress
Operations


public interface IOperation extends IEventDispatcher
{
	   function get result():*;
	   function get error():*;
}

public interface IProgressOperation extends IOperation
{
	   function get total():Number;
	   function get progress():Number;
}
Zugspitze Services


Upload Service

Generated sources

Proxy, Operations & Commands
Upload Service
Generated Sources
Proxy, Operations & Commands




                                            Proxy



                     ProxyMethodCallEvent              ProxyMethodCall

      Controller                                                         RPCClient

                     ProxyMethodCallEvent              ProxyMethodCall




                                     ProxyErrorEvent
Proxy, Operations & Commands


                                                Operation / Commands




                                            Proxy



                     ProxyMethodCallEvent              ProxyMethodCall

       Controller                                                           RPCClient

                     ProxyMethodCallEvent              ProxyMethodCall




                                                    OperationEvent
                                                                         @see ProxyMethodOp.as

                                                                         - Exception Handling
                                                                         - Messages
                                                                         - Result
Easy Setup


Setup Project

Scaffold Application

Download Libraries

Generate Services
Setup Project
Scaffold Application
Download Libraries
Generate Services
Writing Code


Pure MVC

Command based

Operation based (OperationChain)

Operations & Commands
                                   -   no right way
                                   -   many possibilities
                                   -   take notes!
                                   -   feedback?



                                   i.e.
                                   - operations in model
Pure MVC




           git checkout v.0
Command based




                git checkout v.1
Command based




   public class ApplicationController extends ZugspitzeController
   {
   	   //...
   	
   	   public function setCurrentState(state:String):void
   	   {
   	   	    this.executeCommand(new SetValueCommand(this.model, 'currentState', state, true));
   	   }

   	   public function editTodo(todo:Todo):void
   	   {
   	   	   this.executeCommand(new SetValueCommand(this.model, 'todo', todo, true));
   	   	   this.executeCommand(new SetValueCommand(this.model, 'currentState', ApplicationModel.STATE_EDIT,
   true));
   	   }

   	   public function addTodo(text:String):void
   	   {
   	   	    this.executeCommand(new AddTodoCommand(text, this.model));
   	   	    this.executeCommand(new SetValueCommand(this.model, 'currentState',
   ApplicationModel.STATE_OPEN_LIST, true));
   	   }
   	
   	   //...
   }
Command based


   public class ApplicationModel extends ZugspitzeModel
   {
   	   //...
   	
   	   public var todoProxy:Service1Proxy = new Service1Proxy;

   	   public var currentState:String = STATE_LOADING;

   	   public var opentTodos:ArrayCollection;

   	   public var completeTodos:ArrayCollection;

   	   public var todo:Todo;

   	   public function setTodos(todos:Array):void
   	   {
   	   	   var open:Array = new Array;
   	   	   var complete:Array = new Array;
   	   	   for each (var todo:Todo in todos) {
   	   	   	    if (todo.complete) {
   	   	   	    	   complete.push(todo);
   	   	   	    } else {
   	   	   	    	   open.push(todo);
   	   	   	    }
   	   	   }
   	   	   this.completeTodos = new ArrayCollection(complete);
   	   	   this.opentTodos = new ArrayCollection(open);
   	   }
   	
   	   //...
   }
Command based




   public class AddTodoCommand extends AbstractAddTodoCommand
   {
   	   public var model:ApplicationModel;

   	   public function AddTodoCommand(text:String, model:ApplicationModel)
   	   {
   	   	   this.model = model;
   	   	   super(text, this.model.todoProxy, true);
   	   }

   	   override protected function methodCall_proxyMethodCallResultHandler(event:ProxyMethodCallEvent):void
   	   {
   	   	   this.model.setTodos(AddTodoCall(event.methodCall).result);
   	   	   this.dispatchCommandCompleteEvent();
   	   }
   }
Operation based




                  git checkout v.2
OperationChain
                                     OperationChain extends EventDispatcherChain




                                                    OperationClass




                                CompleteEvent                           ErrorEvent




          AddEventListener           AddCallback                Chain                Unload




       Controller        EventArgs                 ... rest




                                 OperationClass
OperationChain




    OperationChain
    	   .create(AddTodosOperation, this.todos, this.model.todoProxy)

        # EventArgs: event.operation.result
        # function setCreatedTodos(todos:Array):void
    	   .addOperationCompleteCallback(this.setCreatedTodos, ['operation.result'])
    	
        # GetTodosOperation(proxy:TodoProxy)
        .chainOnOperationComplete(GetTodosOperation, null, this.model.todoProxy)
    	   .addOperationCompleteCallback(this.model.setTodos, ['operation.result'])
    	   .addOperationCompleteCallback(this.model.setCurrentState, null, ComponentModel.STATE_OPEN_LIST)
    	
        .unloadOnOperationComplete();
    ;
Operation based



    public class ApplicationController extends ZugspitzeController
    {
       //...

    	    public function setCurrentState(state:String):void
    	    {
    	    	   this.model.currentState = state;
    	    }

    	    public function editTodo(todo:Todo):void
    	    {
    	    	   this.model.todo = todo;
    	    	   this.model.currentState = ApplicationModel.STATE_EDIT;
    	    }

    	    public function getTodos():void
    	    {
    	    	   OperationChain
    	    	   .create(GetTodosOperation, this.model.todoProxy)
    	    	   	    .addOperationCompleteCallback(this.model.setTodos, ['operation.result'])
    	    	   	    .addOperationCompleteCallback(this.setCurrentState, null, ApplicationModel.STATE_OPEN_LIST)
    	    	   	    .unloadOnOperationComplete();
    	    	   ;
    	    }

        //...
    }
Operation based


    public class ApplicationModel extends ZugspitzeModel
    {
    	   //...
    	
    	   public var todoProxy:Service1Proxy = new Service1Proxy;

    	   public var currentState:String = STATE_LOADING;

    	   public var opentTodos:ArrayCollection;

    	   public var completeTodos:ArrayCollection;

    	   public var todo:Todo;

    	   public function setTodos(todos:Array):void
    	   {
    	   	   var open:Array = new Array;
    	   	   var complete:Array = new Array;
    	   	   for each (var todo:Todo in todos) {
    	   	   	    if (todo.complete) {
    	   	   	    	   complete.push(todo);
    	   	   	    } else {
    	   	   	    	   open.push(todo);
    	   	   	    }
    	   	   }
    	   	   this.completeTodos = new ArrayCollection(complete);
    	   	   this.opentTodos = new ArrayCollection(open);
    	   }
    	
    	   //...
    }
Operations & Commands




                        git checkout v.5

                        @see todoFlex
What’s on my Todo List

Skinning workflow
LogService reimplementation
BusyStatus through operations
Flash/Reflex integration
Look at Signals
Filter for Logger
Debug menu
Hudson, Testing, UI Testing, .....
CHEERS & QAs

More Related Content

What's hot

Crash course to the Apache Camel
Crash course to the Apache CamelCrash course to the Apache Camel
Crash course to the Apache Camel
Henryk Konsek
 
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ..."Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
Vadym Kazulkin
 
Information security programming in ruby
Information security programming in rubyInformation security programming in ruby
Information security programming in ruby
Hiroshi Nakamura
 
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
 
Plack - LPW 2009
Plack - LPW 2009Plack - LPW 2009
Plack - LPW 2009
Tatsuhiko Miyagawa
 
If love is_blind_-_tiffany
If love is_blind_-_tiffanyIf love is_blind_-_tiffany
If love is_blind_-_tiffany
tenka
 
Intro to PSGI and Plack
Intro to PSGI and PlackIntro to PSGI and Plack
Intro to PSGI and Plack
Tatsuhiko Miyagawa
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
knight1128
 
Voxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with JavassistVoxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with Javassist
Anton Arhipov
 
Ruby HTTP clients
Ruby HTTP clientsRuby HTTP clients
Ruby HTTP clients
Zoran Majstorovic
 
PHP7 is coming
PHP7 is comingPHP7 is coming
PHP7 is coming
julien pauli
 
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with JavassistRiga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Anton Arhipov
 
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java AgentsOredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
Anton Arhipov
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidence
John Congdon
 
Symfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friendSymfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friend
Kirill Chebunin
 
SDPHP - Percona Toolkit (It's Basically Magic)
SDPHP - Percona Toolkit (It's Basically Magic)SDPHP - Percona Toolkit (It's Basically Magic)
SDPHP - Percona Toolkit (It's Basically Magic)
Robert Swisher
 
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with JavassistJavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Anton Arhipov
 
関西アンカンファレンス PHP ではじめるテストコード
関西アンカンファレンス PHP ではじめるテストコード関西アンカンファレンス PHP ではじめるテストコード
関西アンカンファレンス PHP ではじめるテストコード
Shinya Ohyanagi
 
How Functions Work
How Functions WorkHow Functions Work
How Functions Work
Saumil Shah
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With Javassist
Anton Arhipov
 

What's hot (20)

Crash course to the Apache Camel
Crash course to the Apache CamelCrash course to the Apache Camel
Crash course to the Apache Camel
 
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ..."Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
"Highlights from Java 10&11 and Future of Java" at Java User Group Bonn 2018 ...
 
Information security programming in ruby
Information security programming in rubyInformation security programming in ruby
Information security programming in ruby
 
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
 
Plack - LPW 2009
Plack - LPW 2009Plack - LPW 2009
Plack - LPW 2009
 
If love is_blind_-_tiffany
If love is_blind_-_tiffanyIf love is_blind_-_tiffany
If love is_blind_-_tiffany
 
Intro to PSGI and Plack
Intro to PSGI and PlackIntro to PSGI and Plack
Intro to PSGI and Plack
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
Voxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with JavassistVoxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with Javassist
 
Ruby HTTP clients
Ruby HTTP clientsRuby HTTP clients
Ruby HTTP clients
 
PHP7 is coming
PHP7 is comingPHP7 is coming
PHP7 is coming
 
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with JavassistRiga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
 
Oredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java AgentsOredev 2015 - Taming Java Agents
Oredev 2015 - Taming Java Agents
 
Release with confidence
Release with confidenceRelease with confidence
Release with confidence
 
Symfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friendSymfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friend
 
SDPHP - Percona Toolkit (It's Basically Magic)
SDPHP - Percona Toolkit (It's Basically Magic)SDPHP - Percona Toolkit (It's Basically Magic)
SDPHP - Percona Toolkit (It's Basically Magic)
 
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with JavassistJavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
 
関西アンカンファレンス PHP ではじめるテストコード
関西アンカンファレンス PHP ではじめるテストコード関西アンカンファレンス PHP ではじめるテストコード
関西アンカンファレンス PHP ではじめるテストコード
 
How Functions Work
How Functions WorkHow Functions Work
How Functions Work
 
Con-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With JavassistCon-FESS 2015 - Having Fun With Javassist
Con-FESS 2015 - Having Fun With Javassist
 

Similar to Foomo / Zugspitze Presentation

Taking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the ExtremeTaking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the Extreme
yinonavraham
 
ES6 metaprogramming unleashed
ES6 metaprogramming unleashedES6 metaprogramming unleashed
ES6 metaprogramming unleashed
Javier Arias Losada
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
Haehnchen
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
ciklum_ods
 
Ob1k presentation at Java.IL
Ob1k presentation at Java.ILOb1k presentation at Java.IL
Ob1k presentation at Java.IL
Eran Harel
 
Red5 - PHUG Workshops
Red5 - PHUG WorkshopsRed5 - PHUG Workshops
Red5 - PHUG Workshops
Brendan Sera-Shriar
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and Friends
Yun Zhi Lin
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
Ben Lin
 
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradleConstruire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Jiayun Zhou
 
RichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesRichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile Devices
Pavol Pitoňák
 
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
Fwdays
 
Google Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and BeyondGoogle Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and Beyond
dion
 
Serverless Java on Kubernetes
Serverless Java on KubernetesServerless Java on Kubernetes
Serverless Java on Kubernetes
Krzysztof Sobkowiak
 
Protractor framework architecture with example
Protractor framework architecture with exampleProtractor framework architecture with example
Protractor framework architecture with example
shadabgilani
 
OB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
OB1K - New, Better, Faster, Devops Friendly Java container by OutbrainOB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
OB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
Eran Harel
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
Ajax Experience 2009
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
Amit Tyagi
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
Oleg Podsechin
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Roman Kirillov
 

Similar to Foomo / Zugspitze Presentation (20)

Taking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the ExtremeTaking Jenkins Pipeline to the Extreme
Taking Jenkins Pipeline to the Extreme
 
ES6 metaprogramming unleashed
ES6 metaprogramming unleashedES6 metaprogramming unleashed
ES6 metaprogramming unleashed
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
Rapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devicesRapid java backend and api development for mobile devices
Rapid java backend and api development for mobile devices
 
Ob1k presentation at Java.IL
Ob1k presentation at Java.ILOb1k presentation at Java.IL
Ob1k presentation at Java.IL
 
Red5 - PHUG Workshops
Red5 - PHUG WorkshopsRed5 - PHUG Workshops
Red5 - PHUG Workshops
 
Dropwizard and Friends
Dropwizard and FriendsDropwizard and Friends
Dropwizard and Friends
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
 
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradleConstruire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
RichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile DevicesRichFaces - Testing on Mobile Devices
RichFaces - Testing on Mobile Devices
 
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
 
Google Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and BeyondGoogle Back To Front: From Gears to App Engine and Beyond
Google Back To Front: From Gears to App Engine and Beyond
 
Serverless Java on Kubernetes
Serverless Java on KubernetesServerless Java on Kubernetes
Serverless Java on Kubernetes
 
Protractor framework architecture with example
Protractor framework architecture with exampleProtractor framework architecture with example
Protractor framework architecture with example
 
OB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
OB1K - New, Better, Faster, Devops Friendly Java container by OutbrainOB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
OB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
 
JS everywhere 2011
JS everywhere 2011JS everywhere 2011
JS everywhere 2011
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
 

Recently uploaded

GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 

Recently uploaded (20)

GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 

Foomo / Zugspitze Presentation