This presentation introduces the Qooxdoo JavaScript framework. Qooxdoo allows building rich desktop-style applications that run in a web browser. The presentation covers the architecture of Qooxdoo applications, the available widgets and layout managers, and demonstrates how to create a simple temperature converter application using test-driven development principles in Qooxdoo. Hands-on exercises guide attendees in using the Qooxdoo tooling and developing a basic user interface.
1) Qooxdoo is a JavaScript framework that provides object-oriented programming features to JavaScript. It turns JavaScript into a "grown up OO language" and allows developers to write browser-based applications without needing HTML or CSS knowledge.
2) The document discusses how to get started with a basic "Hello World" Qooxdoo application by installing Python, unpacking Qooxdoo, and generating and running the application files.
3) Key aspects of programming with Qooxdoo include leveraging JavaScript features like anonymous functions, closures, and proper understanding of scoping, as the framework relies heavily on these elements.
Using the Groovy Ecosystem for Rapid JVM DevelopmentSchalk Cronjé
Overviewing Ratpack, Geb, Spock & Gradle to help with rapid development on the JVM. Mentions of other Gr8 tools & libraries. Swift introduction to Groovy.
This document discusses various topics related to programming efficiently in Groovy and Grails, including:
- Organizing classes into packages in Eclipse and importing dependencies
- The structure of a Grails project and where different types of code belong
- Automatically and manually generating controllers and views in Grails
- Using log4j for logging instead of println statements
- Examples of useful Grails plugins
- Tips for choosing and using Grails plugins
- Maintaining a clean coding style
Introduction to Gradle in 45min as done at JBCN 2016. Covers the basics of Gradle for people familiar with other build tools. Includes building Java, Scala, Groovy & Kotlin projects
1) Qooxdoo is a JavaScript framework that provides object-oriented programming features to JavaScript. It turns JavaScript into a "grown up OO language" and allows developers to write browser-based applications without needing HTML or CSS knowledge.
2) The document discusses how to get started with a basic "Hello World" Qooxdoo application by installing Python, unpacking Qooxdoo, and generating and running the application files.
3) Key aspects of programming with Qooxdoo include leveraging JavaScript features like anonymous functions, closures, and proper understanding of scoping, as the framework relies heavily on these elements.
Using the Groovy Ecosystem for Rapid JVM DevelopmentSchalk Cronjé
Overviewing Ratpack, Geb, Spock & Gradle to help with rapid development on the JVM. Mentions of other Gr8 tools & libraries. Swift introduction to Groovy.
This document discusses various topics related to programming efficiently in Groovy and Grails, including:
- Organizing classes into packages in Eclipse and importing dependencies
- The structure of a Grails project and where different types of code belong
- Automatically and manually generating controllers and views in Grails
- Using log4j for logging instead of println statements
- Examples of useful Grails plugins
- Tips for choosing and using Grails plugins
- Maintaining a clean coding style
Introduction to Gradle in 45min as done at JBCN 2016. Covers the basics of Gradle for people familiar with other build tools. Includes building Java, Scala, Groovy & Kotlin projects
The document provides an introduction to Gradle, an open source build automation tool. It discusses that Gradle is a general purpose build system with a rich build description language based on Groovy. It supports "build-by-convention" and is flexible and extensible, with built-in plugins for Java, Groovy, Scala, web and OSGi. The presentation covers Gradle's basic features, principles, files and collections, dependencies, multi-project builds, plugins and reading materials.
Cool Jvm Tools to Help you Test - Aylesbury Testers VersionSchalk Cronjé
This document summarizes a presentation about cool JVM tools for testing. It introduces the presenter and discusses tools like Spock and Geb for writing readable tests in Groovy. It also covers Ratpack for HTTP testing, Betamax for recording external API responses, and Gradle for running and integrating tests. The presentation provides code examples and outlines how these tools can help write effective tests more efficiently.
Gradle is a flexible, open source build automation tool that uses Groovy as a domain-specific language to define build logic and configuration. It is based on the principle of convention over configuration and provides a rich set of tasks and a directed acyclic graph (DAG) model to declaratively define and manipulate the execution of tasks. Gradle aims to provide a powerful yet user-friendly alternative to tools like Ant and Maven for compiling code, generating packages and archives, managing dependencies, and more.
This presentation provides a brief overview of the history of JavaScript and its ecosystem and highlights the excellent JS support provided by the latest NetBeans IDE. You can find the examples on github: https://github.com/saikos/NetBeansES6Support
This document provides a history of JavaScript and the dynamic web from 1990 to 2015. It discusses how JavaScript started as a scripting language for Netscape in the early 1990s and has since become ubiquitous across the web and is now used for both front-end and back-end development. The document references several articles about the rise of JavaScript and how it has become the dominant programming language. It also provides examples of companies that use JavaScript like Google, Netflix, and PayPal. The document outlines a plan to become a better JavaScript developer including learning the basics, being prepared for interviews, and creating an MVP for investors.
This document provides a history of JavaScript and the dynamic web from 1990 to 2015. It discusses how JavaScript started as a scripting language for Netscape in the early 1990s and has since become ubiquitous across the web in browsers. Major milestones discussed include the introduction of AJAX in 2005, JSON, Node.js in 2009, and ES6 in 2015. The document argues that JavaScript has become the dominant programming language of the enterprise due to its ability to power everything from websites to mobile apps to IoT devices. It references several successful companies that use JavaScript like Google, Netflix, PayPal, and LinkedIn. Finally, it provides a proposed plan for becoming a better JavaScript developer that includes learning the basics, preparing for interviews, and
This document discusses intelligent debugging techniques and in-memory fuzzing. It covers attaching processes for debugging, different types of debugging events, concepts of breakpoints like soft, hard and memory breakpoints. It also discusses hooking techniques like soft and hard hooking. The document demonstrates in-memory fuzzing by taking snapshots of processes, allocating memory, mutating data and restoring processes to find bugs. Python libraries for debugging like Pydbg, IDAPython and fuzzing like PeachFuzz, Sulley are also mentioned.
This document outlines Ugo Cei's presentation "Ruby for Java Programmers". The presentation will cover how to integrate Ruby and Java code, including using bridges like JRuby, XML-RPC, and SOAP. It will also demonstrate sample code for calling Java from Ruby and vice versa. The goal is to help Java programmers learn how Ruby can be used alongside or instead of Java in certain scenarios.
A case study of the usage of Gradle in the Ratpack web framework. First, we'll examine the Ratpack Gradle plugins, including their functionality, implementation, and testing. Next, we'll examine the build script for the Ratpack project itself. Here, we'll discuss various details of the project's build, including handling multiple projects, multiple types of testing, support for multiple styles of target hardware (developer workstations, cloud CI), and more. For each, we'll go over the desired behavior, how it was achieved, and why it was necessary.
The document discusses managing dependencies in Gradle multi-module projects. It presents three problems: 1) managing shared dependencies across modules, 2) changing dependencies that impact repeatable builds, and 3) dependency conflicts when modules are updated separately. For problem 1, it recommends using a gradle.properties file to define shared versions. For problem 2, it introduces the nebula-dependency-lock plugin to lock dependencies until explicitly updated. For problem 3, it notes conflicts can occur if modules are updated independently and provides solutions like dependency locking or pinning versions.
The document provides an overview and cheat sheet for using the OpenShift command line interface. It defines what OpenShift is, lists common commands for login/authentication, managing projects and resources, building and deploying applications, and provides an example of creating a new project, adding users, building an application from source code and image, and checking the status of deployed resources.
Uma introdução ao uso de Sockets usando Golang, apresenta as formas de criar seus próprios Sockets e qual cenário poderia está aplicando Sockets.
Aborda como a arquitetura Rest funciona e qual seria o cenário para sua aplicabilidade comparada com Socket.
A apresentação é uma tentativa de apresentar os recursos e poder do Golang quando o assunto é REST e Socket.
The web is growing fast and online games and other compute-intensive applications expand their user-bases every day. These trends create a growing demand on performance in JavaScript applications. Even though JavaScript has benefited from huge performance improvements in recent years, there is great potential for an even faster web. Browser technologies such as asm.js or Google’s NativeClient enable near-native performance in browsers. More recent efforts led to the specification of WebAssembly, the future vendor-independent standard for native webapps. This talk takes a closer look at Emscripten, a toolchain that transpiles C++ to asm.js. The talk answers questions regarding performance and about the integration with the popular CMake build system.
Extracting Plugins And Gems From Rails AppsJosh Nichols
Rails Plugins and Ruby Gems are the basic mechanism of sharing functionality between multiple projects. This talk will go over extracting functionality into a plugin, testing it, sharing it, and converting it to a gem.
Apache Groovy: the language and the ecosystemKostas Saidis
An overview of the Groovy language and its awesome ecosystem, advocating Groovy as the language of choice for (a) Java developers that want to dive into dynamic languages or (b) for Javascript, Ruby or Python developers that want to dive into the Java platform.
The presentation was given at the 9th FOSSCOMM (16-17 April 2016) organized by the Software Libre Sociecy of the University of Piraues.
This document summarizes Go project layout and practices for a Go web application project. It discusses folder structure, configuration management using environment variables and files, embedding assets, command line interfaces, testing practices including fixtures, and packages for common functions like errors, middleware, models and more.
Phobos is a lightweight JavaScript web application framework that allows all application logic to be written in JavaScript. It runs on the Java platform and supports full-featured IDE development. Phobos integrates JavaScript and Java libraries and allows JavaScript code to be run across client, server, and database tiers for a unified programming model.
The document provides an introduction to Gradle, an open source build automation tool. It discusses that Gradle is a general purpose build system with a rich build description language based on Groovy. It supports "build-by-convention" and is flexible and extensible, with built-in plugins for Java, Groovy, Scala, web and OSGi. The presentation covers Gradle's basic features, principles, files and collections, dependencies, multi-project builds, plugins and reading materials.
Cool Jvm Tools to Help you Test - Aylesbury Testers VersionSchalk Cronjé
This document summarizes a presentation about cool JVM tools for testing. It introduces the presenter and discusses tools like Spock and Geb for writing readable tests in Groovy. It also covers Ratpack for HTTP testing, Betamax for recording external API responses, and Gradle for running and integrating tests. The presentation provides code examples and outlines how these tools can help write effective tests more efficiently.
Gradle is a flexible, open source build automation tool that uses Groovy as a domain-specific language to define build logic and configuration. It is based on the principle of convention over configuration and provides a rich set of tasks and a directed acyclic graph (DAG) model to declaratively define and manipulate the execution of tasks. Gradle aims to provide a powerful yet user-friendly alternative to tools like Ant and Maven for compiling code, generating packages and archives, managing dependencies, and more.
This presentation provides a brief overview of the history of JavaScript and its ecosystem and highlights the excellent JS support provided by the latest NetBeans IDE. You can find the examples on github: https://github.com/saikos/NetBeansES6Support
This document provides a history of JavaScript and the dynamic web from 1990 to 2015. It discusses how JavaScript started as a scripting language for Netscape in the early 1990s and has since become ubiquitous across the web and is now used for both front-end and back-end development. The document references several articles about the rise of JavaScript and how it has become the dominant programming language. It also provides examples of companies that use JavaScript like Google, Netflix, and PayPal. The document outlines a plan to become a better JavaScript developer including learning the basics, being prepared for interviews, and creating an MVP for investors.
This document provides a history of JavaScript and the dynamic web from 1990 to 2015. It discusses how JavaScript started as a scripting language for Netscape in the early 1990s and has since become ubiquitous across the web in browsers. Major milestones discussed include the introduction of AJAX in 2005, JSON, Node.js in 2009, and ES6 in 2015. The document argues that JavaScript has become the dominant programming language of the enterprise due to its ability to power everything from websites to mobile apps to IoT devices. It references several successful companies that use JavaScript like Google, Netflix, PayPal, and LinkedIn. Finally, it provides a proposed plan for becoming a better JavaScript developer that includes learning the basics, preparing for interviews, and
This document discusses intelligent debugging techniques and in-memory fuzzing. It covers attaching processes for debugging, different types of debugging events, concepts of breakpoints like soft, hard and memory breakpoints. It also discusses hooking techniques like soft and hard hooking. The document demonstrates in-memory fuzzing by taking snapshots of processes, allocating memory, mutating data and restoring processes to find bugs. Python libraries for debugging like Pydbg, IDAPython and fuzzing like PeachFuzz, Sulley are also mentioned.
This document outlines Ugo Cei's presentation "Ruby for Java Programmers". The presentation will cover how to integrate Ruby and Java code, including using bridges like JRuby, XML-RPC, and SOAP. It will also demonstrate sample code for calling Java from Ruby and vice versa. The goal is to help Java programmers learn how Ruby can be used alongside or instead of Java in certain scenarios.
A case study of the usage of Gradle in the Ratpack web framework. First, we'll examine the Ratpack Gradle plugins, including their functionality, implementation, and testing. Next, we'll examine the build script for the Ratpack project itself. Here, we'll discuss various details of the project's build, including handling multiple projects, multiple types of testing, support for multiple styles of target hardware (developer workstations, cloud CI), and more. For each, we'll go over the desired behavior, how it was achieved, and why it was necessary.
The document discusses managing dependencies in Gradle multi-module projects. It presents three problems: 1) managing shared dependencies across modules, 2) changing dependencies that impact repeatable builds, and 3) dependency conflicts when modules are updated separately. For problem 1, it recommends using a gradle.properties file to define shared versions. For problem 2, it introduces the nebula-dependency-lock plugin to lock dependencies until explicitly updated. For problem 3, it notes conflicts can occur if modules are updated independently and provides solutions like dependency locking or pinning versions.
The document provides an overview and cheat sheet for using the OpenShift command line interface. It defines what OpenShift is, lists common commands for login/authentication, managing projects and resources, building and deploying applications, and provides an example of creating a new project, adding users, building an application from source code and image, and checking the status of deployed resources.
Uma introdução ao uso de Sockets usando Golang, apresenta as formas de criar seus próprios Sockets e qual cenário poderia está aplicando Sockets.
Aborda como a arquitetura Rest funciona e qual seria o cenário para sua aplicabilidade comparada com Socket.
A apresentação é uma tentativa de apresentar os recursos e poder do Golang quando o assunto é REST e Socket.
The web is growing fast and online games and other compute-intensive applications expand their user-bases every day. These trends create a growing demand on performance in JavaScript applications. Even though JavaScript has benefited from huge performance improvements in recent years, there is great potential for an even faster web. Browser technologies such as asm.js or Google’s NativeClient enable near-native performance in browsers. More recent efforts led to the specification of WebAssembly, the future vendor-independent standard for native webapps. This talk takes a closer look at Emscripten, a toolchain that transpiles C++ to asm.js. The talk answers questions regarding performance and about the integration with the popular CMake build system.
Extracting Plugins And Gems From Rails AppsJosh Nichols
Rails Plugins and Ruby Gems are the basic mechanism of sharing functionality between multiple projects. This talk will go over extracting functionality into a plugin, testing it, sharing it, and converting it to a gem.
Apache Groovy: the language and the ecosystemKostas Saidis
An overview of the Groovy language and its awesome ecosystem, advocating Groovy as the language of choice for (a) Java developers that want to dive into dynamic languages or (b) for Javascript, Ruby or Python developers that want to dive into the Java platform.
The presentation was given at the 9th FOSSCOMM (16-17 April 2016) organized by the Software Libre Sociecy of the University of Piraues.
This document summarizes Go project layout and practices for a Go web application project. It discusses folder structure, configuration management using environment variables and files, embedding assets, command line interfaces, testing practices including fixtures, and packages for common functions like errors, middleware, models and more.
Phobos is a lightweight JavaScript web application framework that allows all application logic to be written in JavaScript. It runs on the Java platform and supports full-featured IDE development. Phobos integrates JavaScript and Java libraries and allows JavaScript code to be run across client, server, and database tiers for a unified programming model.
qooxdoo is an open-source AJAX framework for building cross-browser web applications. It provides a comprehensive GUI toolkit and tools to build desktop-like rich internet applications. The framework uses object-oriented JavaScript and a build process to package applications for deployment. It aims to support developers through features like debugging, internationalization and IDE integration. The project is open source and maintained by a team of full-time developers.
This document discusses OpenShift v3 and how it can help organizations accelerate development at DevOps speed. It provides an overview of Kubernetes and OpenShift's technical architecture, how OpenShift enables continuous delivery and faster cycle times from idea to production. It also summarizes benefits for developers, integrations, administration capabilities, and the OpenShift product roadmap.
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinLeanIX GmbH
DevOps at LeanIX - Presentation during Startup Camp Berlin 2015. Covering tools like Docker, Jenkins and Ansible.
===
LeanIX offers an innovative software-as-a-service solution for Enterprise Architecture Management (EAM), based either in a public cloud or the client’s data center.
Companies like Adidas, Axel Springer, Helvetia, RWE, Trusted Shops and Zalando use LeanIX Enterprise Architecture Management tool.
Free Trial: http://bit.ly/LeanIXDemoS
This document discusses using various technologies on Google App Engine including JIQL, GaeVFS, RESTlets, scheduled tasks, JRuby on Rails, task queues, XMPP, and Clojure. JIQL emulates a relational database on App Engine's Bigtable datastore. GaeVFS provides a virtual filesystem on Bigtable. RESTlets make RESTful web services easy to implement in Java on App Engine. Scheduled tasks allow for background processing via cron jobs. JRuby on Rails provides a way to run Ruby on Rails applications on App Engine. Task queues allow for asynchronous background processing. XMPP enables instant messaging and peer-to-peer applications. Clojure can also be used
This is a presentation on Google Web Toolkit given at Devfest 2009 in Buenos Aires Argentina on Nov 17, 2009 by Google Developer Advocate, Chris Schalk
Building production-quality apps with Node.jsmattpardee
First presented at DevConf.ru, this presentation makes the case for Node.js as the best platform for user engagement, and discusses Cloud9 IDE's open-source platform for Node apps, Architect.
GraalVM and Oracle's Documentation Trends.pdfohupalo
GraalVM is Oracle's next generation Java Virtual Machine. The document discusses Oracle's approaches to managing GraalVM as both an open source project and commercial product. It describes how Oracle provides documentation, workshops, and certifications to support both the community and enterprise users. Key solutions discussed include maintaining the GraalVM website as an open source project on GitHub, publishing documentation to Oracle Help Center, and providing hands-on learning through Luna Labs and LiveLabs workshops.
Node.js is a JavaScript runtime built on Chrome's V8 engine that allows JavaScript code to be run outside of a browser. It introduces asynchronous and event-driven programming to JavaScript. Native addons allow integrating C/C++ code and libraries into Node.js applications for performance reasons or to interface with legacy code. The N-API provides a stable API for building native addons that is compatible across Node.js versions to avoid breakage. Examples demonstrate how to create asynchronous native addons that interface between JavaScript and C++ code.
Build your operator with the right toolRafał Leszko
The document discusses different tools that can be used to build Kubernetes operators, including the Operator SDK, Helm, Ansible, Go, and operator frameworks like KOPF. It provides an overview of how each tool can be used to generate the scaffolding and implement the logic for a sample Hazelcast operator.
This document provides an overview and agenda for a presentation on Google Web Toolkit (GWT). It begins with introducing GWT as a web framework for developing JavaScript front-end applications in Java. The document then covers how GWT works, its key features like widgets and internationalization, best practices, and a recap of pros and cons. It also discusses GWT's history and available tools, libraries, and frameworks developed by Google and third parties.
A guide to make crashproof libraries
A tips and tricks presentation for Poznań Android Developer Group.
http://www.meetup.com/Poznan-Android-Developer-Group/events/228107133/
Laird Best Practices Ajax World West2008rajivmordani
The document outlines best practices for delivering framework products that include Ajax features, discussing selecting an open source framework over custom, providing a public client-side API, and enabling client-side event publishing and subscription. It also presents case studies of Oracle products that demonstrate these practices, such as using Dojo or jQuery and providing APIs for WebLogic Portal and Application Express.
Going Serverless with Java - a real life storyHerman Lintvelt
It took us a few months to roll out a complete production quality backend system for a new application using AWS, Java and the serverless.com framework. In this talk I want to take you through what we learned. We will see how to get going, how to think about designing your services (hint: DDD), which AWS services to consider, how to deploy, test, monitor & debug it. And then of course all the interesting tips and tricks you don’t find in the documentation, like how to define your API using Swagger, how to keep secrets safe, and 3 different ways to map Lambda events to Java.
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
Cordova APIs
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Domino Designer 8.5 is based on the Eclipse platform and provides Eclipse features like perspectives, views, editors, search, preferences, and more. It allows dynamic loading of components through the OSGi framework. New design elements in Domino Designer 8.5 include XPages, custom controls, and themes, making it more like Lotus Component Developer.
This document discusses developing native Mac applications using Objective-C and Cocoa. It introduces mekentosj as a developer of Papers, an application for managing documents and notes. It provides an overview of Objective-C and the Cocoa API for building Mac apps, and discusses how Papers utilizes features like Core Data, WebKit, PDFKit, and dynamic plugins through Cocoa. The document also promotes development resources from Apple like Xcode 3.0 and the new Xray debugging tool.
Similar to Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged (20)
Node-webkit allows developers to create native desktop applications using HTML, CSS, and JavaScript by embedding Node.js in the Chromium browser framework. It provides access to common web technologies like HTML5 features as well as Node.js modules and desktop capabilities like native menus, file system access, and more. Node-webkit applications can be built for Windows, Mac, and Linux and are useful for building games, editors, file browsers, and offline versions of web apps. More information on developing with node-webkit can be found on its GitHub wiki and in related presentations and podcasts.
Bespin, Skywriter, Ace The Past, Present and Future of online Code EditingFabian Jakobs
More and more sites allow code to be edited in the browser... anything from simple templates all the way up to complete applications integrating both client and server code. The most popular editor for this purpose is probably still <textarea>, which is a terrible code editor (just hit the tab key to see what I mean!)
There's no excuse for just using <textarea> any more. The Ajax.org Cloud9 Editor (Ace) project was born out of Ajax.org's Cloud9 IDE cloud-based coding environment and Mozilla's Bespin/Skywriter project. With this project, we're creating an easily embeddable, "no compromises" editor.
In our talk, we'll show off how you can:
Use Ace in your own projects by adding just a couple of lines to your page
Configure Ace to your tastes
Extend Ace with custom features
Along the way, you'll see a number of Ace's features that go beyond just syntax highlighting: live syntax checking, highlight uses of variables, easy keyboard navigation (even for vim users!) and more.
Kick ass code editing and end to end JavaScript debuggingFabian Jakobs
Cloud9 IDE is aiming to be the IDE for Javascript developers. We have all experienced the Eclipse variants and other Java or C++ IDE's for which webdevelopment and javascript was an afterthought. Extending these applications or customizing them to our needs was done in either Java or C++ and generally very difficult. We are developing applications in javascript to run online for a purpose, why shouldn't you do your application development online too?
This talk gives an overview over the Cloud9 IDE and delves into the technical details of the code editor and the buildin debugger.
With modern JavaScript frameworks like ExtJS, SproutCore or qooxdoo, it is possible to create very rich user interfaces using only open web standards. But how do they do it? How do they work internally?
In this talk I will open the thorax of a simple qooxdoo widget and look at the various layers and building blocks used to implement it. You will learn how the widget is represented in the DOM, how events are handled, and how the layout engine works. Often there is more than a single way to achieve something. In those cases the different options and qooxdoo's specific design decision will be presented.
Masterin Large Scale Java Script ApplicationsFabian Jakobs
Writing large desktop-like web applications is a challenge. Adapting such an application to different markets, languages or brands is even more of a challenge. This talk shows how the open source JavaScript framework qooxdoo can be leveraged to build such a rich internet application. As a real-life example the free web mail client gmx.com is used. This talk discusses the development model, customization and deployment of such an application.
Learn how JavaScript applications of this size and complexity are fundamentally different from classic web applications, and what issues come up when building fast, multi-language, multi-brand JavaScript applications.
Test driven development (TDD) is one of the central techniques in Extreme Programming. However many people dismiss it for GUI applications because it seems to be too hard to get the user interface code under test. This presentation is about how to apply TDD to GUI applications.
Test Driven Development ist eines der wichtigsten Methoden aus dem Extreme Programming um hohe Softwarequalität zu garantieren und agil auf Änderungen reagieren zu können. Es hält sich allerdings sehr hartnäckig die Legende, dass man TDD für die Entwicklung von Benutzeroberlächen nicht anwenden kann. In diesem Vortrag werden Architekturansätze und Techniken vorgestellt, die es erlauben testbare Benutzeroberflächen zu schreiben.
The document discusses a new virtual widget framework called Virtual Widget for the qooxdoo library. The framework uses a virtual pane component that renders only a portion of data to allow for virtual scrolling and variable cell sizes. Additional layers can be added to the pane for features like row coloring, grid lines, or custom cell types. A scroller component is also included to provide scroll bars for the virtual pane.
The document discusses the Virtual Widget Framework, a new approach to web development in qooxdoo 0.8. It allows for virtual scrolling and variable cell sizes in tables. The core component is the VirtualPane, which renders a window of a virtual grid. Additional layers can be added for features like row coloring, grid lines, and embedding widgets or HTML in cells. The framework supports features like selection, focus, cell rendering and editing, headers, grouping, and column resizing. It aims to have low dependencies, no policies or implicit actions, and a small customizable API.
Ajax In Action 2008 - Gui Development With qooxdooFabian Jakobs
This presentation shows the evolution of web application to single page applications. It explains how single page applications are different to classic web applications and how qooxdoo can help building them.
Fabian Jakobs presents on JavaScript tooling for larger applications. He demonstrates linkers to detect dependencies and optimize builds, linters like JSLint and ecmalint to find errors, API documentation tools, and packers/minifiers like YUI Compressor to optimize files for deployment. He shows examples of these tools on a sample filter application to illustrate professional JavaScript tooling.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
Lecture 8 - Qooxdoo - Rap Course At The University Of Szeged
1. Developing web applications with Eclipse RAP Technology
Lecture 08 - Qooxdoo
This presentation is given by
» Fabian Jakobs (1&1)
» Balazs Brinkus
» Istvan Ballok
Date: 23.3.2009.
1
2. Review
General information on the Eclipse RAP Course
Title: Developing web applications with Eclipse RAP technology
Time frame: Spring Semester, 2009 (February - May) (14 lessons)
Schedule: Mondays, 14-16, Room quot;Irinyi 225quot;, University of Szeged
Course is given by:
» CAS Software AG, Karlsruhe; CAS Software Kft., Szeged
» EclipseSource, Karlsruhe
Contact:
» Istvan Ballok, Balazs Brinkus
2
3. Goal of the course
The goal of this course is to enable the attendants to create rich and
interactive web 2.0 applications based on the Ajax framework: Eclipse
Rich Ajax Platform (RAP).
The course focuses on giving a thorough understanding of the
underlying technologies and reserving ample time for hands-on
exercises and tutorials, to transfer a pragmatic knowledge as well.
Each lesson focuses on achieving a well defined goal, making one step
forward in mastering the Eclipse Rich Ajax Platform.
Review 3
4. Contents of this lecture - Qooxdoo
8 23.3. Create a standalone qooxdoo application
» Introduction
» Fabian Jakobs, 1&1
» qooxdoo
» Architecture
» Server based
» Client based
» Workshop
» JavaScript basics
» Getting started
» Tooling
» OOP/TDD
» Layout basics
» Events
4
5. Introduction
Fabian Jakobs
» fabian.jakobs@1und1.de
» JavaScript framework developer at 1&1
» Working on qooxdoo since 2006
» Diploma of Computer Science at the University
Karlsruhe 2006
5
6. 1&1
» Part of United Internet
» Products
» Hosting
» Market leader in Germany
and UK, number 5 in USA
» DSL
» About 3 million DSL
customers in Germany
» Portal
» Market leader in Germany
Introduction 6
7. qooxdoo
» RWT's native browser widget toolkit
» qooxdoo is a framework of its own
» Qooxdoo is more than what is used by RAP
7
10. History
» qooxdoo 0.1 (May 2005)
» Released as open source (LGPL) hosted on Sourceforge
» qooxdoo 0.5 (February 2006)
» First modern widget toolkit
» qooxdoo 0.6 (September 2006)
» Addition of the Table widget and RPC client
» Introduction of name spaces
» qooxdoo 0.7 (June 2007)
» Introduced new JavaScript OOP system
» Dual licenced LGPL/EPL due to integration into RAP
» qooxdoo 0.8 (August 2008)
» Rewrite of the layout/widget system
» New build system
qooxdoo 10
11. qooxdoo 0.7 versus qooxdoo 0.8
» RAP still uses qooxdoo 0.7
» This lecture will cover 0.8
» qooxdoo 0.8 is not API compatible to 0.7
» Differences
» Layout managers work differently
» Core widget API changed
» Theming
» Unchanged
» qooxdoo OO syntax
» Collection of widgets
» The public API of specific widgets (e.g. Table)
qooxdoo 11
13. Server Based
» The RAP model
» All user interface logic runs on the server
Architecture 13
14. Server Based
» Advantages
» (+) Backend communication is trivial
» (+) Secure
» (+) Same Programming language as for the business logic
» (+) Possibility to build native clients from the same code base
» Disadvantages
» (-) Hard to react on high frequency user events (e.g. mouse move)
» (-) Hard to extend with custom widgets
» (-) No offline mode possible
Architecture 14
15. Client Based
» The qooxdoo model
» User interface logic runs in the browser
» Uses remote procedure calls (RPC) to communicate with the
backend
Architecture 15
16. Client Based
» Advantages
» (+) User interaction events can be handled locally
» (+) It's possible to leverage special browser features
» (+) Offline support possible
» (+) Easy to write custom widgets
» Disadvantages
» (-) Backends expose functionality as remote services
» (-) Remote services must be secured
» (-) Different technology stack on backend and frontend
Architecture 16
19. Installation
Getting Started
1. Install Python
1. Download the ActivePython 2.6 installer
2. Install ActivePython
3. Verify the Installation
» Type python in the command shell
2. Install qooxdoo
1. Download the qooxdoo SDK
2. Unzip the qooxdoo SDK to C:/
Workshop 19
20. Build a qooxdoo Skeleton
Getting Started
» Create a new project in the Eclipse Workspace
» File / New / Other.. / General - Project
» Name of the project: convert
» copy the location of the project resource from the project properties
» e.g. C:_DEV_workspacews_qooxdooconvert
» Navigate to the project folder using the command line
» and create a qooxdoo skeleton application
» C:>cd C:_DEV_workspacews_qooxdooconvert
» C:_DEV_workspacews_qooxdooconvert>
c:qooxdoo-0.8.2-sdktoolbincreate-application.py
-n convert
» C:_DEV_workspacews_qooxdooconvert>cd convert
» C:_DEV_workspacews_qooxdooconvertconvert>
generate.py source
» Refresh the project in Eclipse (F5)
» Open the source/index.html in the Browser
Workshop 20
22. Tooling
» When we started nearly no tools existed
» But tools are necessary for professional development
» We had to build our own
» qooxdoo JavaScript tools
» Linker
» Optimizer/Packer
» Unit testing
» API documentation
» Inspector
» Lint
» Third party tools
» FireBug
» Safari Web Inspector
» Opera Dragonfly
» IE8 Developer Toolbar
Workshop 22
23. Linker
Tooling
» Detect dependencies between JavaScript files
» Sorted list of files to include
» Essential for large applications
» generate.py source, generate.py build
Workshop 23
25. Unit Testing
Tooling
» Unit testing framework like JUnit
» generate.py test
» generate.py test-source
Workshop 25
26. API documentation
Tooling
» Extract API documentation from source code
» JavaDoc like comments in the code
» Can be used for custom applications
» generate.py api
Workshop 26
28. Lint
Tooling
» Static code analysis
» Find common coding mistakes
» Enforce coding guidelines
» Especially useful in dynamic languages, where errors
» Often occur only at runtime
» Only under certain conditions
» Have strange side effects and are hard to find
» Finds e.g.
» Undefined variables
» Unused variables
» Redefnition of map keys
» generate.py lint
Workshop 28
29. Exercise
Tooling
» Run these jobs and check the results
Command Result
generate.py source source/index.html
generate.py test test/index.html
generate.py test-source test/index-source.html
generate.py api api/index.html
generate.py inspector source/inspector.html
generate.py lint (output in the console)
generate.py build build/index.html
Workshop 29
30. OOP
» JavaScript provides only basic OOP features
» Prototype based inheritance
» No interfaces
» calling overridden methods in super classes is hard
» ...
» The language is flexible enough to create a meta OO model on top
» This is what most JavaScript frameworks do
Workshop 30
32. qooxdoo vs. Java OOP
OOP
» Inheritance
» Properties
» Automatically generate accessor and mutator methods
» Optional change events on value changes
Workshop 32
33. Summary
OOP
» qooxdoo supports most of Java's OOP features
» Classes
» Interfaces
» Namespaces
» Calling overridden methods in base classes
» Conventions for access control
» Additional OO features
» Dynamic properties
» Mixins
» Add functionality to existing classes
» Concept used in Objective-C, Ruby, Python
» Unsupported Java OO features
» Method/constructor overloading
Workshop 33
34. Test Driven Development
OOP
» Principles
» Don't write production code unless it makes a failing test pass
» Don't write more unit tests than is sufficient to fail
» Don't write more production code than is sufficient to pass the failing test
» TDD in qooxdoo
» qx.dev.unit.TestCase is the base class for all test cases
» Test methods are instance methods with a test prefix
» The TestCase class provides a collection of assertion methods (e.g.
assertEquals)
Workshop 34
35. Exercise
OOP
1. Write the test
» Write the class convert.test.TemperatureUtil, which
extends qx.dev.unit.TestCase
» Write a unit test for celsiusToFahrenheit.
» Known values: 100°C = 212°F, 0°C = 32°F, -17.78°C = 0°F
» Run the test and see it fail
2. Implement the conversion
» Write the static class convert.TemperatureUtil
» Write the static method celsiusToFahrenheit
» Formula: fahrenheit = (celsius * 1.8) + 32;
» Run the test and see it pass
3. Write test and implementation for fahrenheitToCelsius
Workshop 35
37. Widget Tree
Widgets/Layout
» All the widgets in a user interface
are composed in a tree like
structure
» composite design pattern
» each control can be added to a
composite control
» added using the parent's add
method
» Reparenting is possible (unlike in
SWT)
Workshop 37
38. Layout Manager
Widgets/Layout
» Very similar to SWT
» a Layout Manager is assigned to the parent
» corresponding Layout Data can be assigned to each child widget,
to control the layouting process
» can be set as the second parameter of the parent's add method or by calling
setLayoutData on the child.
Workshop 38
40. Basic/Canvas Layout (2/5)
Widgets/Layout
» Absolute positioning
» Canvas extends the
functionality of Basic and
supports
» Percent sizes and coordinates
» Attaching to the bottom and
right edges
Workshop 40
41. HBox/VBox (3/5)
Widgets/Layout
» places child widgets horizontally (HBox) or vertically (VBox) next to
each other
» Layout properties
» flex to configure growing/shrinling
» width respectivley height for percent sizes
Workshop 41
42. Dock (4/5)
Widgets/Layout
» Docks children to one of the parent's edges
» Layout properties
» edge - one of north, east, south, west or center
» width optional percent width
» height optional percent height
Workshop 42
43. Grid (5/5)
Widgets/Layout
» Places widgets into a two
dimensional grid
» Each cell can contain at most
one widget
» Supports child widgets, which
span several cells or columns
» Layout properties
» row, column
» rowSpan, colSpan
Workshop 43
44. Exercise - Temperature Converter UI
Widgets/Layout
1. Create the class
convert.Converter, which
extends
qx.ui.window.Window
2. Show this window by adding
these lines to
convert.Application:
var converter = new convert.Converter();
converter.moveTo(50, 30);
converter.open();
3. Position the labels and text fiels into a grid.
Workshop 44
45. Events
» User interaction result in events
» Events can be handled by using event listeners
» in JavaScript/qooxdoo
» in Java/SWT
» Event types
» mouse
» keyboard
» focus
» selection
» execute
» ...
Workshop 45
46. Exercise - React on Text Input
Events
1. Add a property celsius. This is the reference temperature
2. Add getFahrenheit, which returns the converted celsius value
3. Add setFahrenheit, which stores the converted value in the
celsius property
4. Add changeValue event listeners to the celsius and fahrenheit
input fields
» Read the input field's value (.getValue())
» Convert it to a number (parseInt)
» Call setFahrenheit/setCelsius with this value
Workshop 46
47. Theming
» Change the look & feel without changing the application code
Workshop 47
49. Possible Improvements
» Error handling if user enters an invalid number
» Use localized number formatter and parser
» Use spinner widgets
» ...
Be creative - Play with the code!
Workshop 49
50. Resources
» qooxdoo
» Online manual
» API viewer
» Demo browser
» JavaScript
» quot;JavaScript: The Good Parts: Working with the Shallow Grain of JavaScriptquot;
by Douglas Crockford
» quot;JavaScript. The Definitive Guidequot; by David Flanagan
50
51. License
Licensed under Creative Commons
Attribution Non-Commercial No Derivatives
http://creativecommons.org/licenses/by-nc-nd/3.0/
51