VJET brings the best of Java and JavaScript together by adding typing and Java-like modeling concepts to JavaScript. This allows JavaScript to benefit from features like contracts, namespaces, inheritance and dependency management. VJET achieves semantic equivalence between Java and JavaScript by enabling Java-like classes, interfaces, generics and other constructs in JavaScript. This combines the proven Java paradigm with JavaScript for large scale development.
Vaadin 7 is an open source web application framework that allows developers to build rich client-side web applications using Java on the server-side and JavaScript on the client-side, with new features in Vaadin 7 including improved component architecture, support for SASS styling, and enhanced widget communication through state-based RPC.
Data Binding is an official Google library that allows binding UI components in layouts to data sources in apps. It generates bindings during compilation that match views to variables, and automatically executes changes to UI when data is updated. This avoids manually finding views by ID and setting values, and makes it easier to update UIs when data changes occur.
This document discusses different types of components in WebObjects, including standard components, non-synchronizing components, stateless components, and dynamic components. It provides examples of how to implement each type of component by subclassing the appropriate base classes and overriding specific methods. The document also includes information on performance considerations for each type of component and recommendations for when each type should be used.
This document provides a cheat sheet of ActionScript methods, properties, and classes. It includes lists of common methods for classes like MovieClip, TextField, Button, and Sound. The cheat sheet acts as a quick reference guide for looking up syntax and functionality in ActionScript 2.0.
This document provides a summary of various ActionScript methods and properties organized by category. It includes sections for common classes like MovieClip, UI components, containers, strings, sounds, and more. Each section lists relevant methods and properties in a table format for easy reference.
The document discusses memory management in Objective-C. It covers topics like when to create objects, instance variable scope, property attributes, setter methods, releasing objects, and sending messages to nil objects. Key terms mentioned include retain, release, copy, assign, autorelease, and properties like readonly, readwrite, strong, weak.
Blocks allow passing code as a parameter or return value from functions. They capture the context in which they are defined. Grand Central Dispatch (GCD) simplifies concurrent programming using dispatch queues, which can execute blocks asynchronously or synchronously, and dispatch sources which attach blocks to system events. Dispatch groups and semaphores help coordinate work across dispatch queues.
Vaadin 7 is an open source web application framework that allows developers to build rich client-side web applications using Java on the server-side and JavaScript on the client-side, with new features in Vaadin 7 including improved component architecture, support for SASS styling, and enhanced widget communication through state-based RPC.
Data Binding is an official Google library that allows binding UI components in layouts to data sources in apps. It generates bindings during compilation that match views to variables, and automatically executes changes to UI when data is updated. This avoids manually finding views by ID and setting values, and makes it easier to update UIs when data changes occur.
This document discusses different types of components in WebObjects, including standard components, non-synchronizing components, stateless components, and dynamic components. It provides examples of how to implement each type of component by subclassing the appropriate base classes and overriding specific methods. The document also includes information on performance considerations for each type of component and recommendations for when each type should be used.
This document provides a cheat sheet of ActionScript methods, properties, and classes. It includes lists of common methods for classes like MovieClip, TextField, Button, and Sound. The cheat sheet acts as a quick reference guide for looking up syntax and functionality in ActionScript 2.0.
This document provides a summary of various ActionScript methods and properties organized by category. It includes sections for common classes like MovieClip, UI components, containers, strings, sounds, and more. Each section lists relevant methods and properties in a table format for easy reference.
The document discusses memory management in Objective-C. It covers topics like when to create objects, instance variable scope, property attributes, setter methods, releasing objects, and sending messages to nil objects. Key terms mentioned include retain, release, copy, assign, autorelease, and properties like readonly, readwrite, strong, weak.
Blocks allow passing code as a parameter or return value from functions. They capture the context in which they are defined. Grand Central Dispatch (GCD) simplifies concurrent programming using dispatch queues, which can execute blocks asynchronously or synchronously, and dispatch sources which attach blocks to system events. Dispatch groups and semaphores help coordinate work across dispatch queues.
After a short introduction to object orientation, this lecture gives an overview of the Smalltalk programming language.
This lecture was given on November 10, 2008, during the summer school on programming languages (http://pleiad.dcc.uchile.cl/pl2008/)
The document describes Eugene Fedorenko's blog about dynamically generating view objects, view definitions, and entity definitions in ADF. It provides code snippets for creating dynamic view objects and view definitions based on an agile entity name. It also shows how to dynamically define entity definitions and add agile attributes by extending the appropriate classes and calling necessary registration methods.
There are several key differences between identity and sequence in SQL Server 2012. Identity is dependent on and a property of a table, while sequence is independent and an object. Identity requires inserting a new record to generate a new ID, while sequence allows directly viewing the next ID. Sequence allows for cycling, caching, and defining a maximum value, which identity does not support.
The main differences between temp tables and table variables are that temp tables are stored in tempdb and can be used by multiple users, while table variables are stored in memory and only available to the current user. Temp tables support all DDL operations like indexes, while table variables only support clustered indexes. Temp tables also support transactions and functions cannot use table variables.
Dart, le nouveau langage Web de Google présenté au public en octobre 2011 a pour objectif de proposer une alternative au JavaScript.
Bien que la version finale ne soit pas encore disponible (pour cela il faudra attendre cet été), Dart est utilisable dès aujourd'hui.
Au cours de cette présentation sont introduits les éléments suivants :
- comment Dart permet de développer des applications clientes aussi bien que serveurs,
- le langage,
- les outils permettant un développement industrialisé et une productivité accrue.
Java bean properties can be manipulated via getter and setter methods. Properties typically correspond to fields that define the internal state of an object. Properties can be active, bound, constrained, or standalone. Active properties firing events when changed. Bound properties use events to notify listeners of property changes. Constrained properties allow listeners to veto property changes. Simple properties use getter and setter methods to access internal variables.
The document appears to be notes from a training or workshop about using fragments and loaders in Android application development. It includes code snippets demonstrating how to create and manage fragments, pass data between fragments using bundles, use loaders to asynchronously load and display data, and integrate fragments with viewpagers.
The document discusses Java Database Connectivity (JDBC) and how it allows Java code to execute SQL statements inside relational databases. It covers the JDBC API and how it provides a standard interface to different databases. It also discusses the JDBC-ODBC bridge which allows Java code to access databases via ODBC. The document provides an example of JDBC code to connect to a database, execute a query, and access the result set. It discusses using connection pooling and JNDI lookups in J2EE applications to connect to databases.
The document discusses dynamically generating view objects (VOs) and their definitions in Oracle Application Development Framework (ADF). It describes retrieving an entity definition, creating a VO definition by extending the ViewDefImpl class and setting properties. If a VO does not exist, the definition is used to create a new VO instance. Attribute definitions are added by retrieving attributes from the entity definition.
This document introduces GUI development in Java using the Abstract Window Toolkit (AWT) and Java Foundation Classes (JFC). It discusses containers, layout managers, events, and event handling. The key GUI components introduced are JFrame for top-level windows, JPanel for grouping components, and using layout managers like BorderLayout and GridLayout to position components. It also covers adding event listeners to components to handle user interactions.
eROSE is a tool that guides programmers in Eclipse by recommending related changes based on mining associations from a software project's history. It predicts 33% of changed entities and 70% of transactions contain a changed entity within the top three recommendations. Precision averages 0.29 while recall averages 0.33 for entities and 0.44 for files. eROSE's recommendations improve over time with more data and feedback from users. It will be extended in upcoming releases to integrate annotations for risk awareness and management.
This document introduces JCR (JSR-170 and JSR-283), including:
1. An overview of JSR-170 and the development of JCR 1.0.
2. Details about JCR 2.0 such as backwards compatibility, reorganization, and new features like access control management, retention policies, and versioning.
3. Descriptions of implementations of JCR standards like Apache Jackrabbit and frameworks built on top of it like Apache Sling.
The document discusses caching techniques in Python. It begins with an introduction to caching and how it is similar to manual memory management. It then covers common caching patterns like memoization and cache invalidation. Some common problems with caching are discussed such as invalidating too much/little data and dependencies between cached values. Finally, it presents solutions like using process-level caching with dicts, application-level caching with Memcache, and batch invalidation of keys.
The document discusses a tool called HATARI that helps identify risky locations in code based on past fix-inducing changes. HATARI calculates a risk score for each location based on the number of past fix-inducing changes compared to the total number of changes. It visualizes risk scores with annotations to show developers potentially risky areas. HATARI will be made open source on November 1st and is available at http://www.st.cs.uni-sb.de/softevo/.
The document discusses several Java technologies presented at the JJUG CCC 2010 Fall conference, including XML SmartDoc, Relaxer, SimpleModeler, and g3. It focuses on g3, a framework built using Scala that utilizes DSLs and supports REST/Atom, event-driven architectures, and integration patterns like splitter/aggregator. Key-value stores and CQRS are presented as alternatives to relational databases for building scalable applications.
La persistenza dei dati è una caratteristica fondamentale di ogni applicazione, e quasi sempre la scelta ricade sull’utilizzo di un database relazionale. Java, fin dalle sue prime versioni, ha avuto a disposizione la libreria JDBC per accedere a tale tipo di database. In questa presentazione si mostrerà come utilizzare la libreria JDBC, mostrandone pregi e limiti. In seguito si mostrerà l’utilizzo tradizionale di Hibernate, forse il più famoso e diffuso degli Object/Relational Mapper (ORM), che permettono di trattare i dati relazionali inserendoli all’interno di oggetti. Infine si introdurrà la Java Persistence API (JPA), la libreria di persistenza ORM introdotta con la Java Enterprise Edition (JEE) 5.
This document introduces the Distributed Context and Interactions (DCI) architectural pattern. DCI models an application as a network of communicating objects that work together to achieve a common goal through use cases. Unlike class-oriented designs, DCI focuses on objects, their states and behaviors within different contexts. It represents the user's mental model more closely by separating an object's persistent data from its transient roles and behaviors in various use cases. DCI allows flexible and maintainable development by making it easy to add or modify system behaviors without changing the core data model. While tied to specific frameworks, DCI promotes an object-oriented way of thinking that is closer to how people naturally conceptualize a problem domain.
The document discusses using annotations in Java, providing examples of annotations for servlets, EJBs, web services, CDI, and using frameworks like JUnit, Spring, Javassist, and ASM. It presents code samples to define servlets, session beans, RESTful and SOAP web services, and component injection using annotations instead of XML configurations. The document also demonstrates how to programmatically read annotation values and metadata using reflection, Javassist, and ASM.
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.
This document summarizes the evolution of Java EE technologies from version 1.2 to 7. It discusses the major changes and improvements to several Java EE specifications over the years including JMS, JPA, Bean Validation, and JAX-RS. The document compares the older APIs to the newer simplified APIs introduced in Java EE 7, highlighting configuration, usage, and other differences. It focuses on simplifying common tasks like resource configuration, object persistence, validation, and client communication.
Vaadin 7 is an introduction to the Vaadin framework. Key ideas of Vaadin 7 include rich components, a server+client architecture that runs entirely on the Java server, and embracing the Java programming language. New features in Vaadin 7 include a renewed JavaScript architecture, Sass support, redesigned forms, and built-in high level view management. The roadmap for Vaadin 7.1 includes server push using Atmosphere, a new calendar component, and limited IE 10 support.
Доклад включает в себя рассмотрение ключевых особенностей библиотеки. Также описывает обработку событий внутри библиотеки и в сформированных биндингах.
Дополнительно рассматривается создание собственных компонентов, расширяющих возможности элементов интерфейса, и в конце будет уделено отдельное внимание реализации двустороннего биндинга.
After a short introduction to object orientation, this lecture gives an overview of the Smalltalk programming language.
This lecture was given on November 10, 2008, during the summer school on programming languages (http://pleiad.dcc.uchile.cl/pl2008/)
The document describes Eugene Fedorenko's blog about dynamically generating view objects, view definitions, and entity definitions in ADF. It provides code snippets for creating dynamic view objects and view definitions based on an agile entity name. It also shows how to dynamically define entity definitions and add agile attributes by extending the appropriate classes and calling necessary registration methods.
There are several key differences between identity and sequence in SQL Server 2012. Identity is dependent on and a property of a table, while sequence is independent and an object. Identity requires inserting a new record to generate a new ID, while sequence allows directly viewing the next ID. Sequence allows for cycling, caching, and defining a maximum value, which identity does not support.
The main differences between temp tables and table variables are that temp tables are stored in tempdb and can be used by multiple users, while table variables are stored in memory and only available to the current user. Temp tables support all DDL operations like indexes, while table variables only support clustered indexes. Temp tables also support transactions and functions cannot use table variables.
Dart, le nouveau langage Web de Google présenté au public en octobre 2011 a pour objectif de proposer une alternative au JavaScript.
Bien que la version finale ne soit pas encore disponible (pour cela il faudra attendre cet été), Dart est utilisable dès aujourd'hui.
Au cours de cette présentation sont introduits les éléments suivants :
- comment Dart permet de développer des applications clientes aussi bien que serveurs,
- le langage,
- les outils permettant un développement industrialisé et une productivité accrue.
Java bean properties can be manipulated via getter and setter methods. Properties typically correspond to fields that define the internal state of an object. Properties can be active, bound, constrained, or standalone. Active properties firing events when changed. Bound properties use events to notify listeners of property changes. Constrained properties allow listeners to veto property changes. Simple properties use getter and setter methods to access internal variables.
The document appears to be notes from a training or workshop about using fragments and loaders in Android application development. It includes code snippets demonstrating how to create and manage fragments, pass data between fragments using bundles, use loaders to asynchronously load and display data, and integrate fragments with viewpagers.
The document discusses Java Database Connectivity (JDBC) and how it allows Java code to execute SQL statements inside relational databases. It covers the JDBC API and how it provides a standard interface to different databases. It also discusses the JDBC-ODBC bridge which allows Java code to access databases via ODBC. The document provides an example of JDBC code to connect to a database, execute a query, and access the result set. It discusses using connection pooling and JNDI lookups in J2EE applications to connect to databases.
The document discusses dynamically generating view objects (VOs) and their definitions in Oracle Application Development Framework (ADF). It describes retrieving an entity definition, creating a VO definition by extending the ViewDefImpl class and setting properties. If a VO does not exist, the definition is used to create a new VO instance. Attribute definitions are added by retrieving attributes from the entity definition.
This document introduces GUI development in Java using the Abstract Window Toolkit (AWT) and Java Foundation Classes (JFC). It discusses containers, layout managers, events, and event handling. The key GUI components introduced are JFrame for top-level windows, JPanel for grouping components, and using layout managers like BorderLayout and GridLayout to position components. It also covers adding event listeners to components to handle user interactions.
eROSE is a tool that guides programmers in Eclipse by recommending related changes based on mining associations from a software project's history. It predicts 33% of changed entities and 70% of transactions contain a changed entity within the top three recommendations. Precision averages 0.29 while recall averages 0.33 for entities and 0.44 for files. eROSE's recommendations improve over time with more data and feedback from users. It will be extended in upcoming releases to integrate annotations for risk awareness and management.
This document introduces JCR (JSR-170 and JSR-283), including:
1. An overview of JSR-170 and the development of JCR 1.0.
2. Details about JCR 2.0 such as backwards compatibility, reorganization, and new features like access control management, retention policies, and versioning.
3. Descriptions of implementations of JCR standards like Apache Jackrabbit and frameworks built on top of it like Apache Sling.
The document discusses caching techniques in Python. It begins with an introduction to caching and how it is similar to manual memory management. It then covers common caching patterns like memoization and cache invalidation. Some common problems with caching are discussed such as invalidating too much/little data and dependencies between cached values. Finally, it presents solutions like using process-level caching with dicts, application-level caching with Memcache, and batch invalidation of keys.
The document discusses a tool called HATARI that helps identify risky locations in code based on past fix-inducing changes. HATARI calculates a risk score for each location based on the number of past fix-inducing changes compared to the total number of changes. It visualizes risk scores with annotations to show developers potentially risky areas. HATARI will be made open source on November 1st and is available at http://www.st.cs.uni-sb.de/softevo/.
The document discusses several Java technologies presented at the JJUG CCC 2010 Fall conference, including XML SmartDoc, Relaxer, SimpleModeler, and g3. It focuses on g3, a framework built using Scala that utilizes DSLs and supports REST/Atom, event-driven architectures, and integration patterns like splitter/aggregator. Key-value stores and CQRS are presented as alternatives to relational databases for building scalable applications.
La persistenza dei dati è una caratteristica fondamentale di ogni applicazione, e quasi sempre la scelta ricade sull’utilizzo di un database relazionale. Java, fin dalle sue prime versioni, ha avuto a disposizione la libreria JDBC per accedere a tale tipo di database. In questa presentazione si mostrerà come utilizzare la libreria JDBC, mostrandone pregi e limiti. In seguito si mostrerà l’utilizzo tradizionale di Hibernate, forse il più famoso e diffuso degli Object/Relational Mapper (ORM), che permettono di trattare i dati relazionali inserendoli all’interno di oggetti. Infine si introdurrà la Java Persistence API (JPA), la libreria di persistenza ORM introdotta con la Java Enterprise Edition (JEE) 5.
This document introduces the Distributed Context and Interactions (DCI) architectural pattern. DCI models an application as a network of communicating objects that work together to achieve a common goal through use cases. Unlike class-oriented designs, DCI focuses on objects, their states and behaviors within different contexts. It represents the user's mental model more closely by separating an object's persistent data from its transient roles and behaviors in various use cases. DCI allows flexible and maintainable development by making it easy to add or modify system behaviors without changing the core data model. While tied to specific frameworks, DCI promotes an object-oriented way of thinking that is closer to how people naturally conceptualize a problem domain.
The document discusses using annotations in Java, providing examples of annotations for servlets, EJBs, web services, CDI, and using frameworks like JUnit, Spring, Javassist, and ASM. It presents code samples to define servlets, session beans, RESTful and SOAP web services, and component injection using annotations instead of XML configurations. The document also demonstrates how to programmatically read annotation values and metadata using reflection, Javassist, and ASM.
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.
This document summarizes the evolution of Java EE technologies from version 1.2 to 7. It discusses the major changes and improvements to several Java EE specifications over the years including JMS, JPA, Bean Validation, and JAX-RS. The document compares the older APIs to the newer simplified APIs introduced in Java EE 7, highlighting configuration, usage, and other differences. It focuses on simplifying common tasks like resource configuration, object persistence, validation, and client communication.
Vaadin 7 is an introduction to the Vaadin framework. Key ideas of Vaadin 7 include rich components, a server+client architecture that runs entirely on the Java server, and embracing the Java programming language. New features in Vaadin 7 include a renewed JavaScript architecture, Sass support, redesigned forms, and built-in high level view management. The roadmap for Vaadin 7.1 includes server push using Atmosphere, a new calendar component, and limited IE 10 support.
Доклад включает в себя рассмотрение ключевых особенностей библиотеки. Также описывает обработку событий внутри библиотеки и в сформированных биндингах.
Дополнительно рассматривается создание собственных компонентов, расширяющих возможности элементов интерфейса, и в конце будет уделено отдельное внимание реализации двустороннего биндинга.
This document provides an overview of React Native, including what it is, how it works, and its features and capabilities. Some key points:
- React Native allows building native mobile apps using JavaScript and React by rendering to real native UI components. It provides cross-platform development for iOS and Android.
- Apps are built using familiar React components, props, state, lifecycle methods, etc. but render to native mobile UI elements instead of HTML.
- It includes common mobile components like View, Text, Image, etc. and access to native device features and APIs.
- Developers can create custom native iOS and Android modules and components to integrate with native code and libraries.
- Tools like
This document provides instructions for setting up a Maven project in Eclipse that uses JSF, RichFaces, JDBC, and the JXL API for Excel export. It includes details on creating the Maven POM file, configuring web.xml, adding dependencies, and includes code snippets for controllers and other classes needed for the project functionality.
The document provides templates and examples for creating Swing-based GUI applications, servlets, Java Server Pages (JSP), Java Database Connectivity (JDBC), Java Server Faces (JSF), Enterprise Java Beans (EJB), Hibernate, Struts, and web services in Java. It includes templates for common GUI components, servlets, JSP tags, database queries, managed beans, navigation rules, entity beans, Hibernate mappings, actions, and web service providers/consumers.
The document discusses programming paradigms and introduces aspect-oriented programming (AOP). It provides an example of implementing logging functionality as an aspect to separate cross-cutting concerns from the core program logic. The example of a health monitoring system using remote method invocation (RMI) demonstrates how AOP can help modularize distributed functionality and address issues like tangled and spread code.
Paradigmas de linguagens de programacao - aula#9Ismar Silveira
The document discusses programming paradigms and presents an example of implementing a health complaint tracking system using aspects of programming (AOP) to modularize distributed functionality. It describes how AOP can be used to separate the core object-oriented code from cross-cutting distribution concerns implemented through remote method invocation (RMI). The example shows how an aspect module centralizes the RMI-related code and avoids tangling it within core classes.
The easy way to develop Java applications has always been the standard stack (Spring, JEE, SQL) that confirms the LAMP equivalent in Java-speak. This presentation compares this model with a real use case based on Guice, Jersey and AppEngine.
Joose is a meta object system for JavaScript that allows developers to write well-structured, expressive, declarative, and maintainable JavaScript applications using classes, interfaces, mixins, modules and other object-oriented programming features. It aims to bring features from languages like Java, C#, Smalltalk, CLOS, Ruby, and Perl 5/6 to JavaScript in a native way. Joose provides a declarative syntax for defining these features and also includes meta features for introspecting and manipulating the defined classes and objects.
The document summarizes the key new features introduced in each version of Java from JDK 1.0 to Java SE 8. Some major enhancements included strings in switch statements in Java 7, binary and underscore literals, multi-catch exceptions, try-with-resources for automatic resource management, and lambda expressions in Java 8.
"Android Data Binding в массы" Михаил АнохинFwdays
Рассмотрим что это такое, как работает, какие возможности предоставляет библиотека, как обрабатываются события внутри бибилиотеки и фрагменты кода сгенерированные для биндингов.
Также узнаем как добавить библиотеку в проект и на практических примерах оценим ее достоинства и недостатки при использовании в проекте.
This document provides an overview and introduction to Groovy and Grails. It begins with an introduction by the presenter and then provides information on Groovy, including how to write a simple "Hello World" program in Groovy and examples demonstrating Groovy features like closures and metaprogramming. It also covers Grails and what is included in a basic Grails application like generators, domain models, views, controllers, and tag libraries. Key benefits are highlighted but also some risks and limitations.
The world of open source libraries and tools is vast for Android developers. Writing apps using solely Android SDK is impractical. Libraries can help you in many ways. They can speed up your development, save you creating boilerplate code and dealing with platform fragmentation, simplify your code and make it more readable and maintainable. In the talk I’m showing how several truly useful libraries can help a developer.
Presented at MobCon Europe 2017.
This document discusses new features in Java 14 including switch expressions that allow fall-through without breaks, pattern matching for instanceof, more informative NullPointerExceptions, records to simplify object-oriented code, and text blocks with minor tweaks from Java 13. Records are a preview feature that allow defining classes as records to automatically generate common components like constructors, getters, equals, and hashCode methods.
The Mayans Lost Guide to RxJava on AndroidFernando Cejas
This document provides an introduction and overview of RxJava. Some key points:
- RxJava is a library for composing asynchronous and event-based programs using observable sequences. It implements Reactive Extensions (ReactiveX) for the Java VM.
- Using RxJava can help address issues with concurrency, callbacks, and composing asynchronous operations in Java. It promotes a reactive style of programming.
- The core abstractions in RxJava are Observables (which emit notifications), Subscribers (which receive notifications), and Operators (which allow transformation and manipulation of observable sequences).
- Examples are provided of how to use RxJava with Clean Architecture, including reactive presenters, use cases that
This document discusses the T2 framework and thread safety in Java. It provides an overview of the T2 framework, its components like pages, plugins and container adapters. It then discusses thread safety issues in Java like volatile fields and the use of synchronized, Lock and Atomic classes. It analyzes whether the T2 page implementation is thread-safe and provides references for further reading.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...alexjohnson7307
Predictive maintenance is a proactive approach that anticipates equipment failures before they happen. At the forefront of this innovative strategy is Artificial Intelligence (AI), which brings unprecedented precision and efficiency. AI in predictive maintenance is transforming industries by reducing downtime, minimizing costs, and enhancing productivity.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
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.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
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.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
3. What’s Missing in JavaScript
> Contract based design and programming
strongly typed API
interfaces
> Namespace management
packages
> Data encapsulation
visibility and access control
> Classic inheritance
> Dependency management
imports
3
4. Our Answer:
Semantic Equivalence
> Bring the best of Java to JavaScript
> Put the “Java” in JavaScript
How?
> Add typing system to JavaScript
> Enable Java-like modeling concepts and
programming constructs for JavaScript
4
5. Why Java-Like?
> Proven modeling and programming paradigm
> Proven tooling and process support
> Proven manageability of large-scale enterprise
applications
Break down the barriers between Java and JavaScript
AND
Enable large scale JavaScript development
5
6. TM TM
Bring the Best of Java to JavaScript
> package, imports
> class, interface, enum, abstract class, inner and
anonymous class, mixin, o-type
> extends and implements
> generics
> static and instance
> formal constructors, properties and methods
> static initialization
> super and override
> overloaded constructors and methods
> modifiers: public, protected, private, final
6
7. VJET Package and Class
Package
Class = ctype
package x.y.z;
vjo.ctype('x.y.z.Person')//<public
public class Person {
(Java) (JS)
Public modifier
7
8. VJET Interfaces and Generics
vjo.itype('a.b.c.IFoo<T>') //< public
package a.b.c; .protos({
public interface IFoo<T> { //>public T getName();
public T getName(); getName: vjo.NEEDS_IMPL
} (Java) }) (JS)
Generic for type
Generic for return type
8
10. VJET Enum
Enum = etype
package x,y,z; vjo.etype(‘x.y.z.MyEnum') //< public
public enum MyEnum { .values("a,b,c")
a,b,c .endType(); (JS)
} (Java)
names
10
11. VJET Static and Instance Properties
.props({
// Static goes here
public static final int MAX = 12; MAX:12 //< public final int
})
.protos({
// Instance goes here
m_name:"Justin"//<private String
private String m_name = “Justin";
(Java) }) (JS)
11
12. VJET Typing and Semantic Declaration
> VJET comment syntax uses familiar Java-like declaration
syntax, with a directional indicator: //> or //<
> VJET comment syntax can be expressed on one line
.protos({ final Modifier
m_mother:null, //< private final Tiger
Access Modifier
//> public void hunt(IAnimal pray)
hunt:function(pray){ Type
this.roar();
this.base.hunt(pray);
}, (JS)
12
13. VJET Constructor
Person = constructs in VJET
Parameter type
.protos({
public Person(String name){ //>public constructs(String name)
(Java) constructs:function(name){
} } (JS)
})
Access modifier
Constructs defined in protos
13
14. VJET Methods
Return Type
Parameter type
public void setName(String name) { //> public void setName(String)
m_name = name; setName:function(name){
} (Java) this.m_name=name;
} (JS)
Access modifier
14
15. VJET Static Property
Final Modifier
Type
Access
.props({
public static final int MAX = 12; MAX:12 //<public int final
(Java) }) (JS)
15
16. VJET Overloading
No argument
public void doIt() { //> public void doIt()
} //> public void doIt(String)
doIt:function(name){
public void doIt(String foo) { // internally must handle
} // variation – our code gen
(Java) // helps here
}
(JS)
String argument
16
17. VJET Varargs
Varargs
public void a(Date... arg){ //>public void a(Date... arguments)
a:function(){
} (Java)
} (JS)
17
18. VJET Static Initialization
vjo.ctype('x.y.z.Person')
static { .inits(function(){
String mystatic = “test”;
(Java)
vars_mystatic==“test” //<String
mystatic “test” //<String
}
}).endType(); (JS)
A A
B C B C
Class loader – handles static init VJET Runtime – handles static init
Where a circular dependency exists Where a circular dependency exists
18
19. Sample VJET Type
vjo.ctype('javaone.j4j.oom.Tiger') //< public
.needs(['javaone.j4j.oom.IAnimal','vjo.java.lang.System'])
.inherits('javaone.j4j.oom.Cat')
.satisfies('javaone.j4j.oom.IPanthera')
.props({
//> public String getSpeciesType()
getSpeciesType:function(){
return "CAT";
}
})
.protos({
m_mother:null, //< private final Tiger
//> public constructs(Tiger mother)
constructs:function(mother){
this.base();
this.m_mother=mother;
},
//> public void hunt(IAnimal pray)
hunt:function(pray){
this.roar();
this.base.hunt(pray);
},
//> public void roar()
roar:function(){
this.vj$.System.out.println("I am tiger");
}
})
.endType(); (JS)
19
20. What is VJET?
> Not another widget library
> Not an application framework
> Java and JavaScript + Enterprise technology
= A super boost for productivity
> VJET blends the best of Java and JavaScript
language and tooling, for a powerful development
experience
20
22. VJET Type System
> VJET Parser handles VJET structural definition and VJET
comment syntax, on top of JavaScript syntax
> VJET Abstract Syntax Tree (JST), analogous to Java AST,
represents Java-like types and semantics in addition to
JavaScript language constructs
> VJET Type Space Management supports:
indexed type, hierarchy, reference and dependent search
update, refactoring
syntactic and semantic validation
tool integration and more …
> VJET Type Meta enables “typed” Object Serialization
22
23. Tooling in VJET IDE
Code assistance and completion
Search for types, references, declarations
Type hierarchies and call hierarchies
Validation – not only syntax but also semantic!
Refactor and even browser specific functionality help
Many more …
23
30. Runtime Type Loading Service
> Analogous to Java ClassLoader
> No global type tempering (such as modification of
Object and Function prototype)
> Supports dynamic type loading
> Manages type resolution and initialization order
based on type dependencies (including circular
dependency)
30
31. VJET Supports Common Java Libraries
vjo.java.lang.* & vjo.java.util.*
List<String> li = new ArrayList<String>(); (Java)
var li = new this.vj$.ArrayList(); //< List<String> (JS)
31
32. Why not write VJET code completely in
Java?
> Write JavaScript code using Java types
> Enable Java developers to author JavaScript
Use a familiar programming language – Java
Use familiar IDE features
No mental switch on keywords and constructs
No confusion about JavaScript scoping
x = 1;
var x =1;
this.x = 1; (JS)
32
33. Leverage Java and JavaScript in Java
> Enable Java-to-JavaScript language translation
> Take the best of JavaScript and add it to Java
Closures
Function
Object literal
> Make native JavaScript types available in Java
Global JavaScript functions and types
Browser and DOM objects
VJET and third-party JavaScript libraries
33
34. Translation + Interoperation: Java to JS
Write Java
Types
Java
Developers
Used by
Generated
JS Types JavaScript
Developers
34
35. VJET Java to JS Translation Service
> Java JavaScript - a full language translation
> Supports most Java language features and object
modeling semantics
> Syntactical and structural resemblance
> Semantic equivalence
> Provides extension for custom translation
35
36. VJET Java to JS Translation
public static void itration() { //> public void itration()
List<String> li = new ArrayList<String>(); itration:function(){
Iterator<String> itr = li.iterator(); var li=new this.vj$.ArrayList();
while (itr.hasNext()) { var itr=li.iterator();
System.out.println(itr.next()); while(itr.hasNext()){
} this.vj$.System.out.println(itr.next());
int[] arr = new int[]{1, 2, 3}; }
for (int i = 0; i < arr.length; i++) { var arr=[1,2,3];
System.out.println(arr[i]); for (var i=0;i<arr.length;i++){
} this.vj$.System.out.println(arr[i]);
Array jsArr = new Array("abc", 123, 14.5); }
jsArr.push("xyz"); var jsArr=["abc",123,14.5];
for (Object val : jsArr) { jsArr.push("xyz");
System.out.println(val); for (var val in jsArr){
} this.vj$.System.out.println(val);
}
(Java) }
} (JS)
36
37. Author JavaScript using Java
public static boolean myOnclick(MouseEvent e) {
HtmlButton b = (HtmlButton)e.getTarget();
b.blur();
b.attachEvent("click", MyJsType.update);
HtmlTextArea msgArea =
docx.getTextArea("messageArea");
String value = msgArea.getValue();
win().alert(js.escape(value));
HtmlSpan span = docx.span();
span.setClassName("warn");
span.setInnerHTML(value);
msgArea.getParentNode().insertBefore(span, msgArea);
return true;
}
(Java)
37
38. VJET Java to JS Translation
//> public boolean myOnclick(MouseEvent e)
myOnclick:function(e){
var b=e.target || window.event.srcElement;
b.blur();
b.attachEvent("click",this.vj$.MyJsType.update);
var msgArea=document.getElementById("messageArea");
var value=msgArea.value;
window.alert(escape(value));
var span=document.createElement('span');
span.className="warn";
span.innerHTML=value;
msgArea.parentNode.insertBefore(span,msgArea);
return true;
},
(JS)
38
39. TM TM
The Best of Java and JavaScript
Together at Last!
VJET
Object Literal generics
Functional interface
programming
class
closures
Mixins varargs
enum
Prototypical
inheritance Access control
39
40. Access Existing JavaScript from Java:
JS to Java API Translation Service
> Produces Java API (NativeJsProxy) from VJET
types authored in JavaScript
> Exposes functional programming features to Java
API, where function and type reference become
first level programming constructs
40
41. Translation + Interoperation:
JS to Java API
Write Can
JS Types Delegate Legacy
to Js code
JavaScript
Developers
Java Native Used by
Proxy
API Java
Developers
41
42. JS to Java API
vjo.ctype("javaone.js.MyJsType")
.protos({ public class MyJsType extends NativeJsProxy {
m_index: 0, //<int
//>public void constructs(int) public MyJsType(int index) {
constructs: function(index) { super(index);
this.m_index = index; }
}, public static void update(boolean increament) {
//>public void doit() callStatic(increament);
doit: function() { }
alert(this.m_index); public void doit() {
} call();
}) }
.props({ public static final NativeJsTypeRef prototype =
s_counter: 0, //<int NativeJsTypeRef.get(MyJsType.class);
//>public void update(boolean) public static final INativeJsFuncProxy update =
update: function(increament) { NativeJsFuncProxy.create(prototype, "update");
alert(increament? this.s_counter++ : public final INativeJsFuncProxy doit =
this.s_counter--); NativeJsFuncProxy.create(this, "doit");
} (Java)
}
})
.endType(); (JS)
42
43. VJET Java Core Library for JavaScript
> Java API for
JS global functions – VJ.js.*
JS native types:
Array, Object Literal, Function
Browser, DOM and Events (w3c – based)
Convenient DOM operation – VJ.docx.*
Functional Programming Extension – VJ.jsx.*
Function reference
Type reference
Hitch (function scope closure)
Curry (function arguments closure)
43
44. Access JS Native Types from Java
///import com.ebay.dsf.dap.proxy.Array;// Proxy to JavaScript native array
///…
Array jsArr = new Array("abc", 123, 14.5);
for (Object val : jsArr) {
System.out.println(val);
} (Java)
var jsArr=["abc",123,14.5];
for (var val in jsArr){
this.vj$.System.out.println(val);
} (JS)
44
45. Access Native JS Functions from Java
String rtn = (String)js.eval(js.escape(txt));
js.encodeURI(rtn);
win().setTimeout(js, 100);
int id = win().setInterval(AJsType.update, 10);
win().clearInterval(id);
(Java)
var rtn=eval(escape(txt));
encodeURI(rtn);
window.setTimeout(js,100);
var id=window.setInterval(this.vj$.AJsType.update,10);
window.clearInterval(id);
(JS)
(
45
46. Access Browser DOM Functions from
Java
HtmlButton b = (HtmlButton)e.getTarget();
b.blur();
HtmlSpan span = docx.span();
span.setClassName("warn");
span.setInnerHTML("<b>Hi</b>");
Node msgArea = doc().getElementById("messageArea");
msgArea.getParentNode().insertBefore(span, msgArea); (Java)
var b=e.target || window.event.srcElement;
b.blur();
var span=document.createElement('span');
span.className="warn";
span.innerHTML="<b>Hi</b>";
var msgArea=document.getElementById("messageArea");
msgArea.parentNode.insertBefore(span,msgArea);
(JS)
46
47. Java API for Functional Programming
MyVjoType2 a = new MyVjoType2(); // native proxy
a.doIt2("test");
a.doIt2.call(a, "test");
a.doIt2.apply(new MyVjoType2(), new Object[]{"test"} );
MyVjoType2.doIt("test" );
MyVjoType2.doIt.call(MyVjoType2.prototype, "test");
(Java)
var a=new this.vj$.MyVjoType2();
a.doIt2();
a.doIt2.call(a);
a.doIt2.apply(new this.vj$.MyVjoType2(),{‘test’});
this.vj$.MyVjoType2.doIt(“test”);
this.vj$.MyVjotype2.doIt.call(this.vj$.MyVjoType2,false);
(JS)
47
48. JavaScript Library Integration
> External JavaScript Libraries are easily integrated
> VJET typing annotation provides non-intrusive way
to integrate non-VJET JavaScript libraries
> No modifications needed for non-VJET JavaScript
> Typed API becomes available for both JavaScript
and Java
48
49. Integration of Third Party JS Library -
JQuery
> Create VJET API definition for existing JS library -
jQuery
vjo.ctype("vjo.dsf.jqueryx.Jq")
.needs('vjo.dsf.jqueryx.Jqueryx')
.protos({
//> public Element get(int index)
//> public Array get()
get:function() {},
//> public Array queue()
//> public Array queue(String name)
//> public Jq queue(Function callback)
//> public Jq queue(String name, Function callback)
//> public Jq queue(Array queue)
//> public Jq queue(String name, Array queue)
queue:function(){},….
(JS)
49
50. Sample jQuery Usage in both Java and
JavaScript
Jq.$(".slide").slideToggle("slow");
(Java)
$(".slide").slideToggle("slow");
(JS)
50
51. VJET Active Programming Model
> VJET enhanced scripting service supports interoperability between
Java and JavaScript, and blurs the boundary between the Java and
JavaScript languages
> In Active Programming mode, Java types are loaded and executed in
their authored forms (Java or JavaScript), while naturally interacting
with other JavaScript types and objects
> Under Active Programming mode, native JavaScript types can live in
the Java space via proxies, and Java objects can live in the script
space, with object identity preserved across language boundaries
What you write is what
you run and debug!!
51
53. Running JavaScript in Active Mode
Order of Execution
1 var lion = new this.vj$.Lion('Leo', 450, true); calling to Lion.js
2 var tigress = new this.vj$.Tiger('Tigris', 350, false); calling to Tiger.js
3 var son = new this.vj$.Liger(lion, tigress, 'Hercules', true); calling to Liger.java
public Liger(Lion father, Tiger mother, String name, boolean isMale) {
m_father = father;
m_mother = mother;
4 m_gene = father.getGene()|mother.getGene(); calling to Cat.js
}
5 getGene:function(){return this.m_gene;}
6 var hasMarriedParents = son.areParentsMarried(); calling to Liger.java
public boolean areParentsMarried() {
7 return m_father.getSpouse() == m_mother; calling to Cat.js
}
53
54. End-to-End Web Application
Development
> VJET’s Browser Emulation and Communication
Services enables live execution, debugging, and
updates of a client-side JavaScript application from a
single IDE
> Render applications in a modern web browser while
executing and debugging JavaScript in VJET’s Virtual
Browser
> Enables a productive development process
54
55. VJET Virtual Browser
> Provides browser based scripting environment
> Enables vendor specific browser behavior
> Supports “single-threaded” JS execution model
with proper timer events
55
56. VJET Duplex Live Connect (DLC)
Virtual to External Browser Connection
> Combining the VJET Virtual Browser with VJET
DLC enables:
Native browser binding for graphical rendering
and user interaction
Auto-DOM-sync between virtual and native
browsers
Capture and replay for interactive browser
session
Auto-generation of JUnit tests with window
events, user interactions and AJAX operations
56
57. Run JavaScript in VJET Virtual Browser
Page
Request/Response
User Action/Browser Event
Event
Msg (DOM sync) DOM
57
58. The Best of JavaTM Libraries and
TM
JavaScript Libraries
Web Browser Server
VJET
java.util jquery
VJET
java.lang Js libs
VJET
VJET VJET
VJET
Browser Java’s
Script Engine Script Engine
58
59. Recap
Java developers JS developers
Larger pool of talent Difficult to find talent
Increasing need for client side
Established patterns interactive behavior
Sophisticated tools ++ Managing complexity is difficult
Browser incompatibilities hamper
Standardized technologies quality
Large collection of commonly
used libraries Multiple library use is problematic
59
60. Benefits
> JavaScript developers can enjoy Java-like
modeling and tooling
> Break down language barriers and enable Java
developers to develop interactive web applications
> Write, Run, Debug, all in one IDE
> Leverage existing Java and JavaScript skill sets
between both programming environments
> Enable large scale, enterprise level JavaScript
application development
60
61. Today @ eBay
> Java developers also work on JavaScript
> JavaScript developers also work on Java
> Tooling has blurred the line between
Java and JS Languages
Browsers
JavaScript and Java Libraries
The Gap is Gone!
61
62. One More Thing…
> Announcement from eBay Leaders
Mark Palaima - Chief Architect & eBay Fellow
James Barrese - VP, Systems Dev (Architecture)
62