SlideShare a Scribd company logo
http://qooxdoo.org


        1
EXAMPLES




   2
EXAMPLES




   3
EXAMPLES




   4

Recommended for you

Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testing

Workshop JavaScript Testing. Frameworks. Client vs Server Testing. Jasmine. Chai. Nock. Sinon. Spec Runners: Karma. TDD. Code coverage. Building a testable JS app. Presentado por ing: Raúl Delgado y Mario García

visualengintestingjavascript
Containers & Dependency in Ember.js
Containers & Dependency in Ember.jsContainers & Dependency in Ember.js
Containers & Dependency in Ember.js

Ember applications are built around an MVC model that prescribes Models, Views, Controllers, and Routes for managing persistence, DOM, application state, and URLs. In an ambitious enough app, that model may fail to cover the whole problem space. Fear not, for in this presentation you will learn how to use Ember’s container and dependency features to move beyond MVC, as well as learning how they tie Ember internals together. Video: http://www.youtube.com/watch?v=iCZUKFNXA0k&feature=youtu.be&t=1h45m59s

object oriented designjavascriptember.js
AngularJS Animations
AngularJS AnimationsAngularJS Animations
AngularJS Animations

This document provides information about animations in AngularJS using the ngAnimate module. It lists directives that support animations like ngRepeat, ngView, etc. It describes how to define CSS styles for animations and the different animation events like enter, leave, etc. It also provides an example of a custom animation using the $animate service and defining an animation method.

angularjsspa
5
IT'S NOT A TOY




      6
IT'S NOT A TOY

                     let's count files:

Penny:downloads singles$ wget http://downloads..../qooxdoo-1.5-sdk.zip
[...]
HTTP request sent, awaiting response... 200 OK
Length: 67875249 (65M) [application/zip] !!!
Saving to: `qooxdoo-1.5-sdk.zip'

100%[=======================================>] 67,875,249      616K/s   in 96s

2011-10-01 19:10:51 (693 KB/s) - `qooxdoo-1.5-sdk.zip' saved
[67875249/67875249]

Penny:downloads singles$ tar -xf qooxdoo-1.5-sdk.zip
Penny:downloads singles$ ls -R qooxdoo-1.5-sdk | wc -l
   15517 !!! (includes test files, icons for 3 themes etc.)




                                     7
IT'S NOT A TOY

let's see example api page:




             8

Recommended for you

Introduccion a Jasmin
Introduccion a JasminIntroduccion a Jasmin
Introduccion a Jasmin

Jasmine is a JavaScript testing framework that allows developers to write unit tests for their JavaScript code. The document discusses what Jasmine is, its features and structure. It provides examples of how to write tests using Jasmine including describing suites and specs, expectations, spies, asynchronous tests and testing jQuery code. References for learning more about Jasmine are also included.

jamin javascrip testing test jquery test jasmin-js
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6

ECMAScript6: Novedades y navegadores que dan soporte a ECMAScript6. Presentado por ings.: Alex Adriá y Mario García

developmentvisualengincode
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture

AngularJS uses a compile function to parse HTML into DOM elements and compile directives. The compile function sorts directives by priority and executes their compile and link functions to connect the scope to the DOM. It recursively compiles child elements. This allows directives to manipulate DOM elements and register behavior.

angularjs
IT'S NOT A TOY

              let's see some code:
qx.Class.define("foo.lib.io.HttpRequest",
{
    type: 'abstract',
    extend : qx.io.request.Xhr,
    implement: [IFooInterface, IBarInterface],
    include : [app.MMessage],
    properties : {
        showLoadingDialog : {
            check : "Boolean",
            init : true
        }
    },
    construct : function(vUrl, vMethod) {
        this.base(arguments, vUrl);
        this.addListener("fail", this._onError, this);
    },
    members : {
        _onError : function() {
            this.showError(Tools.tr("io.request:error"));
        },
    }
});



                                        9
IT'S NOT A TOY

              let's see some code:
qx.Class.define("foo.lib.io.HttpRequest",
{
    type: 'abstract',                                     class type
    extend : qx.io.request.Xhr,
    implement: [IFooInterface, IBarInterface],
    include : [app.MMessage],
    properties : {
        showLoadingDialog : {
            check : "Boolean",
            init : true
        }
    },
    construct : function(vUrl, vMethod) {
        this.base(arguments, vUrl);
        this.addListener("fail", this._onError, this);
    },
    members : {
        _onError : function() {
            this.showError(Tools.tr("io.request:error"));
        },
    }
});



                                        10
IT'S NOT A TOY

              let's see some code:
qx.Class.define("foo.lib.io.HttpRequest",
{
    type: 'abstract',
    extend : qx.io.request.Xhr,                        inheritance
    implement: [IFooInterface, IBarInterface],
    include : [app.MMessage],
    properties : {
        showLoadingDialog : {
            check : "Boolean",
            init : true
        }
    },
    construct : function(vUrl, vMethod) {
        this.base(arguments, vUrl);
        this.addListener("fail", this._onError, this);
    },
    members : {
        _onError : function() {
            this.showError(Tools.tr("io.request:error"));
        },
    }
});



                                       11
IT'S NOT A TOY

              let's see some code:
qx.Class.define("foo.lib.io.HttpRequest",
{
    type: 'abstract',
    extend : qx.io.request.Xhr,
    implement: [IFooInterface, IBarInterface],         interfaces
    include : [app.MMessage],
    properties : {
        showLoadingDialog : {
            check : "Boolean",
            init : true
        }
    },
    construct : function(vUrl, vMethod) {
        this.base(arguments, vUrl);
        this.addListener("fail", this._onError, this);
    },
    members : {
        _onError : function() {
            this.showError(Tools.tr("io.request:error"));
        },
    }
});



                                       12

Recommended for you

Advanced JavaScript Concepts
Advanced JavaScript ConceptsAdvanced JavaScript Concepts
Advanced JavaScript Concepts

Topics covered: Closure, Callback, Module Pattern, Cascading, Curry, Inheritance, Pseudo Classical, Prototype

javascript
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone

This document provides an overview of Backbone.js and how it can be used to build dynamic web applications. It discusses the main Backbone components: - Models represent single data objects and can be validated. - Collections hold ordered sets of models and can fetch data from the server. - Views handle the display and interaction of data from models and collections. - Routers map URLs to functions that control the application flow. The document then gives an example of using Backbone to build a simple shopping cart application with Products and Cart views, demonstrating how the components work together.

backboneruby on railsruby
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015

1. The document discusses strategies for optimizing software costs, including the costs of introduction, change, and ownership over the lifetime of a project. 2. It emphasizes focusing on optimizing for cost of introduction early on, as this cost is relatively easy to optimize and loses relevance over time. However, cost of change increases exponentially and is most important to optimize for longer-term projects. 3. Cost of ownership involves ongoing maintenance and allows balancing the costs of introduction and change by selectively taking ownership of only necessary logic through techniques like testing and refactoring.

costslaravelagile
IT'S NOT A TOY

              let's see some code:
qx.Class.define("foo.lib.io.HttpRequest",
{
    type: 'abstract',
    extend : qx.io.request.Xhr,
    implement: [IFooInterface, IBarInterface],
    include : [app.MMessage],                             mixins !
    properties : {
        showLoadingDialog : {
            check : "Boolean",
            init : true
        }
    },
    construct : function(vUrl, vMethod) {
        this.base(arguments, vUrl);
        this.addListener("fail", this._onError, this);
    },
    members : {
        _onError : function() {
            this.showError(Tools.tr("io.request:error"));
        },
    }
});



                                        13
IT'S NOT A TOY

              let's see some code:
qx.Class.define("foo.lib.io.HttpRequest",
{
    type: 'abstract',
    extend : qx.io.request.Xhr,
    implement: [IFooInterface, IBarInterface],
    include : [app.MMessage],
    properties : {
        showLoadingDialog : {
            check : "Boolean",                          like C#, but better :)
            init : true
        }
    },
    construct : function(vUrl, vMethod) {
        this.base(arguments, vUrl);
        this.addListener("fail", this._onError, this);
    },
    members : {
        _onError : function() {
            this.showError(Tools.tr("io.request:error"));
        },
    }
});



                                       14
IT'S NOT A TOY

                let's see some code:
qx.Class.define("foo.lib.io.HttpRequest",
{
    type: 'abstract',
    extend : qx.io.request.Xhr,
    implement: [IFooInterface, IBarInterface],
    include : [app.MMessage],
    properties : {
        showLoadingDialog : {
            check : "Boolean",
            init : true
        }
    },
    construct : function(vUrl, vMethod) {
        this.base(arguments, vUrl);
        this.addListener("fail", this._onError, this);
    },
    members : {                                               protected member
                                                              (also private & public)
          _onError : function() {
              this.showError(Tools.tr("io.request:error"));
          },
      }
});



                                         15
OVERENGINERED?




      16

Recommended for you

Rich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 Application

Presentation for Symfony Camp UA 2012. * What are Rich Model, Service Layer & Layered Architecture * Layered architecture in Sf2 Application * Integration with 3rd party bundles

symfony2symfonymodel
Jason parsing
Jason parsingJason parsing
Jason parsing

The document describes how to create an Android project in Eclipse to call a JSON web service. It includes: 1. Creating a new Android project called "TestJSONWebService" targeting Android 2.2 with an activity called "TestWebServiceActivity" and package name "parallelminds.webservice.com". 2. The main activity, TestWebServiceActivity, makes a call to the web service using the callWebService() method and parses the JSON response to populate a list view. 3. A second class, CallWebService, implements the call to the web service and returns the JSON response.

restfulparsingwebservice
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer

The document discusses the evolution of the author's views on JavaScript and front-end frameworks. It begins by expressing dislike for JavaScript but acknowledging the need for it. Various frameworks like Backbone, Angular, and Ember are explored but found lacking. React is then introduced and praised for its declarative and composable approach similar to HTML. The author comes to understand JSX and how React implements unidirectional data flow to separate the UI from data logic. This allows building full-stack applications with React handling both client and server rendering based on shared intentions, state, and data flow patterns.

php laraconeu
OVERENGINERED?

     NO.




      17
OVERENGINERED?

     NO.

WELL DESIGNED!


      18
BUT!




 19
BUT!

YOU HAVE TO KNOW WHAT
    YOU ARE DOING



          20

Recommended for you

Ruby - Design patterns tdc2011
Ruby - Design patterns tdc2011Ruby - Design patterns tdc2011
Ruby - Design patterns tdc2011

The document discusses several design patterns in Ruby including Template Method, Strategy, Observer, Factory, Builder, and Adapter patterns. For each pattern, it provides a code example to illustrate how the pattern can be implemented in Ruby. It focuses on explaining how each pattern works and how it can be applied to solve common programming problems.

tdc2011design patternsruby
AngularJs $provide API internals & circular dependency problem.
AngularJs $provide API internals & circular dependency problem.AngularJs $provide API internals & circular dependency problem.
AngularJs $provide API internals & circular dependency problem.

The document provides an overview of AngularJS dependency injection and the $provide service. It explains the differences between providers, factories, services, values, constants, and decorators. It describes how $provide registers these items in the providerCache and instanceCache and instantiates them lazily through the $injector. Circular dependencies can cause errors since items point to each other before being fully instantiated.

angularjsprogrammingjavascript
Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8

JavaScript is one of the most popular skills in today’s job market. It allows you to create both client- and server-side applications quickly and easily. Having a solid understanding of this powerful and versatile language is essential to anyone who uses it. “Practical JavaScript Programming” does not only focus on best practices, but also introduces the fundamental concepts. This course will take you from JavaScript basics to advanced. You’ll learn about topics like Data Types, Functions, Events, AJAX and more.

javascriptjses6
BUT!

YOU HAVE TO KNOW WHAT
    YOU ARE DOING

   IN ANOTHER CASE...

           21
22
QOOXDOO
    =
FRAMEWORK
    +
GUI TOOLKIT

     23
LOT OF FEATURES




       24

Recommended for you

Get started with YUI
Get started with YUIGet started with YUI
Get started with YUI

The document provides an overview of the YUI library. It discusses: 1) What YUI is and its main components like the JavaScript library, CSS foundation, documentation tools, build tools, testing tools, and more. 2) Some of the core utilities included in YUI like Event, Node, YUI Global Object, Array, mix, extend, augment, Object, merge, clone, and Module. 3) How to use YUI features like the loader, events, DOM events, custom events, Node, IO, Transition, and infrastructure components like Base, Attributes, Plugin, and Widget.

yui
Introductionandgreetings
IntroductionandgreetingsIntroductionandgreetings
Introductionandgreetings

The document provides an overview of modern web development frameworks and libraries from 2006 to 2015. It discusses: - Early frameworks like jQuery that provided cross-browser APIs but had tight coupling with HTML. - AngularJS which introduced two-way data binding but had slow dirty checking. - Backbone.js which used a true MVC pattern with jQuery-like views but had a complicated data binding system. - React which introduced one-way data flow and the virtual DOM for performance. It requires changing one's mindset. - The adoption of reactive programming concepts which treat all code as streams of events. - The evolution of frameworks to incorporate ideas from React while new libraries emerged

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

1) The document discusses the author's experience building their own node.js web framework, including their background with other technologies like Ruby on Rails. 2) It describes the key features of their framework, such as MVC structure, middleware support, asset packaging, and command line tools. 3) The author explains that they rolled their own framework to learn more about how frameworks work, have more control over the technology stack, and because node.js performance is better than Ruby on Rails. They emphasize that building the framework was a fun learning experience.

node.js
LOT OF FEATURES

BUT WE DON'T HAVE TIME
 TO TALK ABOUT ALL OF
       THEM, SO...



          25
LOT OF FEATURES

BUT WE DON'T HAVE TIME
 TO TALK ABOUT ALL OF
       THEM, SO...

 HTTP://QOOXDOO.ORG/ABOUT


            26
THINGS WORTH
MENTIONING *


               * IMHO
     27
DOCUMENTATION




      28

Recommended for you

Javascript Frameworks for Joomla
Javascript Frameworks for JoomlaJavascript Frameworks for Joomla
Javascript Frameworks for Joomla

The document discusses how JavaScript frameworks like MooTools can be leveraged in Joomla sites to provide features like DOM manipulation, classes, event listeners, and effects. It describes how MooTools is the default framework used by Joomla and provides examples of its key capabilities. Additionally, it offers suggestions for optimizing framework usage, such as implementing the Google Loader API to decrease page load times.

jdmw
JDK Power Tools
JDK Power ToolsJDK Power Tools
JDK Power Tools

This document provides an overview of tools available in the Java Development Kit (JDK) that allow for powerful introspection and manipulation of the Java Virtual Machine (JVM) and running applications. It discusses the java.lang.instrument API for injecting Java agents, the Java Debugging Interface (JDI) for debugging, the JVM Tool Interface (JVMTI) for heap and frame introspection, and examples of using these tools to build interactive debuggers, inject code at runtime, and test concurrency. Code samples and links to further resources are also provided.

jvmgeekout 2013java
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node js

This document discusses best practices for developing Node.js applications. It recommends using frameworks like Express for building web apps, libraries like Async to avoid callback hell, and organizing code into modular sub-applications. It also covers testing, error handling, documentation, and open-sourcing projects. Standards like Felix's Style Guide and domain-driven design principles are advocated. Communication channels like events, HTTP APIs, and WebSockets are examined.

nodejsjavascript
DOCUMENTATION




      463pages
    justmanual
  withoutapidocs


                 29
DOCUMENTATION



   + DEMOS

+ PLAYGROUND
 (RIA  MOBILE)

       30
MIXINS




  31
MIXINS




Something like interfaces, but
   with implementation.



              32

Recommended for you

The next step, part 2
The next step, part 2The next step, part 2
The next step, part 2

YUIConf 2010 talk about how to go from a simple widget to one that can do all sorts of tricks, all without cluttering up the simple base widget.

pluginyui3widget
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

JavaFX 8 est disponible depuis mars 2014 et apporte son lot de nouveautés. Gradle est en version 2 depuis juillet 2014. Deux technologies plus que prometteuses: JavaFX donne un coup de jeune au développement d’applications desktop en Java en apportant un navigateur web intégré, le support des WebSockets, de la 3D, et bien d’autres. Gradle est l’outil de d’automatisation de build à la mode, apportant de superbes possibilités par rapport rapport à maven, outil vieillissant, grâce à l’engouement de la communauté vis à vis de cet outil mais aussi par le fait de la technologie utilisée en son sein: groovy. Venez découvrir comment il est possible de réaliser rapidement une application à la mode en JavaFX avec un outil à la mode également. Bref venez à une session trendy.

bindinggradlejavafx
Rails is not just Ruby
Rails is not just RubyRails is not just Ruby
Rails is not just Ruby

Talk on Rails and JavaScript and how JavaScript should be written, structured, separated from the HTML etc.

railsseparation of concernsunobtrusive
MIXINS

qx.Mixin.define(foo.lib.tools.MAwesomeLogger,
{
  members : {
    logWithTrace : function(what) {
      console.log(what);
      console.trace();
    }
  }
});

qx.Class.define(foo.app.Bar,
{
  include: [foo.lib.tools.MAwesomeLogger],
  construct: function() {
    this.logWithTrace(this);
  }
}




                                     33
PROPERTIES




    34
35
qx.Class.define('foo.bar', {
  extend: qx.core.Object,
  properties: {
    phrase: {                              // autogenerate setter and getter and ...
      apply: '_applyPhrase'                // fire on property modification (not init!) - return
                                           // value is ignored

      nullable: true,                      //   can be null
      event: 'someEvent'                   //   default changeFoo - fires on property change
      check: ['suit up', 'bazinga'],       //   check possible inserts, also could be defined as a
                                           //   function - works only in development!

      transform: '_transformPhrase'        // transform value - BEFORE check and apply
      validate: qx.util.Validate.string    // works in development and production
    },
    awesome:   { init: false, check: 'Boolean' }
    nerd:      { init: false, check: 'Boolean' }
  },
  members: {
     _transformPhrase: function(value) {
       return value + '!';
     }
     _applyPhrase: function(value, old, name) {
       if (value === 'suit up!') {
         this.toggleAwesome('awesome');
       } else if (value === 'bazinga!') {
         this.toggleAwesome('nerd');
       }
     }
  }
});



                                                   36

Recommended for you

Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScript

Is your web app drowning in a sea of JavaScript? Has your client-side codebase grown from "a snippet here and there" to "more JavaScript than HTML"? Do you find yourself writing one-off snippets instead of generalized components? You're not the only one. Learn about a handful of strategies you can use to keep your JavaScript codebase lean, modular, and flexible. We'll cover all the major pain points — MVC, templates, persisting state, namespacing, graceful error handling, client/server communication, and separation of concerns. And we'll cover how to do all this incrementally so that you don't have to redo everything from scratch.

javascriptmixarchitecture
Metaprogramming in ES6
Metaprogramming in ES6Metaprogramming in ES6
Metaprogramming in ES6

This document discusses metaprogramming in JavaScript using ES6 features. It begins by defining metaprogramming as programming that treats programs as data. It explores reflection within implementation using Symbols, reflection through introspection using the Reflect object, and reflection through intercession using Proxies. For frontend developers, it suggests Symbols could be used where constants are now used, and Reflect and Proxies could be used for monkey patching and modifying prototypes.

metaprogramming javascript es6 symbol reflect prox
Intro programacion funcional
Intro programacion funcionalIntro programacion funcional
Intro programacion funcional

Programación funcional con swift. Se ven conceptos como funciones de primera clase, funciones de orden superior, métodos como filter, map y el patrón Result para la gestión de errores.

swiftiosfunctional programming
LOT OF CONSISTENT(!) GUI
     COMPONENTS



           37
GUI COMPONENTS




      38
GUI COMPONENTS




      39
GUI COMPONENTS




      40

Recommended for you

Build Widgets
Build WidgetsBuild Widgets
Build Widgets

These are the slides I used at the JTEL winterschool to describe how to create widgets for use in Wookie.

Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress

This document discusses JavaScript and how it is used on over 92% of websites. It covers JavaScript fundamentals like variable scope, hoisting, and the this keyword. It also discusses how JavaScript allows first-class functions and functional programming. The document then covers how to properly manage scripts in WordPress using functions like wp_register_script, wp_enqueue_script, and wp_localize_script to internationalize scripts. It concludes by mentioning additional JavaScript topics to explore like closures and functional programming.

Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs

This document provides an overview of using the Backbone.js framework for client-side MVC applications. It discusses why Backbone is useful for structuring JavaScript applications, its core architecture including models, collections, views and routers. It also provides examples of how to convert jQuery code to use a Backbone-based approach and lists some real-world applications that use Backbone.

backbonejs
GUI COMPONENTS




      41
GUI COMPONENTS




Themeable of course ;)




          42
EASY KEY/COMMANDS
      BINDING



        43
EASY KEY/COMMANDS BINDING

var findWindow = new qx.ui.window.Window('search');
//findWindow configuration...

var find = new qx.event.Command(Ctrl+F),
    close = new qx.event.Command('Esc');

find.addListener(execute, function() {
  findWindow.open();
}, this);
close.addListener(execute, function() {
  findWindow.close();
}, this);




                           44

Recommended for you

JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up

JavaScript is evolving with the addition of modules, platform consistency, and harmony features. Modules allow JavaScript code to be organized and avoid naming collisions. CommonJS and AMD module formats are used widely. Platform consistency is improved through polyfills that mimic future APIs for older browsers. Harmony brings language-level modules and features like destructuring assignment, default parameters, and promises to JavaScript. Traceur compiles Harmony code to existing JavaScript.

javascript
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery

Javascript and first-class citizenry: require.js & node.js Javascript on web pages is ubiquitous and its problems are legendary. Javascript, seen as a second-class code citizen, is usually hacked together even by seasoned developers. New libraries (jQuery, prototype, backbone, knockout, underscore) and runtime tools (firebug, jasmine) look like they solve many problems - and they do. But they still leave poorly written code as just that. One key problem is that all javascript code lives globally and this results in poorly managed, tested and delivered code. In this session, I will illustrate that we can treat javascript as a first-class citizen using with require.js and node.js: it can be modular, encapsulated and easily unit tested and added to continuous integration cycle. The dependencies between javascript modules can also be managed and packaged just like in C# and Java. In the end, we can resolve many javascript difficulties at compile time rather than waiting until runtime.

javascript requirejs node.js
Orlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't SuckOrlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't Suck

The document discusses reasons why JavaScript does not suck, including that it is the most widely used functional programming language, supports lambda functions, objects, metaprogramming, and duck typing. It provides examples of the module pattern for encapsulation and prototype inheritance for object-oriented programming in JavaScript.

EASY ELEMENTS
  POSITIONING
(WITH LAYOUTS)



      45
EASY ELEMENTS POSITIONING




           46
EASY REST CALLS




       47
EASY REST CALLS
var description = {
  index:    { method: GET, url: /photos }
  create:   { method: POST, url: /photos }
  show:     { method: GET, url: /photos/:id }
  update:   { method: PUT, url: /photos/:id }
}
var photos = new qx.io.rest.Resource(description); //declaratively
photos.map('destroy', 'DELETE', '/photos/:id');    //programatically
photos.index(); // -- GET /photos
photos.show({id: 1}); // -- GET /photos/1

// success is fired when any request associated to resource receives a
response
photos.addListener(success, function(e) {
  e.getAction(); // -- index or show
});

// indexSuccess is fired when the request associated to the index action
receives a response
photos.addListener(indexSuccess, function(e) {
  e.getAction(); // -- index
});



                                       48

Recommended for you

AngularJS - Services
AngularJS - ServicesAngularJS - Services
AngularJS - Services

A presentation made for the AngularJS-IL meetup group that took place in oct 2014 at Google TLV Campus (http://www.meetup.com/AngularJS-IL/events/207559572/) its an overview of how to use services in your app. this slideshow contain a link for a reference code on github. (link in the last slide)

angularjavascriptsingeltons
Fun Teaching MongoDB New Tricks
Fun Teaching MongoDB New TricksFun Teaching MongoDB New Tricks
Fun Teaching MongoDB New Tricks

MongoDB is the trusted document store we turn to when we have tough data store problems to solve. For this talk we are going to go a little bit off the path and explore what other roles we can fit MongoDB into. Others have discussed how to turn MongoDB’s capped collections into a publish/subscribe server. We stretch that a little further and turn MongoDB into a full fledged broker with both publish/subscribe and queue semantics, and a the ability to mix them. We will provide code and a running demo of the queue producers and consumers. Next we will turn to coordination services: We will explore the fundamental features and show how to implement them using MongoDB as the storage engine. Again we will show the code and demo the coordination of multiple applications.

Building Large jQuery Applications
Building Large jQuery ApplicationsBuilding Large jQuery Applications
Building Large jQuery Applications

When you move beyond adding simple enhancements to your website with jQuery and start building full-blown client-side applications, how do you organize your code? At this month's Triangle JS Meetup, we'll take a look at patterns for application development using jQuery that promote the principles of tight encapsulation and loose coupling, including classes, the publish/subscribe paradigm, and dependency management and build systems.

javascriptjquery
HTML EDITOR
OUT OF THE BOX



      49
HTML EDITOR




The html editor does have some issues. Just not to give the impression
that it would try to compete with more advanced editors like ckEditor,
     etc., because it doesn't. Still fine for many products, though.
                             [Andreas Ecker]

                                50
ADVANCED BUILD TOOL




         51
ADVANCED BUILD TOOL

Penny:frontend singles$ ./generate.py list
 Available jobs:
  - api     -- create api doc for the current library
  - api-data     -- create api doc json data files
  - build
  - clean -- remove local cache and generated .js files (source/build)
  - distclean    -- remove the cache and all generated artefacts of this library (source,
build, ...)
  - fix     -- normalize whitespace in .js files of the current library (tabs, eol, ...)
  - info    -- collects environment information like the qooxdoo version etc., and prints it out
  - inspector    -- create an inspector instance in the current library
  - lint    -- check the source code of the .js files of the current library
  - migration    -- migrate the .js files of the current library to the current qooxdoo version
  - pretty
  - profiling    -- includer job, to activate profiling
  - simulation-build       -- (experimental) create a runner app for simulated interaction tests
  - simulation-run    -- (experimental) launches simulated interaction tests generated with
simulation-build
  - source
  - source-all -- create source version of current application, with all classes
  - source-hybrid     -- create a hybrid version (app classes as source files, others compiled)
  - test    -- create a test runner app for unit tests of the current library
  - test-source       -- create a test runner app for unit tests (source version) of the current
library
  - translation       -- create .po files for current library




                                               52

Recommended for you

Heroku pop-behind-the-sense
Heroku pop-behind-the-senseHeroku pop-behind-the-sense
Heroku pop-behind-the-sense

The document discusses software architecture for node.js applications. It covers using a home-brewed MVC framework called COKE, implementing RESTful routing and validation, separating concerns between controllers, models, and views, using libraries to extract reusable code, and scaling node.js applications from a single server to multiple distributed services. It also discusses deployment strategies from single server with downtime to zero downtime across multiple instances.

nodejsherokupop
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf

As a popular open-source library for analytics engineering, dbt is often used in combination with Airflow. Orchestrating and executing dbt models as DAGs ensures an additional layer of control over tasks, observability, and provides a reliable, scalable environment to run dbt models. This webinar will cover a step-by-step guide to Cosmos, an open source package from Astronomer that helps you easily run your dbt Core projects as Airflow DAGs and Task Groups, all with just a few lines of code. We’ll walk through: - Standard ways of running dbt (and when to utilize other methods) - How Cosmos can be used to run and visualize your dbt projects in Airflow - Common challenges and how to address them, including performance, dependency conflicts, and more - How running dbt projects in Airflow helps with cost optimization Webinar given on 9 July 2024

apache airflowdbtdbt-core
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing

Invited Remote Lecture to SC21 The International Conference for High Performance Computing, Networking, Storage, and Analysis St. Louis, Missouri November 18, 2021

distributed supercomputerdistributed machine learning
WORKS:
 STANDALONE (IN BROWSER),
INSIDE EXISTING WEBPAGES OR
   NATIVE (WITHOUT GUI)




            53
MOBILE SUPPORT




      54
MOBILE SUPPORT




      55
DEVELOPER FRIENDLY
  (TESTS  TOOLS)




        56

Recommended for you

Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides

If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights. During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to: - Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value - Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems - Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors - Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported - Look Ahead: Gain insights into where FME is headed with coordinate systems in the future Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!

20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024

Everything that I found interesting last month about the irresponsible use of machine intelligence

quantumfaxmachine
DEVELOPER FRIENDLY




        57
DEVELOPER FRIENDLY




        58
LOCALIZATION AND
  TRANSLATION



       59
AND MUCH MORE...




       60

Recommended for you

Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops

This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization. Key Takeaways: * Understand why connection pooling is essential for high-traffic applications * Explore various connection poolers available for PostgreSQL, including pgbouncer * Learn the configuration options and functionalities of pgbouncer * Discover best practices for monitoring and troubleshooting connection pooling setups * Gain insights into real-world use cases and considerations for production environments This presentation is ideal for: * Database administrators (DBAs) * Developers working with PostgreSQL * DevOps engineers * Anyone interested in optimizing PostgreSQL performance Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services

postgresqlpgsqldatabase
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM

Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.

quantum communicationsshannon's channel theoremclassical theory
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation

Java Servlet programs

WAIT W AIT. I T L OOKS L IKE I
CAN U SE I T J UST F OR U GLY A N
  BORING W EB A PPLICATIONS


                                         61
NOT REALLY...




      62
HTTP://WWW.LORDOFULTIMA.COM/EN/

              63
QUESTIONS?




    64

Recommended for you

Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection

Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.

cybersecurityanomaly detectionadvanced techniques
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges

accommodate the strengths, weaknesses, threats and opportunities of autonomous vehicles

automotive self-driving car technology
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure

Recent advancements in the NIST-JARVIS infrastructure: JARVIS-Overview, JARVIS-DFT, AtomGPT, ALIGNN, JARVIS-Leaderboard

jarvisjarvis-dftalignn
THANKS!




   65
name: Radosław Benkel
                                   nick: singles
                                   www: http://www.rbenkel.me
                                   twitter: @singlespl




* and I have nothing in common with http://www.singles.pl ;]


                                              66

More Related Content

What's hot

The Beauty of Java Script
The Beauty of Java ScriptThe Beauty of Java Script
The Beauty of Java Script
Michael Girouard
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5a
rajivmordani
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2
Jeado Ko
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testing
Visual Engineering
 
Containers & Dependency in Ember.js
Containers & Dependency in Ember.jsContainers & Dependency in Ember.js
Containers & Dependency in Ember.js
Matthew Beale
 
AngularJS Animations
AngularJS AnimationsAngularJS Animations
AngularJS Animations
Eyal Vardi
 
Introduccion a Jasmin
Introduccion a JasminIntroduccion a Jasmin
Introduccion a Jasmin
Rodrigo Quelca Sirpa
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
Visual Engineering
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture
Eyal Vardi
 
Advanced JavaScript Concepts
Advanced JavaScript ConceptsAdvanced JavaScript Concepts
Advanced JavaScript Concepts
Naresh Kumar
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
Rafael Felix da Silva
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015
Konstantin Kudryashov
 
Rich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 Application
Kirill Chebunin
 
Jason parsing
Jason parsingJason parsing
Jason parsing
parallelminder
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
Frank de Jonge
 
Ruby - Design patterns tdc2011
Ruby - Design patterns tdc2011Ruby - Design patterns tdc2011
Ruby - Design patterns tdc2011
Rafael Felix da Silva
 
AngularJs $provide API internals & circular dependency problem.
AngularJs $provide API internals & circular dependency problem.AngularJs $provide API internals & circular dependency problem.
AngularJs $provide API internals & circular dependency problem.
Yan Yankowski
 
Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8
Wilson Su
 
Get started with YUI
Get started with YUIGet started with YUI
Get started with YUI
Adam Lu
 
Introductionandgreetings
IntroductionandgreetingsIntroductionandgreetings
Introductionandgreetings
Pozz ZaRat
 

What's hot (20)

The Beauty of Java Script
The Beauty of Java ScriptThe Beauty of Java Script
The Beauty of Java Script
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5a
 
Reactive, component 그리고 angular2
Reactive, component 그리고  angular2Reactive, component 그리고  angular2
Reactive, component 그리고 angular2
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testing
 
Containers & Dependency in Ember.js
Containers & Dependency in Ember.jsContainers & Dependency in Ember.js
Containers & Dependency in Ember.js
 
AngularJS Animations
AngularJS AnimationsAngularJS Animations
AngularJS Animations
 
Introduccion a Jasmin
Introduccion a JasminIntroduccion a Jasmin
Introduccion a Jasmin
 
Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6Workshop 10: ECMAScript 6
Workshop 10: ECMAScript 6
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture
 
Advanced JavaScript Concepts
Advanced JavaScript ConceptsAdvanced JavaScript Concepts
Advanced JavaScript Concepts
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015
 
Rich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 Application
 
Jason parsing
Jason parsingJason parsing
Jason parsing
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
 
Ruby - Design patterns tdc2011
Ruby - Design patterns tdc2011Ruby - Design patterns tdc2011
Ruby - Design patterns tdc2011
 
AngularJs $provide API internals & circular dependency problem.
AngularJs $provide API internals & circular dependency problem.AngularJs $provide API internals & circular dependency problem.
AngularJs $provide API internals & circular dependency problem.
 
Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8Practical JavaScript Programming - Session 1/8
Practical JavaScript Programming - Session 1/8
 
Get started with YUI
Get started with YUIGet started with YUI
Get started with YUI
 
Introductionandgreetings
IntroductionandgreetingsIntroductionandgreetings
Introductionandgreetings
 

Similar to meet.js - QooXDoo

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
 
Javascript Frameworks for Joomla
Javascript Frameworks for JoomlaJavascript Frameworks for Joomla
Javascript Frameworks for Joomla
Luke Summerfield
 
JDK Power Tools
JDK Power ToolsJDK Power Tools
JDK Power Tools
Tobias Lindaaker
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node js
Francois Zaninotto
 
The next step, part 2
The next step, part 2The next step, part 2
The next step, part 2
Pat Cavit
 
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
 
Rails is not just Ruby
Rails is not just RubyRails is not just Ruby
Rails is not just Ruby
Marco Otte-Witte
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScript
Andrew Dupont
 
Metaprogramming in ES6
Metaprogramming in ES6Metaprogramming in ES6
Metaprogramming in ES6
Héctor Pablos López
 
Intro programacion funcional
Intro programacion funcionalIntro programacion funcional
Intro programacion funcional
NSCoder Mexico
 
Build Widgets
Build WidgetsBuild Widgets
Build Widgets
scottw
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
wpnepal
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs
Nick Lee
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
David Padbury
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
toddbr
 
Orlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't SuckOrlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't Suck
erockendude
 
AngularJS - Services
AngularJS - ServicesAngularJS - Services
AngularJS - Services
Nir Kaufman
 
Fun Teaching MongoDB New Tricks
Fun Teaching MongoDB New TricksFun Teaching MongoDB New Tricks
Fun Teaching MongoDB New Tricks
MongoDB
 
Building Large jQuery Applications
Building Large jQuery ApplicationsBuilding Large jQuery Applications
Building Large jQuery Applications
Rebecca Murphey
 
Heroku pop-behind-the-sense
Heroku pop-behind-the-senseHeroku pop-behind-the-sense
Heroku pop-behind-the-sense
Ben Lin
 

Similar to meet.js - QooXDoo (20)

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
 
Javascript Frameworks for Joomla
Javascript Frameworks for JoomlaJavascript Frameworks for Joomla
Javascript Frameworks for Joomla
 
JDK Power Tools
JDK Power ToolsJDK Power Tools
JDK Power Tools
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node js
 
The next step, part 2
The next step, part 2The next step, part 2
The next step, part 2
 
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
 
Rails is not just Ruby
Rails is not just RubyRails is not just Ruby
Rails is not just Ruby
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScript
 
Metaprogramming in ES6
Metaprogramming in ES6Metaprogramming in ES6
Metaprogramming in ES6
 
Intro programacion funcional
Intro programacion funcionalIntro programacion funcional
Intro programacion funcional
 
Build Widgets
Build WidgetsBuild Widgets
Build Widgets
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
 
Orlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't SuckOrlando BarCamp Why Javascript Doesn't Suck
Orlando BarCamp Why Javascript Doesn't Suck
 
AngularJS - Services
AngularJS - ServicesAngularJS - Services
AngularJS - Services
 
Fun Teaching MongoDB New Tricks
Fun Teaching MongoDB New TricksFun Teaching MongoDB New Tricks
Fun Teaching MongoDB New Tricks
 
Building Large jQuery Applications
Building Large jQuery ApplicationsBuilding Large jQuery Applications
Building Large jQuery Applications
 
Heroku pop-behind-the-sense
Heroku pop-behind-the-senseHeroku pop-behind-the-sense
Heroku pop-behind-the-sense
 

Recently uploaded

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 

Recently uploaded (20)

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 

meet.js - QooXDoo

  • 5. 5
  • 6. IT'S NOT A TOY 6
  • 7. IT'S NOT A TOY let's count files: Penny:downloads singles$ wget http://downloads..../qooxdoo-1.5-sdk.zip [...] HTTP request sent, awaiting response... 200 OK Length: 67875249 (65M) [application/zip] !!! Saving to: `qooxdoo-1.5-sdk.zip' 100%[=======================================>] 67,875,249 616K/s in 96s 2011-10-01 19:10:51 (693 KB/s) - `qooxdoo-1.5-sdk.zip' saved [67875249/67875249] Penny:downloads singles$ tar -xf qooxdoo-1.5-sdk.zip Penny:downloads singles$ ls -R qooxdoo-1.5-sdk | wc -l 15517 !!! (includes test files, icons for 3 themes etc.) 7
  • 8. IT'S NOT A TOY let's see example api page: 8
  • 9. IT'S NOT A TOY let's see some code: qx.Class.define("foo.lib.io.HttpRequest", { type: 'abstract', extend : qx.io.request.Xhr, implement: [IFooInterface, IBarInterface], include : [app.MMessage], properties : { showLoadingDialog : { check : "Boolean", init : true } }, construct : function(vUrl, vMethod) { this.base(arguments, vUrl); this.addListener("fail", this._onError, this); }, members : { _onError : function() { this.showError(Tools.tr("io.request:error")); }, } }); 9
  • 10. IT'S NOT A TOY let's see some code: qx.Class.define("foo.lib.io.HttpRequest", { type: 'abstract', class type extend : qx.io.request.Xhr, implement: [IFooInterface, IBarInterface], include : [app.MMessage], properties : { showLoadingDialog : { check : "Boolean", init : true } }, construct : function(vUrl, vMethod) { this.base(arguments, vUrl); this.addListener("fail", this._onError, this); }, members : { _onError : function() { this.showError(Tools.tr("io.request:error")); }, } }); 10
  • 11. IT'S NOT A TOY let's see some code: qx.Class.define("foo.lib.io.HttpRequest", { type: 'abstract', extend : qx.io.request.Xhr, inheritance implement: [IFooInterface, IBarInterface], include : [app.MMessage], properties : { showLoadingDialog : { check : "Boolean", init : true } }, construct : function(vUrl, vMethod) { this.base(arguments, vUrl); this.addListener("fail", this._onError, this); }, members : { _onError : function() { this.showError(Tools.tr("io.request:error")); }, } }); 11
  • 12. IT'S NOT A TOY let's see some code: qx.Class.define("foo.lib.io.HttpRequest", { type: 'abstract', extend : qx.io.request.Xhr, implement: [IFooInterface, IBarInterface], interfaces include : [app.MMessage], properties : { showLoadingDialog : { check : "Boolean", init : true } }, construct : function(vUrl, vMethod) { this.base(arguments, vUrl); this.addListener("fail", this._onError, this); }, members : { _onError : function() { this.showError(Tools.tr("io.request:error")); }, } }); 12
  • 13. IT'S NOT A TOY let's see some code: qx.Class.define("foo.lib.io.HttpRequest", { type: 'abstract', extend : qx.io.request.Xhr, implement: [IFooInterface, IBarInterface], include : [app.MMessage], mixins ! properties : { showLoadingDialog : { check : "Boolean", init : true } }, construct : function(vUrl, vMethod) { this.base(arguments, vUrl); this.addListener("fail", this._onError, this); }, members : { _onError : function() { this.showError(Tools.tr("io.request:error")); }, } }); 13
  • 14. IT'S NOT A TOY let's see some code: qx.Class.define("foo.lib.io.HttpRequest", { type: 'abstract', extend : qx.io.request.Xhr, implement: [IFooInterface, IBarInterface], include : [app.MMessage], properties : { showLoadingDialog : { check : "Boolean", like C#, but better :) init : true } }, construct : function(vUrl, vMethod) { this.base(arguments, vUrl); this.addListener("fail", this._onError, this); }, members : { _onError : function() { this.showError(Tools.tr("io.request:error")); }, } }); 14
  • 15. IT'S NOT A TOY let's see some code: qx.Class.define("foo.lib.io.HttpRequest", { type: 'abstract', extend : qx.io.request.Xhr, implement: [IFooInterface, IBarInterface], include : [app.MMessage], properties : { showLoadingDialog : { check : "Boolean", init : true } }, construct : function(vUrl, vMethod) { this.base(arguments, vUrl); this.addListener("fail", this._onError, this); }, members : { protected member (also private & public) _onError : function() { this.showError(Tools.tr("io.request:error")); }, } }); 15
  • 17. OVERENGINERED? NO. 17
  • 18. OVERENGINERED? NO. WELL DESIGNED! 18
  • 20. BUT! YOU HAVE TO KNOW WHAT YOU ARE DOING 20
  • 21. BUT! YOU HAVE TO KNOW WHAT YOU ARE DOING IN ANOTHER CASE... 21
  • 22. 22
  • 23. QOOXDOO = FRAMEWORK + GUI TOOLKIT 23
  • 25. LOT OF FEATURES BUT WE DON'T HAVE TIME TO TALK ABOUT ALL OF THEM, SO... 25
  • 26. LOT OF FEATURES BUT WE DON'T HAVE TIME TO TALK ABOUT ALL OF THEM, SO... HTTP://QOOXDOO.ORG/ABOUT 26
  • 29. DOCUMENTATION 463pages justmanual withoutapidocs 29
  • 30. DOCUMENTATION + DEMOS + PLAYGROUND (RIA MOBILE) 30
  • 32. MIXINS Something like interfaces, but with implementation. 32
  • 33. MIXINS qx.Mixin.define(foo.lib.tools.MAwesomeLogger, { members : { logWithTrace : function(what) { console.log(what); console.trace(); } } }); qx.Class.define(foo.app.Bar, { include: [foo.lib.tools.MAwesomeLogger], construct: function() { this.logWithTrace(this); } } 33
  • 35. 35
  • 36. qx.Class.define('foo.bar', { extend: qx.core.Object, properties: { phrase: { // autogenerate setter and getter and ... apply: '_applyPhrase' // fire on property modification (not init!) - return // value is ignored nullable: true, // can be null event: 'someEvent' // default changeFoo - fires on property change check: ['suit up', 'bazinga'], // check possible inserts, also could be defined as a // function - works only in development! transform: '_transformPhrase' // transform value - BEFORE check and apply validate: qx.util.Validate.string // works in development and production }, awesome: { init: false, check: 'Boolean' } nerd: { init: false, check: 'Boolean' } }, members: { _transformPhrase: function(value) { return value + '!'; } _applyPhrase: function(value, old, name) { if (value === 'suit up!') { this.toggleAwesome('awesome'); } else if (value === 'bazinga!') { this.toggleAwesome('nerd'); } } } }); 36
  • 37. LOT OF CONSISTENT(!) GUI COMPONENTS 37
  • 43. EASY KEY/COMMANDS BINDING 43
  • 44. EASY KEY/COMMANDS BINDING var findWindow = new qx.ui.window.Window('search'); //findWindow configuration... var find = new qx.event.Command(Ctrl+F), close = new qx.event.Command('Esc'); find.addListener(execute, function() { findWindow.open(); }, this); close.addListener(execute, function() { findWindow.close(); }, this); 44
  • 45. EASY ELEMENTS POSITIONING (WITH LAYOUTS) 45
  • 48. EASY REST CALLS var description = { index: { method: GET, url: /photos } create: { method: POST, url: /photos } show: { method: GET, url: /photos/:id } update: { method: PUT, url: /photos/:id } } var photos = new qx.io.rest.Resource(description); //declaratively photos.map('destroy', 'DELETE', '/photos/:id'); //programatically photos.index(); // -- GET /photos photos.show({id: 1}); // -- GET /photos/1 // success is fired when any request associated to resource receives a response photos.addListener(success, function(e) { e.getAction(); // -- index or show }); // indexSuccess is fired when the request associated to the index action receives a response photos.addListener(indexSuccess, function(e) { e.getAction(); // -- index }); 48
  • 49. HTML EDITOR OUT OF THE BOX 49
  • 50. HTML EDITOR The html editor does have some issues. Just not to give the impression that it would try to compete with more advanced editors like ckEditor, etc., because it doesn't. Still fine for many products, though. [Andreas Ecker] 50
  • 52. ADVANCED BUILD TOOL Penny:frontend singles$ ./generate.py list Available jobs: - api -- create api doc for the current library - api-data -- create api doc json data files - build - clean -- remove local cache and generated .js files (source/build) - distclean -- remove the cache and all generated artefacts of this library (source, build, ...) - fix -- normalize whitespace in .js files of the current library (tabs, eol, ...) - info -- collects environment information like the qooxdoo version etc., and prints it out - inspector -- create an inspector instance in the current library - lint -- check the source code of the .js files of the current library - migration -- migrate the .js files of the current library to the current qooxdoo version - pretty - profiling -- includer job, to activate profiling - simulation-build -- (experimental) create a runner app for simulated interaction tests - simulation-run -- (experimental) launches simulated interaction tests generated with simulation-build - source - source-all -- create source version of current application, with all classes - source-hybrid -- create a hybrid version (app classes as source files, others compiled) - test -- create a test runner app for unit tests of the current library - test-source -- create a test runner app for unit tests (source version) of the current library - translation -- create .po files for current library 52
  • 53. WORKS: STANDALONE (IN BROWSER), INSIDE EXISTING WEBPAGES OR NATIVE (WITHOUT GUI) 53
  • 56. DEVELOPER FRIENDLY (TESTS TOOLS) 56
  • 59. LOCALIZATION AND TRANSLATION 59
  • 61. WAIT W AIT. I T L OOKS L IKE I CAN U SE I T J UST F OR U GLY A N BORING W EB A PPLICATIONS 61
  • 65. THANKS! 65
  • 66. name: Radosław Benkel nick: singles www: http://www.rbenkel.me twitter: @singlespl * and I have nothing in common with http://www.singles.pl ;] 66