Java 9 and the impact on Maven Projects (Devoxx 2016)Robert Scholte
This is the Tools in Action version of the orginal "Java 9 and the impact on Maven Projects" presentation. It uses an old example project from the Maven by Example book, but it shows very well the issues you can hit while migrating.
A quick introduction about everything that's new in Java 11. Includes API changes, language changes and new tools in the JDK.
Demo's for this presentation can be found here: https://github.com/MichelSchudel/java11demo
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
Pitfalls of migrating projects to JDK 9Pavel Bucek
Java 9 brings revolutionary changes. There is a big difference between their adoption and adoption of similarly revolutionary features of Java 8: lambdas and streams could gradually be included in a project, but Jigsaw requires some significant changes to the existing code. Jersey and Tyrus are popular open source libraries of considerable size and cherish backward compatibility. This session presents lessons learned during a migration to Java 9 and adoption of Jigsaw features. The nature of the projects and their features—such as resource injection or scanning and using user-provided (thus unknown, in standard dependency view) classes—make the migration particularly interesting and informative for future Java 9 adopters.
Java 10 contains several new features including local variable type inference using the var keyword, time-based release versioning, improved support for Docker containers, and various library enhancements. It focuses on improving performance and usability. Some notable changes include local variable type inference for concise code, parallel full GC for the G1 collector to reduce latency, and application data sharing to improve startup times.
An introduction to the Java Platform Module System (JPMS). This talk is from April 2017, before the Java SE 9 release, so the final details may be subtly different, particularly once a standard becomes established for module names.
Writing concurrent code that is also correct is unbelievably hard. Naturally, humanity has developed a number of approaches to handle concurrency in the code, starting from basic threads that follow the hardware way to do concurrency to higher level primitives like fibers and work-stealing solutions. But which approach is the best for you? In this session, we'll take a look at a simple concurrent problem and solve it using different ways to manage concurrency: threads, executors, actors, fibers, monadic code with completable futures. All these approaches are different from the simplicity, readability, configuration and management point of view. Some scenarios are better modelled with threads, while sometimes you're better off with actors. We'll discuss the benefits of each approach and figure out when it's worth pursuing in your project.
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.
CDI portable extensions are one of greatest features of Java EE allowing the platform to be extended in a clean and portable way. But allowing extension is just part of the story. CDI opens the door to a whole new eco-system for Java EE, but it’s not the role of the specification to create these extensions.
Apache DeltaSpike is the project that leads this brand new eco-system by providing useful extension modules for CDI applications as well as tools to ease the creation of new ones.
In this session, we’ll start by presenting the DeltaSpike toolbox and show how it helps you to develop for CDI. Then we’ll describe the major extensions included in DeltaSpike, including 'configuration', 'scheduling' and 'data'.
JavaOne 2017 presentation about migration existing code to Java 9 modules.
Demos used during the presentation can be found on GitHub: https://github.com/java9-modularity/java9-migration-demos
With modularity coming to the core Java platform in Java 9, are all our modularity needs fulfilled, or does it still make sense to use something like OSGi? In this talk you will learn how Jigsaw helps modularity, and in what cases it might fall short.
Java 9 will provide a module-system, called Jigsaw. Besides modularising the JDK itself, Java developers can build more modular applications with Jigsaw. Modularity and Java go back way longer, though. OSGi, the de facto standard for modularity in Java has been around since 2000. Adoption is increasing in recent years.
A modular architecture has many advantages, such as increased decoupling resulting in more flexibility. In that sense, native support for Java modularity is very welcome. The big question now is: does Java 9 provide everything you need to build truly modular applications? Since Java 9 needs to maintain backwards compatibility, some compromises need to be made while enforcing module boundaries.
This talk discusses what you really need to build modular applications. We'll investigate which requirements are met (or not) by both module systems. You'll see that both Jigsaw and OSGi provided pieces of the modularity puzzle. Also, you'll learn whether having an additional modular runtime such as OSGi on top of Java 9 still makes sense.
Introduction to JDK-9 Modules and JLink Plugins
Modules
Module Dependencies
Jlink and Packaging
Jlink Plugins
Example Plugins
System Module Descriptor Plugin
Compress Plugin
Release-Info Plugin
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Julian Robichaux
This document discusses Java 8 features like lambdas and streams. It begins with an introduction to lambdas, providing an example of using a lambda expression with the setHostnameVerifier() method instead of an anonymous class. Lambdas allow passing functions as parameters and rely on functional interfaces. The document then covers streams, showing how to iterate over a certificate array using streams instead of a for loop. Additional examples demonstrate sorting a list of sandwiches using different comparator constructions and handling exceptions. The key benefits of lambdas and streams are cleaner, more readable code that encourages a functional programming style.
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.
This document provides an overview of the Play 2 framework, including:
- Play features such as type-safety and async programming.
- The anatomy of a Play application including directories for assets, controllers, models, and views.
- Play's MVC architecture with models, views rendered by Twirl templates, and controllers handling requests and responses.
- Form handling in Play using binding and validation.
JDK 9: Big Changes To Make Java SmallerSimon Ritter
This document discusses the major changes coming in JDK 9, including modularizing the Java platform and removing unsupported APIs. Key changes include encapsulating internal APIs, removing a small number of supported APIs, changing the binary structure, and introducing a new module system. The module system aims to improve security, maintainability and performance by eliminating classpath issues and allowing flexible construction of applications.
Gradle is an open source build automation tool that uses Groovy for its build configuration files rather than XML like Maven. It offers features like incremental compilation, parallel task execution, and a built-in dependency management system. Projects can be configured as multi-module builds with hierarchical or flat layouts. Gradle supports plugins for tasks like compilation, testing, packaging, and publishing. It integrates with IDEs like IntelliJ, Eclipse, and NetBeans and can be used to build Java EE applications and other projects.
This document discusses lean UX design principles for mobile apps. It emphasizes starting with minimum viable products (MVPs) using techniques like paper prototyping, interactive wireframing, single features, or "fake doors" to test usability cheaply and quickly. The goal is to solve 80% of problems with 20% of the effort through a feedback loop that allows for fast learning. UX is described as the "experience" an app provides rather than how it looks or is made, and mobile requires special usability considerations due to touchscreens.
Embracing Reactive Streams with Java 9 and Spring 5Wilder Rodrigues
This talk is about going back to the basics, when Reactive Programming was not a buzz and not used in the Enterprise Arena. There will be moments when you will regret being here, but then we will present you with the Beauty of the Seventies. This talk intends to make you travel through time, experiencing how things were done back then. From the Beauty of the Seventies we will move straight to the GoF Observer pattern, which has been implemented over and over again with Publish / Subscriber mechanisms. That will depict the foundations of what we have seen with Functional Programming, Reactive Programming, FRP and Reactive Streams. Although all that sounds interesting, it’s not our last stop. We still have to go over Java 9 and Spring Web Reactive Framework. It embraces Reactive Streams and Reactor, by defying the challenge of switching from imperative-style to non-blocking logic. It might be seem by some as shiny and new, but it’s based on a well established idea that has been helping us for more than 40 years.
Java 9 will include many new features beyond just Jigsaw modules, including enhanced method handles, modular application packaging, and dynamic linking capabilities. It may cause some code to break, so developers are encouraged to try it out now rather than later. Java 9 will improve performance in areas like locking, graphics, and hardware usage. Tooling is being updated for Java 9 as well, with IntelliJ IDEA gaining features like automatic module-info generation and JLink artifact support.
The document provides tips for Eclipse users switching to IntelliJ IDEA. It recommends downloading the Key Promoter plugin, printing out the keymap and Eclipse to IntelliJ cheat sheet, watching tip videos regularly, and identifying local IntelliJ experts. Additional tips include staying in the Eclipse keymap comfort zone initially, using the Eclipse compiler plugin, and remembering that code is always formatted and saved automatically in IntelliJ IDEA.
The feature we always hear about whenever Java 9 is in the news is Jigsaw, modularity. But this doesn't scratch the
same developer itch that Java 8's lambdas and streams did, and we're left with a vague sensation that the next version might not be that interesting.
Java 9 actually has a lot of great additions and changes to make development a bit nicer. These features can't be lumped under an umbrella term like Java 8's lambdas and streams, the changes are scattered throughout the APIs and language features that we regularly use.
In this presentation Trisha will show, via live coding:
- How we can use the new Flow API to utilise Reactive Programming
- How the improvements to the Streams API make it easier to control real-time streaming data
- How to the Collections convenience methods simplify code
Along the way we'll bump into other Java 9 features, including some of the additions to interfaces and changes to deprecation. We’ll see that once you start using Java 9, you can't go back to Before.
Java 9 is expected to include several new features and changes, including:
- New collection factory methods like Set.of() and Map.of() that provide immutable collections.
- Enhancements to the Stream API such as takeWhile() and dropWhile().
- Syntax changes like allowing effectively final variables in try-with-resources and @SafeVarargs for private methods.
- The addition of JShell to provide a Java REPL.
- Garbage First (G1) garbage collector becoming the default collector.
- Various performance and logging improvements.
Java 9 버젼에서 변화된 내용들을 가볍게 정리하는 형태로 만들어봤다.
소프트웨어 캠퍼스 강사팀 4기의 발표자료 이기도 하다.
소프트웨어 캠퍼스(https://www.facebook.com/groups/softwarecamp/)는 강의와 스터디등을 통해 서로를 성장시켜갈 수 있는 커뮤니티가 되려는 곳이다.
The document outlines many new features and enhancements coming in Java SE 8, including lambda expressions, extension methods, annotations on types, stream API additions, date and time API improvements, security enhancements, and virtual machine optimizations. It also discusses the ongoing process for Java enhancement proposals and modularization preparation work.
Presented by Vaibhav Choudhary, Java Platforms Team, Oracle in Walmart languages meetup on 28th April in BLR.
Java with all its recent changes are ready for Cloud and for Container. Let’s unfold the story:
Performance Improvement
Fast startup time
Low memory overhead
Respective to container boundaries, if any
This presentation is part of Container Conference 2018 presented by Vaibhav Choudhary, Principal Staff Engineer, Oracle: www.containerconf.in
--
Container become the fundamental building block unit of modern application and for cloud. So, lets learn in this session that how you can containerize (dockerize in the demo) a java image. What are the effort we put to make Java, Container aware. How Java started understanding Container and start respecting the container boundary. We will also learn how you can leverage java features like AppCDS, AOT inside the container and make it faster than even.
--
Different Java implementations exist. Your code lives multiple lifes inside them and JIT compilers provide performance behind the scenes. Some JVMs have ahead-of-time (AOT) compilation that shortens the path. Statement of the problem is different, as well as solutions. Let's see why do we need pre-compiled code, how it can already be produced and used with Hotspot. How Project Graal lets Java to compile Java to native code and how new Java-Level JVM Compiler Interface incorporates Java to compilation work of JVM.
The document discusses new features in Java 8 including lambda expressions, streams API, date and time API improvements, and base64 encoding/decoding additions to the platform. It also covers performance enhancements like parallel array sorting, Nashorn JavaScript engine integration, and removal of permanent generation memory. Modularization plans for Java 9 and beyond are briefly mentioned.
The document discusses new features in Java 8 including lambda expressions, streams API, date and time API improvements, and base64 encoding/decoding additions to the platform. It also covers performance enhancements like parallel array sorting, Nashorn JavaScript engine integration, and removal of permanent generation memory. Modularization plans for Java 9 and beyond are briefly mentioned.
This document provides an overview of Java 8 including:
- Java 8 has approximately 9 million developers and Oracle supports versions 6-8.
- New features include default methods, lambda expressions, streams, and parallel processing capabilities.
- JavaScript integration allows JavaScript code to be run from Java, enabling database and other connections from JavaScript.
- Potential issues with Java 8 include more complex debugging due to lambda expressions and increased abstraction.
This document discusses the challenges and opportunities of serverless Java. It notes that while Java is one of the most popular languages, its usage in serverless computing has been limited. However, the Fn Project provides an open-source platform that allows for developing serverless Java applications using established Java tooling while achieving low latency and high performance through techniques like container-optimized JVMs and GraalVM compilation. Overall, serverless Java is viable through these "blueprints" and has a promising future as the ecosystem continues to evolve.
Bytecode Verification, the Hero That Java Needs [JavaOne 2016 CON1500]David Buck
Often the true mark of a successful technology is when something works so well that those who benefit the most from it are not even aware of its existence. Java’s bytecode verification undoubtedly falls into this category, but it is as vital as ever to keeping Java secure and safe. This session takes a deep dive into the safeguards that bytecode verification provides for us and shows how it continues to protect us from not only malicious code but also our own mistakes.
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
Explore the JShell API. Learn how it can be used to add interactive Java expression/declaration execution to new or existing tools. See how the completion functionality can enhance code editors or analyzers. Get a behind the scenes look at the JShell architecture and its deep integration with the Java platform.
The document discusses Concierge, an OSGi framework designed for embedded devices. It has the following key points:
1. Concierge is an implementation of the OSGi dynamic module system that aims to have a small footprint suitable for embedded devices while maintaining compatibility with the OSGi specification.
2. Experiments show Concierge has a footprint of only 245kB, much smaller than other OSGi frameworks, while still supporting full OSGi R5 compatibility.
3. Concierge is designed to have usability in mind for embedded systems, staying close to OSGi standards with limited additional functionality and good integration between application behavior and framework events.
This slides show
1. How to obtain code coverage information for Java code
2. What kind of code coverage it is possible to get
3. Is 100% block coverage feasible, is it useful
4. How the code coverage could be used for more than discovering a percentage of uncovered code
Configuration for Java EE: Config JSR and TamayaDmitry Kornilov
Slides from our joint talk with Werner Keil about configuration proposal for Java EE and Tamaya we've done on 16 Mov 2016 in Sofia on Java2Days conference.
This document provides an agenda and slides for a presentation on Java 10. The agenda includes discussing Java version numbers, Java in containers and open source, migrating to JDK 10, and features of JDK 10. Key features presented are the Java module system, local variable type inference, application class data sharing, root certificates, and the experimental ZGC garbage collector. The slides provide details on each topic and are copyrighted by Oracle.
The document discusses Java updates in JDK 9, with highlights including:
- Modularity improvements like modular source code and modular run-time images.
- Developer convenience features such as simplified Doclet API and Java shell.
- Diagnostic updates like standardized GC logging and additional diagnostic commands.
- Removal of some deprecated JVM options and garbage collector combinations.
- Updates to strings, Javadoc, JavaScript/HTTP support, and various native platform improvements.
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"GlobalLogic Ukraine
This webinar by Oleksandr Bodnar (Lead Software Engineer, GlobalLogic) was delivered at Java Community Webinar #12 on July 14, 2021.
Webinar abstracts:
- Java History: OpenJDK and Oracle JDK
- Java EE (Jakarta EE) vs SE vs ME
- JEP Java SE 8-16
- Future editions of Java
More details and presentation: https://www.globallogic.com/ua/about/events/java-community-webinar-12/
Lucene, Solr and java 9 - opportunities and challengesCharlie Hull
Apache Lucene and Solr needed to be updated to work with Java 9's new module system. This introduced challenges around strong encapsulation and reflective access. The talk discussed changes like compact strings and performance improvements from intrinsics and the G1 garbage collector. It also recommended using multi-release JARs to include Java 9 specific implementations of utils classes for compatibility. Migrating to Java 9 could improve security and performance in some cases for Elasticsearch users.
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Chris Swan
Have you noticed the OpenSSF Scorecard badges on the official Dart and Flutter repos? It's Google's way of showing that they care about security. Practices such as pinning dependencies, branch protection, required reviews, continuous integration tests etc. are measured to provide a score and accompanying badge.
You can do the same for your projects, and this presentation will show you how, with an emphasis on the unique challenges that come up when working with Dart and Flutter.
The session will provide a walkthrough of the steps involved in securing a first repository, and then what it takes to repeat that process across an organization with multiple repos. It will also look at the ongoing maintenance involved once scorecards have been implemented, and how aspects of that maintenance can be better automated to minimize toil.
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsMydbops
This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization.
Key Takeaways:
* Understand why connection pooling is essential for high-traffic applications
* Explore various connection poolers available for PostgreSQL, including pgbouncer
* Learn the configuration options and functionalities of pgbouncer
* Discover best practices for monitoring and troubleshooting connection pooling setups
* Gain insights into real-world use cases and considerations for production environments
This presentation is ideal for:
* Database administrators (DBAs)
* Developers working with PostgreSQL
* DevOps engineers
* Anyone interested in optimizing PostgreSQL performance
Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services
How to Avoid Learning the Linux-Kernel Memory ModelScyllaDB
The Linux-kernel memory model (LKMM) is a powerful tool for developing highly concurrent Linux-kernel code, but it also has a steep learning curve. Wouldn't it be great to get most of LKMM's benefits without the learning curve?
This talk will describe how to do exactly that by using the standard Linux-kernel APIs (locking, reference counting, RCU) along with a simple rules of thumb, thus gaining most of LKMM's power with less learning. And the full LKMM is always there when you need it!
In this follow-up session on knowledge and prompt engineering, we will explore structured prompting, chain of thought prompting, iterative prompting, prompt optimization, emotional language prompts, and the inclusion of user signals and industry-specific data to enhance LLM performance.
Join EIS Founder & CEO Seth Earley and special guest Nick Usborne, Copywriter, Trainer, and Speaker, as they delve into these methodologies to improve AI-driven knowledge processes for employees and customers alike.
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.
MYIR Product Brochure - A Global Provider of Embedded SOMs & SolutionsLinda Zhang
This brochure gives introduction of MYIR Electronics company and MYIR's products and services.
MYIR Electronics Limited (MYIR for short), established in 2011, is a global provider of embedded System-On-Modules (SOMs) and
comprehensive solutions based on various architectures such as ARM, FPGA, RISC-V, and AI. We cater to customers' needs for large-scale production, offering customized design, industry-specific application solutions, and one-stop OEM services.
MYIR, recognized as a national high-tech enterprise, is also listed among the "Specialized
and Special new" Enterprises in Shenzhen, China. Our core belief is that "Our success stems from our customers' success" and embraces the philosophy
of "Make Your Idea Real, then My Idea Realizing!"