This document provides an overview comparison of JavaFX and HTML5 for building mobile applications. It includes a demo of a sailboat racing application built with both JavaFX and HTML5. The technical comparison section analyzes the architectures, controls, data binding, tables, multimedia support and other features of JavaFX and HTML5. It finds that while HTML5 has broader deployment options, JavaFX provides more robust and integrated core features out of the box. The document also discusses the perspectives and limitations of both JavaFX and HTML5.
One of the key features of JavaFX 2.0 is having full-fledged embedded browser. This enables JavaFX apps to embed web contents, and also to work together with HTML5 apps.
This session focuses on JavaFX's web component, WebEngine, and show how JavaFX can work together with web technologies (HTML/CSS/JavaScript) by using demos and sample codes.
(Session JS1-13 / Apr 4th, JavaOne Tokyo 2012)
Presentation given to the Dallas Spring User Group on how to use JavaFX technology together with the Spring Framework. Covers a basic pattern for loading the Spring context in a JavaFX application thread as well as how to leverage Spring Security on the front end.
One of the key features of JavaFX 2.0 is having full-fledged embedded browser. This enables JavaFX apps to embed web contents, and also to work together with HTML5 apps.
This session focuses on JavaFX's web component, WebEngine, and show how JavaFX can work together with web technologies (HTML/CSS/JavaScript) by using demos and sample codes.
(Session JS1-13 / Apr 4th, JavaOne Tokyo 2012)
Presentation given to the Dallas Spring User Group on how to use JavaFX technology together with the Spring Framework. Covers a basic pattern for loading the Spring context in a JavaFX application thread as well as how to leverage Spring Security on the front end.
[Note that this talk is not available outside some very specific settings but this deck is here for you as a basic resource to form a basis for your own analysis based on my reasonably objective extensive professional experience using both technology sets in the real world]
Java EE 7 has been one of the most significant overhauls of the platform. Just some of the changes include retiring EJB 2 entity beans and JAX-RPC, greater alignment with CDI, WebSocket/HTML 5 support, a standard API for JSON processing, the next version of JAX-RS, an overhaul of JMS, long-awaited concurrency utilities, batch processing in Java EE and much, much more. In order to make educated choices for adoption, one should understand how the widely-used Spring Framework aligns with Java EE.
This session will compare and contrast the Spring Framework with Java EE 7. We will focus on key areas that include the component development model, dependency injection, persistence, UI, REST, messaging, security and testing. Beyond API/features, the analysis will take a holistic view in covering concerns such as ease-of-use, manageability, ecosystem and vendor-neutrality.
WebLogic 12.1.3 was released late last year. It brings a large set of changes including support for some key new Java EE 7 APIs such as WebSocket, JAX-RS 2, JSON-P and JPA 2.1, support for Java SE 8, WebSocket fallback support, support for Server-Sent Events (SSE), improved Maven support, enhanced REST administration support, Oracle Database 12c driver support and much, much more. In this session we will take a detailed tour of these features. In addition we will also cover updated WebLogic support in the Oracle Cloud, the new Oracle public Maven repository, using WebLogic with Arquillian for testing and well as official Docker support for WebLogic.
Towards the end of the session we will discuss what's coming in WebLogic 12.2.1 this year including full support for Java EE 7, multi-tenancy and more.
The current state of the Apache Wicket framework in 2014 as presented at the DEVdev meetup held in Deventer, the Netherlands.
- A critique of ThoughtWorks' Technology Review 2014 where they slam JSF (jay) as a concept (nay)
- A look back at 10 years of Wicket
- A review of the current Wicket versions
- An outlook and roadmap for Wicket 7 and Wicket 8
The DEVdev (Deventer Developers) is a new meetup for any developer in the eastern part of the Netherlands (the right side of the IJssel river). This presentation was delivered at the first meetup, and was kindly sponsored by Topicus B.V.
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
The Spring Framework has no-doubt played a major role in evolving the way we write enterprise applications on the Java platform today. However, it is still a proprietary framework owned by a single company. The age of having to rely on such proprietary frameworks in order to develop decent enterprise applications is now over and Java EE 6 has become an even easier way to develop enterprise applications based on standards which makes it the best choice for any enterprise application. In this session you will experience how to migrate a typical full stack Spring application to a standards based, completely portable, Java EE 6 application including integration tests.
jDays2015 - JavaEE vs. Spring SmackdownMert Çalışkan
From the heavy weight authors of Wiley, on Java EE side Murat Yener with Professional Java EE Design Patterns (http://www.amazon.com/Professional-JavaEE-Design-Patterns-Murat/dp/111884341X) and on Spring side Mert Caliskan with Professional Spring (http://www.amazon.com/Beginning-Spring-Mert-Caliskan/dp/1118892925). The talk will expose good, bad and the ugly sides of both Java EE and Spring by hands on illustration of creating a crud app from scratch. Both speakers will introduce best parts of their platform on demos meanwhile point out weaknesses of the opponent. Both platforms will demonstrate their strengths on best practices, tool support, 3rd party libraries, community support and design patterns. Get ready for a family size huge fun while watching two most commonly used platform on Java.
With the Tenth Anniversary of Wicket behind us, Wicket is still one of the thriving survivors of the Great Web Framework Wars of the mid 00's. Is there a future for server-side frameworks? In this presentation Martijn Dashorst provides a brief history of Wicket.
With a State of the Wicket, Martijn will look at who is currently using Wicket, the community and current release plans.
The majority of this session will be dedicated to the future of Wicket: does a component oriented, Java web framework have a future in the era of native clients and client side JavaScript frameworks? Martijn will layout the plans of making Wicket more productive for current users, on integrating better with JavaEE technologies and much more.
The Apache Wicket community is working hard to build the new major release of Wicket. One of the tentpole features is the move to Java 8 as a minimum requirement. Why did we do that, and how does this improve my Wicket code? Learn how to apply Java 8 features such as lambdas and the new DateTime API in your Wicket applications, and learn what else the community is creating for your benefit.
Presentation on how to use Vaadin and Scala to build web applications on top of HTML5. Most of the presentation is live coding, so you might to want to check these examples:
http://vj.jole.fi/
https://github.com/jojule/Stocks
This session compares the Spring and Java EE stacks in terms of Web frameworks. It re-examines the motivations behind the Spring framework and explores the emergence of the Java EE programming model to meet the challenges posed. The presentation provides insight into when Spring and/or Java EE is appropriate for a building Web applications and if they can coexist.
In September 2017 the long-awaited release of Java 9 gave us a new module system in Java. It also kick-started the release-train of frequent Java releases, with Java 11 being the first long-term supported Java version poised to take modules into the mainstream. So what has happened since the introduction of the module system?
This talk will provide an overview adoption of modules in open-source libraries, IDEs, build tools, and so on. It will also feature tools that have emerged to make working with modules easier. Expect an honest overview of the current state of modules in Java, with lots of demos to show what's possible. After this talk you can start developing your own modular Java application without hesitation!
Vaadin is Java framework for rapid development of highly interactive HTML5-based web applications. Because of server-driven nature Vaadin can easily be integrated with server-side Java EE features such as EJBs and JPA. During this speech we will look in detail on how multi-view Vaadin applications are built and coupled with Java EE based business systems using Context and Dependency Injection (CDI). Important topics covered within the session are the best practices of developing Model-View-Presenter (MVP) based Vaadin views as well as the as pointers and guidelines on how to use Vaadin with Java EE. Attending the speech does not require thorough understanding of Java EE or web technologies in general.
Java APIs- The missing manual (concurrency)Hendrik Ebbers
This isn’t a talk about microservices, NoSQL, container solutions or hip new frameworks. This talk will show some of the standard Java APIs that are part of Java since version 5, 6, 7 or 8. All those features are very helpful to create maintainable and future-proof applications, regardless of whether JavaEE, Spring, JavaFX or any other framework is used. The talk will give an overview of some important standard concepts and APIs of Java like annotations, null values and concurrency.
Testing Java EE Applications Using ArquillianReza Rahman
This session outlines how to effectively test Java EE APIs like JSF, Servlet, CDI, EJB 3, JPA, WebSocket and JAX-RS. Java EE includes a number of new features that enhance testability like generic dependency injection, CDI @Alternative, portable extensions, embedded containers and JSF project stages.
Using these features and best of breed tools like JUnit and Arquillian it is possible to perform unit, integration, system and functional testing for Java EE APIs at all layers of the application. In addition to discussing tools and features, the session will also demonstrate testing techniques like designing for testability, mock objects, isolation and test configuration.
JavaFX and HTML5 - Like Curds and RiceStephen Chin
JavaFX 2 is an exciting new platform for developing rich user interfaces with animation, media, and advanced controls with pure Java code. HTML5 is the next standard for web technologies promising richer graphics, native media support, and offline storage among other features. So which technology should you choose? We say you can have your curds with your rice! With one HTML5 expert and one JavaFX wizard on stage, we will show how you can leverage both of these technologies to create a new breed of application that goes beyond your expectations.
Moving to the Client - JavaFX and HTML5Stephen Chin
Talk given at JavaOne India about taking the best parts of JavaFX and HTML5 and leveraging them together. This talk contains an integration of Google Maps into a native Java application with interactive controls.
[Note that this talk is not available outside some very specific settings but this deck is here for you as a basic resource to form a basis for your own analysis based on my reasonably objective extensive professional experience using both technology sets in the real world]
Java EE 7 has been one of the most significant overhauls of the platform. Just some of the changes include retiring EJB 2 entity beans and JAX-RPC, greater alignment with CDI, WebSocket/HTML 5 support, a standard API for JSON processing, the next version of JAX-RS, an overhaul of JMS, long-awaited concurrency utilities, batch processing in Java EE and much, much more. In order to make educated choices for adoption, one should understand how the widely-used Spring Framework aligns with Java EE.
This session will compare and contrast the Spring Framework with Java EE 7. We will focus on key areas that include the component development model, dependency injection, persistence, UI, REST, messaging, security and testing. Beyond API/features, the analysis will take a holistic view in covering concerns such as ease-of-use, manageability, ecosystem and vendor-neutrality.
WebLogic 12.1.3 was released late last year. It brings a large set of changes including support for some key new Java EE 7 APIs such as WebSocket, JAX-RS 2, JSON-P and JPA 2.1, support for Java SE 8, WebSocket fallback support, support for Server-Sent Events (SSE), improved Maven support, enhanced REST administration support, Oracle Database 12c driver support and much, much more. In this session we will take a detailed tour of these features. In addition we will also cover updated WebLogic support in the Oracle Cloud, the new Oracle public Maven repository, using WebLogic with Arquillian for testing and well as official Docker support for WebLogic.
Towards the end of the session we will discuss what's coming in WebLogic 12.2.1 this year including full support for Java EE 7, multi-tenancy and more.
The current state of the Apache Wicket framework in 2014 as presented at the DEVdev meetup held in Deventer, the Netherlands.
- A critique of ThoughtWorks' Technology Review 2014 where they slam JSF (jay) as a concept (nay)
- A look back at 10 years of Wicket
- A review of the current Wicket versions
- An outlook and roadmap for Wicket 7 and Wicket 8
The DEVdev (Deventer Developers) is a new meetup for any developer in the eastern part of the Netherlands (the right side of the IJssel river). This presentation was delivered at the first meetup, and was kindly sponsored by Topicus B.V.
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
The Spring Framework has no-doubt played a major role in evolving the way we write enterprise applications on the Java platform today. However, it is still a proprietary framework owned by a single company. The age of having to rely on such proprietary frameworks in order to develop decent enterprise applications is now over and Java EE 6 has become an even easier way to develop enterprise applications based on standards which makes it the best choice for any enterprise application. In this session you will experience how to migrate a typical full stack Spring application to a standards based, completely portable, Java EE 6 application including integration tests.
jDays2015 - JavaEE vs. Spring SmackdownMert Çalışkan
From the heavy weight authors of Wiley, on Java EE side Murat Yener with Professional Java EE Design Patterns (http://www.amazon.com/Professional-JavaEE-Design-Patterns-Murat/dp/111884341X) and on Spring side Mert Caliskan with Professional Spring (http://www.amazon.com/Beginning-Spring-Mert-Caliskan/dp/1118892925). The talk will expose good, bad and the ugly sides of both Java EE and Spring by hands on illustration of creating a crud app from scratch. Both speakers will introduce best parts of their platform on demos meanwhile point out weaknesses of the opponent. Both platforms will demonstrate their strengths on best practices, tool support, 3rd party libraries, community support and design patterns. Get ready for a family size huge fun while watching two most commonly used platform on Java.
With the Tenth Anniversary of Wicket behind us, Wicket is still one of the thriving survivors of the Great Web Framework Wars of the mid 00's. Is there a future for server-side frameworks? In this presentation Martijn Dashorst provides a brief history of Wicket.
With a State of the Wicket, Martijn will look at who is currently using Wicket, the community and current release plans.
The majority of this session will be dedicated to the future of Wicket: does a component oriented, Java web framework have a future in the era of native clients and client side JavaScript frameworks? Martijn will layout the plans of making Wicket more productive for current users, on integrating better with JavaEE technologies and much more.
The Apache Wicket community is working hard to build the new major release of Wicket. One of the tentpole features is the move to Java 8 as a minimum requirement. Why did we do that, and how does this improve my Wicket code? Learn how to apply Java 8 features such as lambdas and the new DateTime API in your Wicket applications, and learn what else the community is creating for your benefit.
Presentation on how to use Vaadin and Scala to build web applications on top of HTML5. Most of the presentation is live coding, so you might to want to check these examples:
http://vj.jole.fi/
https://github.com/jojule/Stocks
This session compares the Spring and Java EE stacks in terms of Web frameworks. It re-examines the motivations behind the Spring framework and explores the emergence of the Java EE programming model to meet the challenges posed. The presentation provides insight into when Spring and/or Java EE is appropriate for a building Web applications and if they can coexist.
In September 2017 the long-awaited release of Java 9 gave us a new module system in Java. It also kick-started the release-train of frequent Java releases, with Java 11 being the first long-term supported Java version poised to take modules into the mainstream. So what has happened since the introduction of the module system?
This talk will provide an overview adoption of modules in open-source libraries, IDEs, build tools, and so on. It will also feature tools that have emerged to make working with modules easier. Expect an honest overview of the current state of modules in Java, with lots of demos to show what's possible. After this talk you can start developing your own modular Java application without hesitation!
Vaadin is Java framework for rapid development of highly interactive HTML5-based web applications. Because of server-driven nature Vaadin can easily be integrated with server-side Java EE features such as EJBs and JPA. During this speech we will look in detail on how multi-view Vaadin applications are built and coupled with Java EE based business systems using Context and Dependency Injection (CDI). Important topics covered within the session are the best practices of developing Model-View-Presenter (MVP) based Vaadin views as well as the as pointers and guidelines on how to use Vaadin with Java EE. Attending the speech does not require thorough understanding of Java EE or web technologies in general.
Java APIs- The missing manual (concurrency)Hendrik Ebbers
This isn’t a talk about microservices, NoSQL, container solutions or hip new frameworks. This talk will show some of the standard Java APIs that are part of Java since version 5, 6, 7 or 8. All those features are very helpful to create maintainable and future-proof applications, regardless of whether JavaEE, Spring, JavaFX or any other framework is used. The talk will give an overview of some important standard concepts and APIs of Java like annotations, null values and concurrency.
Testing Java EE Applications Using ArquillianReza Rahman
This session outlines how to effectively test Java EE APIs like JSF, Servlet, CDI, EJB 3, JPA, WebSocket and JAX-RS. Java EE includes a number of new features that enhance testability like generic dependency injection, CDI @Alternative, portable extensions, embedded containers and JSF project stages.
Using these features and best of breed tools like JUnit and Arquillian it is possible to perform unit, integration, system and functional testing for Java EE APIs at all layers of the application. In addition to discussing tools and features, the session will also demonstrate testing techniques like designing for testability, mock objects, isolation and test configuration.
JavaFX and HTML5 - Like Curds and RiceStephen Chin
JavaFX 2 is an exciting new platform for developing rich user interfaces with animation, media, and advanced controls with pure Java code. HTML5 is the next standard for web technologies promising richer graphics, native media support, and offline storage among other features. So which technology should you choose? We say you can have your curds with your rice! With one HTML5 expert and one JavaFX wizard on stage, we will show how you can leverage both of these technologies to create a new breed of application that goes beyond your expectations.
Moving to the Client - JavaFX and HTML5Stephen Chin
Talk given at JavaOne India about taking the best parts of JavaFX and HTML5 and leveraging them together. This talk contains an integration of Google Maps into a native Java application with interactive controls.
Presentation about the features of JavaFX. See how to use video, different deployment types, JavaScript integration, annimations and more. Demo's not included.
Java script nirvana in netbeans [con5679]Ryan Cuprak
JavaOne 2016
NetBeans is not just a Java IDE. It supports JavaScript as a first-class citizen and provides a complete integrated development environment. It also provides project types for server-side JavaScript (Node.js) as well as web browsers and mobile (Apache Cordova). In addition, it supports Grunt, Mocha and Selenium, Angular and Knockout, and more. This session provides an update on NetBeans 8.1 and demonstrates the top new JavaScript features. You will see a Node.js application in action, look at the support for JavaScript unit testing, and also see how easy it is to debug an Apache Cordova application running on a tethered iPhone.
When JavaFX Script was released, the mobile component was an important part. It was also one of the reasons many people and analysts believed in JavaFX as a real cross-platform client-side framework. For a number of reasons, JavaFX on mobile disappeared from the official Java roadmap. Fortunately, the OpenJFX team at Oracle made all the required sources available, and the JavaFXPorts initiative worked on providing JavaFX SDK's for the mobile platforms. In this session, we will show the current state of JavaFX on Mobile. We will show how to create a real cross-platform JavaFX Application using an IDE, and how easy it actually is to deploy that application on Android and iOS devices. We will show some of the features and limitations, and talk about the eco-system that is starting to take shape.
Configuring and maintaining a continuous integration environment is quite a bit of work. It requires ongoing resources both in terms of manpower and hardware infrastructure. As an application evolves so does the number of ongoing projects. The challenge is creating a scalable continuous integration environment which does not impede development and can handle the complexities of Java EE testing. This session covers how to setup and configure a cloud-based continuous integration environment for Java EE applications.
The presentation will focus on demonstrating how to use Atlassian Bamboo running on AWS to build and test a Maven/Gradle Java EE project that uses Arquillian for testing. Topics that will be covered include creating a custom AWS VM for use with Bamboo, creating an Amazon VPC (Virtual Private Cloud) along with test database using Amazon RDS. The presentation will delve into the specifics of testing EJBs, WebSocket endpoints, RESTful web services, as well as performing load testing in this environment. Security, cost control, and build monitoring will be covered as well.
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)Ryan Cuprak
Java is a general-purpose language and is not particularly well suited for performing statistical analysis. Special languages and software environments have been created by and for statisticians to use. Statisticians think about programming and data analysis much different from Java programmers. These languages and tools make it easy to perform very sophisticated analyses on large data sets easily. Tools, such as R and SAS, contain a large toolbox of statistical tools that are well tested, documented and validated. For data analysis you want to use these tools.
In this session we will provide an overview of how to leverage the power of R from Java. R is the leading open source statistical package/language/environment. The first part of the presentation will provide an overview of R focusing on the differences between R and Java at the language level. We’ll also look at some of the basic and more advanced tests to illustrate the power of R. The second half of the presentation will cover how to integrate R and Java using rJava. We’ll look at leverage R from the new Java EE Batching (JSR 352) to provide robust statistical analysis for enterprise applications.
JDK.IO 2016 (http://jdk.io)
Java EE 7 introduced a new batch processing API. This session will go over how to use the batch processing API introduced with Java EE 7. This API is makes it easy to implement long running data/compute intensive jobs which need to be scheduled or initiated on-demand. Basics of the API will be demonstrated via code samples. The API will also be compared to Spring Batching and Hadoop to provide context and guidance on when these technologies are appropriate.
JavaOne 2016
JMS is pretty simple, right? Once you’ve mastered topics and queues, the rest can appear trivial, but that isn’t the case. The queuing system, whether ActiveMQ, OpenMQ, or WebLogic JMS, provides many more features and settings than appear in the Java EE documentation. This session looks at some of the important extended features and configuration settings. What would you need to optimize if your messages are large or you need to minimize prefetching? What is the best way to implement time-delayed messages? The presentation also looks at dangerous bugs that can be introduced via simple misconfigurations with pooled beans. The JMS APIs are deceptively simple, but getting an implementation into production and tuned correctly can be a bit trickier.
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)Stephen Chin
JavaFX 2.0 is the next version of a revolutionary rich client platform for developing immersive desktop applications. One of the new features in JavaFX 2.0 is a set of pure Java APIs that can be used from any JVM language, opening up tremendous possibilities. This presentation demonstrates the benefits of using JavaFX 2.0 together with the Scala programming language to provide a type-safe declarative syntax with support for lazy bindings and collections. Advanced language features, such as DelayedInit and @specialized will be discussed, as will ways of forcing prioritization of implicit conversions for n-level cases. Those who survive the pure technical geekiness of this talk will be rewarded with plenty of JavaFX UI eye candy.
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
Java EE 7 provides a strong foundation for developing the back end for your HTML5 mobile applications. This heavily code-driven session shows you how you can effectively utilize Java EE 7 as a back end for your Apache Cordova mobile applications. The session demonstrates Java EE 7 technologies such as JAX-RS 2.0, WebSocket, JSON-P, CDI, and Bean Validation. It provides an overview of the basics of Apache Cordova as well as the tooling support added in NetBeans 8. The session also demonstrates an integrated approach to rapidly developing HTML5 mobile applications with Java EE 7 and NetBeans and concludes with best practices and pitfalls.
Top 50 java ee 7 best practices [con5669]Ryan Cuprak
JavaOne 2016
This session provides 50 best practices for Java EE 7, with examples. The best practices covered focus primarily on JPA, CDI, JAX-WS, and JAX-RS. In addition, topics involving testing and deployment are covered. This presentation points out where best practices have changed, common misconceptions, and antipatterns that should be avoided. This is a fast-paced presentation with many code samples.
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
This session provides 50 best practices for EJB 3 in 50 minutes with examples. These best practices involve not only EJB 3.2 but also its integration with other Java EE 7 technologies, not only coding best practices but also testing and production practices. The presentation targets Java EE 7 and also points out where best practices have changed, what patterns you should embrace, and antipatterns to avoid. This is a fast-paced presentation with many code samples. Categories covered include configuration, JPA, concurrency, testing, performance tuning, exception handling, CDI integration, JMS queue patterns, pattern changes, and many more.
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachPROIDEA
JAVA EVERYWHERE AGAIN—WITH DUKESCRIPT
For a long time, Java was perfect for creating cross-platform applications, but the advent of iPhone, iPad, and Android devices changed everything, resulting in a totally fragmented world. Catering to all these platform is troublesome and expensive. That’s why DukeScript was created: to make it easy to create cross-platform Java applications again. The goal of this hands-on lab is to create a cross-platform application from scratch that will run on iOS, Android, desktop, browser, and embedded devices such as the Raspberry Pi. You’ll learn about the Model-View-ViewModel (MVVM) architecture, which enables you to write and test business code totally independently of the view, and, finally, you’ll see it combined with a view to complete a working application.
IMPORTANT
Before conference, please follow the steps to prepare for the session:
- perform the Maven repository initialization by creating the archetype and building it as
described at DukeScript website
- also download NetBeans IDE (either latest beta or at least 8.0.2)
- Installing Android SDK rev. 19 or bringing own Mac Book with XCode installed can be also found beneficial
AngularJS - Architecture decisionsin a large project Elad Hirsch
Architecture Decisions in a large project (Elad Hirsch, Web team Leader @ IDI)
At this session we will take practical road - look into IDI Full-Stack architecture, dive around the spec and explore the challenges developing a large scale web project.
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfJAX London
A deep dive on creating mobile-ready, cloud-enabled, HTML5 applications based on Java EE and modern JavaScript. You will learn how to balance and combine the enterprise Java programming model, based on APIs such as CDI, JAX-RS and EJB 3.1, with JavaScript libraries like jQuery Mobile, Backbone, Require and Underscore, while taking advantage of the ease of deployment and elasticity of the cloud.
Over four year of experience in Full Stack Web Development using JAVA.
Worked on all phases of development life cycle including Analysis, Design Development, Testing, Implementation and Support Excellent web application development skills.
Expert in developing Muti-Tier Web application using JAVA, J2EE Standards, JSP, Spring, Hibernate, Servlets, JSF, JDBC, Core JAVA, XML, HTML, AJAX and JAVA Script.
Experience in deploying the application, and configuring the application servers like Tomcat and Web Logic.
Implemented Connectivity to databases using JDBC API from Servlet and JSP and also through ORM Libraries like Hibernate. Created Mappings for both one-one as well as many-one mappings to Tables as well as Views.
Experienced in MYSQL, DB2 and Microsoft SQL server.
Experienced n design and implementation of projects using concepts of Multi Threading, Singletons, Serialization, Atomicity as well as familiar with JVM Internals.
Implements MVC architecture using STRUTS. Uses MVC, Singleton, DAO, Factory, Service, Locator, Business Delegate, Façade design patterns.
Is a versatile team player with good analytical, communication and interpersonalskills.
Embracing Jakarta EE 10 not only enable you to write better structured applications, it also enables you to write more testable applications. Correctly leveraging CDI enables integration testing where you can simulate a database error and verify that JMS messages are lost due to a RuntimeException. This session will focus on strategies and techniques for testing message handing, transaction management, security, and data model integrity. You will see how you can check message delivery and error handling, session failover, database versioning, and two-phase commits with JMS and databases. All too often assumptions are made that are proven wrong in production. This session will show you how to take your testing to the next level.
DIY Home Weather Station (Devoxx Poland 2023)Ryan Cuprak
Weather is a fascinating and important aspect of our lives, and with the rise of smart home technology, it has become easier than ever to track and monitor weather conditions in your own backyard. In this presentation, I will explore the process of building a home weather station.
I will discuss the hardware components needed to build a weather station, including sensors for temperature, humidity, pressure, and precipitation, as well as the embedded board itself. I will also cover the programming aspect of the project, including how to read data from the sensors and transmit it wirelessly to the cloud.
By the end of this presentation, you will have a solid understanding of how to build and program a home weather station using Arduino, and how to customize and expand the project to fit your specific needs.
Jakarta EE is now over 20 years old and despite its age, it is as relevant today as it was back in 1999. It is one of the few open standards for developing enterprise applications with multiple independent vendor implementations. Its APIs are central to developing Java based cloud solutions. It is as relevant today as it was back in 1999. This presentation will provide context to Jakarta EE and why businesses choose to use it.
The new GraalVM from Oracle supports multiple language including JavaScript, Python, Ruby, R, C++ as well as Java and other JVM languages. This opens up interesting possibilities for polygot enterprise applications. Now you can use a Node library in a Java application or call an R statistical function from an EJB. Previously, this type of integration was extremely challenging. This session will provide recipes to get up and running along with best practices and some cool demos.
Code: https://github.com/rcuprak/graalvm_jee
Exploring Java Heap Dumps (Oracle Code One 2018)Ryan Cuprak
Memory leaks are not always simple or easy to find. Heap dumps from production systems are often gigantic (4+ gigs) with millions of objects in memory. Simple spot checking with traditional tools is woefully inadequate in these situations, especially with real data. Leaks can be entire object graphs with enormous amounts of noise. This session will show you how to build custom tools using the Apache NetBeans Profiler/Heapwalker APIs. Using these APIs, you can read and analyze Java heaps programmatically to ask really hard questions. This gives you the power to analyze complex object graphs with tens of thousands of objects in seconds.
Node.js Development with Apache NetBeansRyan Cuprak
This session covers the basics of developing Node.js applications with NetBeans. NetBeans includes fully integrated support for both JavaScript and Node.js. You’ll get a tour of the features and learn how NetBeans can accelerate your projects. The presentation looks at basic code editing capabilities provided by the IDE, tool integration (npm/Grunt/Bower/Webpack), frameworks such as Express, and debugging capabilities. You’ll see why NetBeans is the best free JavaScript/Node.js IDE.
Java 9 ships in July, are you ready for Java 9 modules? Java 9 modules (aka Project Jigsaw) is the biggest fundamental change to the Java runtime. Code that use Oracle/Sun private APIs will break. This session will cover the basics of Java 9 modules and also the current state of tooling. The ramifications to existing and legacy applications will be covered along with the steps you’ll need to take to harness the power of modules and write more maintainable systems.
Java EE 8 Presentation given at NYC Java SIG on May 4, 2017. This presentation provides the latest information on the forthcoming release of Java EE 8 in June.
Faster java ee builds with gradle [con4921]Ryan Cuprak
JavaOne 2016
It is time to move your Java EE builds over to Gradle! Gradle continues to gain momentum across the industry. In fact, Google is now pushing Gradle for Android development. Gradle draws on lessons learned from both Ant and Maven and is the next evolutionary step in Java build tools. This session covers the basics of switching existing Java EE projects (that use Maven) over to Gradle and the benefits you will reap, such as incremental compiling, custom distributions, and task parallelization. You’ll see demos of all the goodies you’ve come to expect, such as integration testing and leveraging of Docker. Switching is easier than you think, and no refactoring is required.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
4. Demo Application
Why not Swing?
• JavaFX replaces Swing
• Swing was a 1990s technology – different era
• Swing has significant shortcomings:
• No support for touch
• Hard to customize appearance
• JTable feature poor with complex code
• No support for animation
• No data binding support
• No support for animations
• Some customization require changes to L&F classes
5. Demo Application
Background
• HTML5 has arrived on the desktop
• HTML5 has arrived on mobile
• HTML5 apps are apps!
• Logic written in JavaScript
• UI HTML5/CSS3
• HTML5 apps are gaining device
support:
• Compass/GPS/Accelerometers/BlueToo
th
6. Demo Application
What type of demo application?
• Mobile – using HTML5 and Apache Cordova
• Apps not websites!
• HTML5 enables app development
• Excitement is around app development
• Rich user experiences
• Not talking about JSF + HTML5
10. Demo Application
Sailboat Racing Overview
• Committee boat sets the course and
announces it via radio.
• Boats register via radio specifying their class.
• Start sequence for class:
• Warning horn is sounded
• Start horn is sounded (boats cross start line)
• Start sequence repeated for next class.
• Committee boat monitors progress and
weather.
• Race course altered if wind dies or conditions
deteriorate.
• Finish time for each boat is registered at the
end of the race
• Final results are calculated.
11. Mobile Overview
Native HTML5 Apps
• Single Page Application (SPA)
wrapped in Native application.
• Native application displays a
WebView – embedded browser.
• Logic:
• JavaScript
• JavaScript platform extensions
• UI
• HTML5 markup
• SVG
• Canvas
• WebGL
• All assets are bundled with the
application.
14. Demo Application
Technologies
• JavaFX
• Vanilla JavaFX– designed using Scene
Builder 2.0
• JAX-RS 2.0 (Jersey)
• WebSockets (Tyrus)
• Java API for JSON Processing
• HTML5
• Apache Cordova
(Android/iOS/Windows/Tizen/BlackBe
rry)
• JQuery
• JQuery Mobile
• Knockout JS
15. Mobile Overview
Framework License
jQuery Mobile
http://jquerymobile.com
MIT
Sencha Touch
http://sencha.com
Commercial(Free) & Open
Source (GPLv3)
Intel App Framework
http://app-framework-software.intel.com
MIT
Ionic
http://ionicframework.com
MIT
M-Project
http://www.the-m-project.org
MIT
Kendo UI
http://www.telerik.com
Commercial
Twitter Bootstrap 3
http://getbootstrap.com
MIT
Mobile Frameworks
42. Technical Comparison
Server Communication
Client
Java EE 7
App Server
REST
Request/Response
Web Sockets
Bidirectional
Restful Web Service
Web Socket Endpoint
43. Technical Comparison
Server Communication
• JavaFX
• Not part of Java 8.
• Websocket: Project Tyrus
https://tyrus.java.net/index.html
• REST: Project Jersey
https://jersey.java.net
• JSON Processing
https://jsonp.java.net
• HTML5
• REST – native support:
• Xmlhttp – used to issue AJAX calls.
• WebSocket – native support:
• WebSocket – used to register callbacks and send data.
44. Technical Comparison
HTML5: WebSocket Support
http://caniuse.com/#search=webso
Android Version Date WebSocket Deployed
4.4 JellyBean July 24, 2013 No 26.5% (80% can’t)
4.4 KitKat October 31, 2013 Yes 20% (8/2014)
51. Technical Comparison
Challenges
HTML5 Development Challenges
• Null versus undefined
• Different approaches to defining “classes”
• Global namespace
• IDE coding support
• Threading – Web Workers cannot update the DOM
• IndexDB support/access
• Recovering from fatal errors (application “hung”)
JavaFX Development Challenges
• Mobile support
• Interaction with hardware
53. HTML5 & JavaFX
JavaFX Misconceptions
• JavaFX is irrelevant with the advent of HTML5.
• Java on the desktop is dead.
• JavaFX and HTML5 are mutually exclusive.
• Java does not have good graphics performance.
• JavaFX is only for rich media applications – not desktop apps.
• JavaFX is meant for only building games and mobile apps.
• You would never use JavaFX in a business application.
54. HTML5 & JavaFX
Legacy Technologies
• Java3D, JAI, and JMF are dead.
• Java3D, JAI, and JMF have no relationship to JavaFX.
• JavaFX is not like these technologies:
• Cross-platform – features are available everywhere.
• Integrated into the JRE – no separate download/versioning/etc.
• JavaFX includes support for common video and audio formats.
55. HTML5 & JavaFX
• Retained mode
• SceneGraph
• Scene Builder Tool
• 60+ components
• CSS skinning
• Built-in animation
support
• Audio/video support
• Multi-touch
• 3D Tooling Support
with SceneBuilder
JavaFX Key Features
56. HTML5 & JavaFX
JavaFX in Perspective
Differentiating feature: Scene graph is at the
core of the API.
• UI widgets are nodes like any other node!
• UI widgets are thus like any other node in the
scene graph
• Can be animated, transformed, filtered,
leverage customized event handling
58. HTML5 & JavaFX
HTML5 Major Features
• 2D Canvas
• WebGL – technically not part of HTML5
• CCS3 – WebFonts, Transformations, CSS
Animation
• WebSockets
• Web Workers – background threading
• Data storage – file system access, local storage,
app cache
59. HTML5 & JavaFX
HTML5 vs. Traditional Web Applications
• Not page centric like JSF/JSP/Servlets.
• Single Page Application (SPA) – the app is the page.
• Client is stateful and not stateless.
• Application is coded in JavaScript.
• True asynchronous communication with the server.
• Application may not have a backend server.
• Maybe sold via an App store.
60. HTML5 & JavaFX
HTML5 Applied
• Many mobile apps are hybrids:
• Native application shell with HTML5 content.
• PhoneGap aka Apache Cordova
• Native application development dominates mobile:
• Mobile phones, while powerful, are not as powerful as 2 GHz i3.
• Mobiles devices are RAM limited – garbage collection and RAM
• Android support native apps (C/C++) – NDK.
• Performance/usability issues - FaceBook went native.
63. HTML5 & JavaFX
Overview: Comparison Challenge
• HTML5 is amorphous:
• Basic set of base technologies (SVG, Canvas, WebGL, WebSockets,
WebWorker).
• Additional functionality provided by open source libraries:
• JQuery
• Three.js
• Tween.js
• Almost impossible to argue HTML5 can’t do X.
• JavaFX is fixed:
• More robust core features.
• Easier to use developmentally.
• Smaller ecosystem of components.
64. HTML5 & JavaFX
Overview: HTML5 Limitations
• JavaScript language
• Browser challenges
• Custom browser extensions
• Concurrency
• Time zone detection
• Tooling challenges
• Patent infringement/ IP theft.
65. HTML5 & JavaFX
Overview: JavaFX Limitations
• No smart phone strategy.
• RoboVM– opens up iOS!
http://www.robovm.org
• Incomplete – still a work in progress.
• Core features dependent upon Oracle resourcing.
• Missing features:
• geo-location, device orientation, accelerometers,
camera capture
• Perception – JavaFX 1.0.
66. HTML5 & JavaFX
JavaFX HTML5
Deployment Strategies
Mac App Store ✔ ✔
Microsoft App
Store
✔ ✔
Android Stores ✖ ✔
iTunes ✔
Browser ✔
68. HTML5 & JavaFX
Rendering
• HTML5 Canvas element is a 2D draw surface –
similar to Java 2D, MacOS X Quartz, QuickDraw,
etc.
• HTML5 Canvas is immediate – JavaFX retained.
• HTML5 Canvas similar to JavaFX Canvas.
• HTML5 Canvas does not support hit detection.
70. HTML5 & JavaFX
2D Canvas: JavaFX vs. HTML5
• Similarities:
• Immediate mode rendering.
• API almost exact match.
• JavaFX:
• Canvas can participate in scene graph and also JavaFX 3D.
• Supports SVG paths.
• HTML5:
• Lacks fill support for arcs or polygons.
71. HTML5 & JavaFX
Feature Integration
JavaFX HTML5
Scene
Canvas Video
Audio
Canvas
SVG
Video
CSS Audio
Feature Layout not
integrated.
3D
WebGL
(3D)
72. HTML5 & JavaFX
Feature Integration
Video and Canvas integrated via layout.
73. HTML5 & JavaFX
SVG
• SVG – 2D vector image support (.svg)
• XML based: supports vector, raster, and text.
• SVG 1.0 release in 2001.
• SVG 2.0 targeted for 8/2014.
• Can be compressed using gzip.
• Browser support is not robust
• IE8 didn’t provide SVG support
• Modules lacking full support: Font, Filter, Clip, Cursor
• Include in HTML using <embed>, <object>, or <iframe>
74. HTML5 & JavaFX
HTML5: SVG
• Multiple tools can export to SVG:
• Adobe Illustrator
• OmniGraffle Professional
• CorelDraw
• InkScape (open source)
• SVG format has a similar structure.
• Can be manipulated from JavaScript.
75. HTML5 & JavaFX
Controls
• HTML5 and JavaFX have rich suite of controls.
• Binding:
• JavaFX – built-in
• HTML5 – need library like knockout.js.
• HTML5 lacks a windowing API.
• No layout managers, windows, menu bars, etc.
• No framework for extending browser controls.
• Controls vary between browsers.
• No support for internationalization.
• JavaFX controls are node in the scene graph.
76. HTML5 & JavaFX
Tables
• HTML5
• No native “grid” data grid component (JTable/Excel equivalent)
• You cannot drag and drop <tr></tr> to rearrange a table.
• Challenges: Merging cells (row/column), copy paste, selection.
• JavaFX
• Powerful table component – joining cells, selection, copy paste,
drag and drop.
• Supports table joining in JavaFX 8.
77. HTML5 & JavaFX
Multimedia Support
• Video/audio codec support determined by patents.
• Oracle licenses formats for JavaFX.
• HTML5 supports no audio/video codecs by default.
• JavaFX provides a known set of codecs.
• Built on top of Gstreamer (http://www.gstreamer.com)
79. HTML5 & JavaFX
Video Codec Support
• HTML5 video includes controller
play/stop/progress/seek/volume.
• HTML5 – easy to fallback to plugins (Flash) where necessary.
• JavaFX – does not include controller UI.
• Neither technology can access individual video Frames!
81. HTML5 & JavaFX
Animation
• HTML5 animation is primitive.
• requestNextAnimationFrame callback
• You are responsible for everything else!
• Callback not supported on all platforms - polyfill can suffer
performance degradations
• Must either build a toolkit or use JavaScript animation library like
tween.js.
• JavaFX
• Animation framework built into the platform
• All nodes can be animated – include UI elements.
• javafx.animation.Animation – base class – two subclasses.
84. HTML5 & JavaFX
3D Support
• JavaFX 8 and HTML5 WebGL both support 3D.
• JavaFX 8 3D support:
• Built on top of OpenGL/Direct 3D
• Provides a built-in scene graph
• Decora – DSL Shader language
• HTML5 JavaFX WebView does not support WebGL.
• JavaFX 3D – 3D without the overhead.
85. HTML5 & JavaFX
WebGL
• WebGL developed by Khronos Group
• Based on OpenGL ES 2.0 – embedded OpenGL API used on iOS
and Android.
• API is low level – must develop or use framework on top of
WebGL.
• GLGE: http://www.glge.org
• SceneJS: http://www.scenejs.org
• CubicVR: http://www.cubicvr.org
• Three.js: http://www.threejs.org
• Not supported in all browsers.
• IE support has been lacking – first version IE 11.
• Safari requires the user enable WebGL (Developer menu).
• Shaders written in C-like language
86. HTML5 & JavaFX
three.js vs. JavaFX 3D
Feature JavaFX WebGL three.js
Light 7 2
Built-in Shapes 25 4
WebGL – no JavaScript libaries
Only triangle meshes
No picking API, lines, etc. (currently)
JavaFX
Highlevel API – use jogl for OpenGL capabilities.
87. HTML5 & JavaFX
Performance Tuning
• JVM can be tuned for
performance.
• HTML5 lacks tuning support.
• Cannot configure garbage
collection.
• Each browser is “different.”
• Limited tooling for exploring
JavaScript VM problems.
http://www.html5rocks.com/en/tutorials/speed/static-mem-pools
90. HTML5 & JavaFX
JavaFX CSS Control Skinning
• JavaFX uses CSS for skinning.
• JavaFX uses its own CSS attributes.
• JavaFX CSS reader is not fully compliant.
• Graphic artist will must learn JavaFX CSS properties.
• JavaFX skinning properties don’t support animation.
93. HTML5 & JavaFX
HTML5 Property HTML5 Value JavaFX Property JavaFX Value
background -webkit-gradient(
linear,
left top, left
bottom,
from(#3e779d),
to(#65a9d7))
-fx-background-color
linear-gradient(to
bottom,
rgb(62,119,157),
rgb(101,169,215))
border-radius 8px -fx-border-radius 8px
box-shadow rgba(0,0,0,1) 0
1px 0
-fx-effect dropshadow(one-pass-
box,black, 0,
0.0 , 0 , 1)
JavaFX CSS Control Skinning
94. HTML5 & JavaFX
WebView Overview
• Uses WebKit as the rendering engine – same renderer used
by:
• Safari
• Chrome <29 – Google has forked WebKit.
• Fully functional web browser – can render
cnn.com/ebay.com/etc.
• No built-in navigation controls.
• Proxy detection/configuration challenging.
• Limited control of page load/monitoring.
95. HTML5 & JavaFX
WebView Integration
Bidirectional communication:
• JavaScript code can call Java code from WebView.
• Java code can invoke JavaScript methods.
96. HTML5 & JavaFX
WebView Debugging (Secret)
Response will be JSON.
97. HTML5 & JavaFX
Integrating WebView
• WebView enables hybrid applications.
• Integrate web applications into desktop application.
• Integrate message forums/online help.
• Provide online HTML based help.
• Limitations:
• HTML5 geolocation feature doesn’t work.
• Unable to set user-agent (causes problems with some
JavaScript/servers.)
99. HTML5 & JavaFX
Conclusion
• HTML5:
• External libraries necessary to make HTML5 viable.
• Well developed ecosystem.
• Weakness: core language and feature integration.
• JavaFX:
• Well designed architecture with excellent feature integration.
• Next logical step for the desktop/embedded devices.
• Weakness: mobile support.
100. Summary
References
• Email contact:
• rcuprak@gmail.com
• Twitter: @ctjava
• Other Session:
• Hybrid Mobile Development with Apache Cordova and Java EE 7
(TUT5276)
• 50 EJB 3 Best Practices in 50 Minutes - CON1947
• Books:
Editor's Notes
[Michael]
Native HTML5 applications are fundamentally different from mobile web applications. An HTML5 application is a “Single Page Application” – this means that the application resides in a single “page.”
There is no:
Back button
URL bar
History
Shortcuts
The user cannot escape from your application.
You code the logic of the application in JavaScript -
You mobile framework to get going.
Don’t re-invent the wheel.
Desktop web development skills are different than mobile web development skills
Have to handle touch, small devices, device orientation changes.
Angular can be used although it isn’t listed.