This document discusses Eclipse MicroProfile, a set of microservices frameworks and specifications for Java microservices. It begins by introducing concepts like microservices and reactive applications. It then covers key MicroProfile specifications like Config, Fault Tolerance, Metrics, Health Check, and JWT. It provides examples of using these specifications. It also discusses Java EE 8 integration and popular MicroProfile implementations. Finally, it describes a demo application using Payara Micro to demonstrate Java EE and MicroProfile features.
1. The document discusses using Kotlin with MicroProfile for building microservices, teaching Kotlin newer techniques from Java and MicroProfile.
2. It provides examples of configuring Kotlin projects using Maven to work with MicroProfile libraries and annotations for dependency injection and JAX-RS.
3. The examples demonstrate a demo project using Kotlin with Jakarta EE and MicroProfile for entities, repositories, and controllers, and deploying the application to Oracle Cloud.
This document discusses Eclipse MicroProfile metrics and practical use cases. It begins with an overview of why metrics are important, especially for reactive applications and microservices. It then covers using metrics in Java monoliths and microservices, including with JMX, telemetry APIs, and MicroProfile. Several practical use cases are presented for generating different metric types like counters, gauges, meters, and histograms in microservices. Finally, examples of base metrics that could be monitored in monoliths are discussed, such as heap usage, CPU utilization, and GC executions.
This document discusses Eclipse MicroProfile and how it can help busy Java developers build microservices applications. It provides an overview of MicroProfile including configurations, fault tolerance, metrics, health checks, JWT authentication, and type-safe interfaces. It also describes a demo application built with Java EE, MicroProfile, Payara Micro, and factors for external concerns like deployment and orchestration. The document concludes with a brief discussion of Oracle Cloud.
The document discusses changes in Java versions from Java 8 to Java 14. It covers major new features and improvements in each version including modules in Java 9, switch expressions in Java 12, and records in Java 14. It also discusses real world challenges with upgrading such as compatibility, multiple JVMs, library updates, and IDE support.
This document summarizes the major changes and new features introduced in each version of Java from Java 8 to Java 17. It discusses key enhancements like modules in Java 9, switch expressions in Java 12, text blocks in Java 13, records and pattern matching in Java 14, sealed classes in Java 15 and strong encapsulation in Java 16. It also provides code examples to illustrate many of the new Java features.
This document discusses Eclipse MicroProfile, a set of microservices frameworks and specifications for Java microservices. It begins by introducing concepts like microservices and reactive applications. It then covers key MicroProfile specifications like Config, Fault Tolerance, Metrics, Health Check, and JWT. It provides examples of using these specifications. It also discusses Java EE 8 integration and popular MicroProfile implementations. Finally, it describes a demo application using Payara Micro to demonstrate Java EE and MicroProfile features.
1. The document discusses using Kotlin with MicroProfile for building microservices, teaching Kotlin newer techniques from Java and MicroProfile.
2. It provides examples of configuring Kotlin projects using Maven to work with MicroProfile libraries and annotations for dependency injection and JAX-RS.
3. The examples demonstrate a demo project using Kotlin with Jakarta EE and MicroProfile for entities, repositories, and controllers, and deploying the application to Oracle Cloud.
This document discusses Eclipse MicroProfile metrics and practical use cases. It begins with an overview of why metrics are important, especially for reactive applications and microservices. It then covers using metrics in Java monoliths and microservices, including with JMX, telemetry APIs, and MicroProfile. Several practical use cases are presented for generating different metric types like counters, gauges, meters, and histograms in microservices. Finally, examples of base metrics that could be monitored in monoliths are discussed, such as heap usage, CPU utilization, and GC executions.
This document discusses Eclipse MicroProfile and how it can help busy Java developers build microservices applications. It provides an overview of MicroProfile including configurations, fault tolerance, metrics, health checks, JWT authentication, and type-safe interfaces. It also describes a demo application built with Java EE, MicroProfile, Payara Micro, and factors for external concerns like deployment and orchestration. The document concludes with a brief discussion of Oracle Cloud.
The document discusses changes in Java versions from Java 8 to Java 14. It covers major new features and improvements in each version including modules in Java 9, switch expressions in Java 12, and records in Java 14. It also discusses real world challenges with upgrading such as compatibility, multiple JVMs, library updates, and IDE support.
This document summarizes the major changes and new features introduced in each version of Java from Java 8 to Java 17. It discusses key enhancements like modules in Java 9, switch expressions in Java 12, text blocks in Java 13, records and pattern matching in Java 14, sealed classes in Java 15 and strong encapsulation in Java 16. It also provides code examples to illustrate many of the new Java features.
Explore the history, versions and features of Java- a report by Pranav MishraSopra Steria India
Java was created in the early 1990s by Sun Microsystems to be used on consumer devices and computers. It has gone through many versions with new features added each time like generics, lambda expressions, and streams. The versions are named after animals or insects and key releases include Java 1.0 in 1996, Java 5.0 adding generics in 2004, Java 7 adding strings in switch statements in 2011, and Java 8 adding lambda expressions and date/time API in 2014. Java 9 is expected to improve logging, compiler control, and add support for datagram transport layer security.
Palestra apresentada no TDC Porto Alegre 2020, na sala Oracle. Revisitamos os Dessign Patterns nos Microsserviços para conversar como é que o ecosistema tem evoluido.
A brief look at a few IP cameras, wireless extenders and routers - a significant number have unpatched issues such as cross-site scripting, cross-site request forgery and authentication bypass, meaning we can take control of devices, change wireless settings and obtain a copy of all video on certain devices, all by having the unsuspecting user visit a web page we control.
RxJava is a library for composing asynchronous and event-based programs using observable sequences. It allows avoiding callback hell and makes it easy to compose and transform asynchronous processes through combining, filtering, etc. RxJava uses Observables to represent asynchronous data streams and allows subscribing to those streams using Observers. It supports asynchronous operations through Schedulers and can integrate with libraries like Retrofit to handle asynchronous network requests in a reactive way. Learning the RxJava concepts and operators takes some time but it provides many benefits for managing asynchronous code in a declarative way.
The document discusses using jcmd to troubleshoot Java applications. It provides an overview of the jcmd command and describes the various domains and suffixes that can be used with jcmd to obtain diagnostic information or control the JVM. These include getting thread dumps, heap details, JIT compiler data, and configuring Java logging. The document also demonstrates some example jcmd commands.
Building Scalable Stateless Applications with RxJavaRick Warren
RxJava is a lightweight open-source library, originally from Netflix, that makes it easy to compose asynchronous data sources and operations. This presentation is a high-level intro to this library and how it can fit into your application.
Dropwizard is a Java framework that makes it easy to build production-ready RESTful web services that are high-performance and operations-friendly. It includes components like Jetty for HTTP, Jersey for REST, Jackson for JSON, Metrics for monitoring, and integrates well with other Java libraries. Dropwizard aims to provide a simple way to create web services without the complexity of traditional Java application servers.
This document discusses 7 important JVM arguments for optimizing Java applications:
1. -Xmx and -XX:MaxMetaspaceSize for configuring heap and metaspace sizes
2. -Xss for configuring thread stack sizes
3. GC algorithm arguments like -XX:+UseParallelGC
4. Arguments for enabling GC logging like -Xloggc
5. -XX:+HeapDumpOnOutOfMemoryError for generating heap dumps on OOM errors
6. Network timeout arguments like -Dsun.net.client.defaultReadTimeout
7. -Duser.timeZone for setting the application timezone
This document provides an introduction to Retrofit and RxJava. It discusses:
1. How Retrofit turns REST APIs into Java interfaces and handles JSON conversion.
2. What RxJava is and how it allows for composing asynchronous and event-based programs using observable sequences.
3. Examples of making HTTP requests with Retrofit, including defining services, making synchronous and asynchronous requests, and using callbacks and RxJava.
4. Key RxJava concepts like Observables, operators like map, flatMap, and zip, and threading.
To cook lettuce, wash the leaves thoroughly in cold water and dry them with a salad spinner or paper towels. The lettuce can then be chopped or torn into bite-sized pieces and served. Lettuce is a low-calorie vegetable that provides vitamins K and A.
Vert.x v3 - high performance polyglot application toolkitSages
Vert.x is a polyglot application toolkit for building reactive applications on the JVM. It is designed for developing asynchronous and event-driven applications with non-blocking code using a lightweight and fast thread pool. Vert.x allows building distributed applications by deploying Verticles across multiple nodes that communicate via a distributed event bus.
[231] the simplicity of cluster apps with circuitNAVER D2
This document discusses Circuit, a lightweight cluster operating system. It provides a real-time API to view and control hosts, processes, and containers. The API allows traversal and manipulation of the cluster as a unified namespace. The document outlines the API, including command line usage and a Go client package. It then describes how to build a job scheduler service using the Circuit API, including designing the state, handling events, and running jobs on hosts. The vision is for Circuit to enable easy sharing of systems and for any program to take on different roles by executing as a recursive process tree on the cluster.
Micro-metrics to forecast performance tsunamisTier1 app
This document discusses using micro-metrics to forecast application performance issues. It outlines several types of micro-metrics including garbage collection, threading, networking, storage and database metrics. Capturing these micro-metrics can help identify potential problems before they cause outages. The metrics are useful for continuous integration/delivery, performance testing and production monitoring to help maintain high application availability and responsiveness. Micro-metrics work similarly to how tsunami detection systems use small ocean depth changes to forecast tsunamis far in advance.
16 artifacts to capture when there is a production problemTier1 app
Production problems are tricky to troubleshoot if proper diagnostic information isn’t captured. In this session, 16 important artifacts that you need to capture and the effective tools that you can use to analyze those artifacts are discussed.
In this session, the following topics have been discussed: code snippets that can generate memory leak, thread leak, CPU spike, unresponsiveness, BLOCKED threads, Deadlocks, Heavy I/O activity. If you can understand what triggers these problems, diagnosing and solving them might become easier.
In this session, sample code snippets that can generate memory leak, thread leak, CPU spike, unresponsiveness, BLOCKED threads, deadlocks, heavy I / O activity are discussed. If you can understand what triggers these problems, diagnosing and solving them might become easier.
Supercharged java 8 : with cyclops-reactJohn McClean
Overview of the rationale behind cyclops-react and some of it's features, including extended Java Collections, more powerful Sequential and Parallel Streaming, pattern matching, data types (such as Xor cyclops-react Either type, Maybe, Eval).
This document contains code for a Jenkins pipeline that defines stages for compiling, testing, packaging, deploying, and smoke testing a build. It also contains code to send notifications to Typetalk if the build fails. Additional code shows how to fetch pull request branches from a Git remote and check if a pull request is open for a given branch.
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...Lucidworks
The document discusses troubleshooting techniques for Solr, including using a "TreeMap" process of establishing boundaries, splitting the problem, identifying relevant parts, zooming in, and re-formulating boundaries in an iterative process until the problem is fixed. It outlines how to establish boundaries by defining the identity, location, timing, and magnitude of the problem. Examples are provided for indexing and searching processes in Solr.
Explore the history, versions and features of Java- a report by Pranav MishraSopra Steria India
Java was created in the early 1990s by Sun Microsystems to be used on consumer devices and computers. It has gone through many versions with new features added each time like generics, lambda expressions, and streams. The versions are named after animals or insects and key releases include Java 1.0 in 1996, Java 5.0 adding generics in 2004, Java 7 adding strings in switch statements in 2011, and Java 8 adding lambda expressions and date/time API in 2014. Java 9 is expected to improve logging, compiler control, and add support for datagram transport layer security.
Palestra apresentada no TDC Porto Alegre 2020, na sala Oracle. Revisitamos os Dessign Patterns nos Microsserviços para conversar como é que o ecosistema tem evoluido.
A brief look at a few IP cameras, wireless extenders and routers - a significant number have unpatched issues such as cross-site scripting, cross-site request forgery and authentication bypass, meaning we can take control of devices, change wireless settings and obtain a copy of all video on certain devices, all by having the unsuspecting user visit a web page we control.
RxJava is a library for composing asynchronous and event-based programs using observable sequences. It allows avoiding callback hell and makes it easy to compose and transform asynchronous processes through combining, filtering, etc. RxJava uses Observables to represent asynchronous data streams and allows subscribing to those streams using Observers. It supports asynchronous operations through Schedulers and can integrate with libraries like Retrofit to handle asynchronous network requests in a reactive way. Learning the RxJava concepts and operators takes some time but it provides many benefits for managing asynchronous code in a declarative way.
The document discusses using jcmd to troubleshoot Java applications. It provides an overview of the jcmd command and describes the various domains and suffixes that can be used with jcmd to obtain diagnostic information or control the JVM. These include getting thread dumps, heap details, JIT compiler data, and configuring Java logging. The document also demonstrates some example jcmd commands.
Building Scalable Stateless Applications with RxJavaRick Warren
RxJava is a lightweight open-source library, originally from Netflix, that makes it easy to compose asynchronous data sources and operations. This presentation is a high-level intro to this library and how it can fit into your application.
Dropwizard is a Java framework that makes it easy to build production-ready RESTful web services that are high-performance and operations-friendly. It includes components like Jetty for HTTP, Jersey for REST, Jackson for JSON, Metrics for monitoring, and integrates well with other Java libraries. Dropwizard aims to provide a simple way to create web services without the complexity of traditional Java application servers.
This document discusses 7 important JVM arguments for optimizing Java applications:
1. -Xmx and -XX:MaxMetaspaceSize for configuring heap and metaspace sizes
2. -Xss for configuring thread stack sizes
3. GC algorithm arguments like -XX:+UseParallelGC
4. Arguments for enabling GC logging like -Xloggc
5. -XX:+HeapDumpOnOutOfMemoryError for generating heap dumps on OOM errors
6. Network timeout arguments like -Dsun.net.client.defaultReadTimeout
7. -Duser.timeZone for setting the application timezone
This document provides an introduction to Retrofit and RxJava. It discusses:
1. How Retrofit turns REST APIs into Java interfaces and handles JSON conversion.
2. What RxJava is and how it allows for composing asynchronous and event-based programs using observable sequences.
3. Examples of making HTTP requests with Retrofit, including defining services, making synchronous and asynchronous requests, and using callbacks and RxJava.
4. Key RxJava concepts like Observables, operators like map, flatMap, and zip, and threading.
To cook lettuce, wash the leaves thoroughly in cold water and dry them with a salad spinner or paper towels. The lettuce can then be chopped or torn into bite-sized pieces and served. Lettuce is a low-calorie vegetable that provides vitamins K and A.
Vert.x v3 - high performance polyglot application toolkitSages
Vert.x is a polyglot application toolkit for building reactive applications on the JVM. It is designed for developing asynchronous and event-driven applications with non-blocking code using a lightweight and fast thread pool. Vert.x allows building distributed applications by deploying Verticles across multiple nodes that communicate via a distributed event bus.
[231] the simplicity of cluster apps with circuitNAVER D2
This document discusses Circuit, a lightweight cluster operating system. It provides a real-time API to view and control hosts, processes, and containers. The API allows traversal and manipulation of the cluster as a unified namespace. The document outlines the API, including command line usage and a Go client package. It then describes how to build a job scheduler service using the Circuit API, including designing the state, handling events, and running jobs on hosts. The vision is for Circuit to enable easy sharing of systems and for any program to take on different roles by executing as a recursive process tree on the cluster.
Micro-metrics to forecast performance tsunamisTier1 app
This document discusses using micro-metrics to forecast application performance issues. It outlines several types of micro-metrics including garbage collection, threading, networking, storage and database metrics. Capturing these micro-metrics can help identify potential problems before they cause outages. The metrics are useful for continuous integration/delivery, performance testing and production monitoring to help maintain high application availability and responsiveness. Micro-metrics work similarly to how tsunami detection systems use small ocean depth changes to forecast tsunamis far in advance.
16 artifacts to capture when there is a production problemTier1 app
Production problems are tricky to troubleshoot if proper diagnostic information isn’t captured. In this session, 16 important artifacts that you need to capture and the effective tools that you can use to analyze those artifacts are discussed.
In this session, the following topics have been discussed: code snippets that can generate memory leak, thread leak, CPU spike, unresponsiveness, BLOCKED threads, Deadlocks, Heavy I/O activity. If you can understand what triggers these problems, diagnosing and solving them might become easier.
In this session, sample code snippets that can generate memory leak, thread leak, CPU spike, unresponsiveness, BLOCKED threads, deadlocks, heavy I / O activity are discussed. If you can understand what triggers these problems, diagnosing and solving them might become easier.
Supercharged java 8 : with cyclops-reactJohn McClean
Overview of the rationale behind cyclops-react and some of it's features, including extended Java Collections, more powerful Sequential and Parallel Streaming, pattern matching, data types (such as Xor cyclops-react Either type, Maybe, Eval).
This document contains code for a Jenkins pipeline that defines stages for compiling, testing, packaging, deploying, and smoke testing a build. It also contains code to send notifications to Typetalk if the build fails. Additional code shows how to fetch pull request branches from a Git remote and check if a pull request is open for a given branch.
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...Lucidworks
The document discusses troubleshooting techniques for Solr, including using a "TreeMap" process of establishing boundaries, splitting the problem, identifying relevant parts, zooming in, and re-formulating boundaries in an iterative process until the problem is fixed. It outlines how to establish boundaries by defining the identity, location, timing, and magnitude of the problem. Examples are provided for indexing and searching processes in Solr.
JRuby, Ruby, Rails and You on the Cloud is a presentation about using Ruby on Rails with JRuby on cloud platforms. It introduces JRuby and how to set up a development environment. It demonstrates generating a Rails scaffold and accessing Java libraries from Rails. Deployment options on platforms like Engine Yard AppCloud are discussed. The presentation provides an overview of testing and recommends resources for learning more about Ruby, Rails, JRuby and deployment strategies.
Microsoft Power Point Best Practices For Scaling Heavily Adopted And Concur...Steve Feldman
The document discusses various tools used for monitoring and optimizing performance in a Blackboard environment. It recommends using Toad as the primary database access tool for tasks like script execution and basic DBA work. It also recommends using PAO (Performance Analysis for Oracle) as the primary monitoring tool for its warehousing capabilities and ability to compare workloads over time. Foglight is highlighted as a favorite tool for its lightweight instrumentation, ability to define rule-based traces to identify slow method calls and SQL statements, and other features. Configuration examples are provided for optimizing Java settings like heap size and garbage collection with aggressive -XX options.
Grow and Shrink - Dynamically Extending the Ruby VM StackKeitaSugiyama1
This document summarizes a presentation about dynamically extending the Ruby VM stack. It discusses two methods for extending the stacks - stretching and chaining. Stretching grows the stacks upwards when they reach the maximum size, while chaining implements the call stack as a linked list so only the internal stack needs growing. The implementation aims to make stack extensions safe and efficient for development by prohibiting access to old stacks and frequently triggering extensions for testing. Benchmarks show chaining has lower execution time than stretching but is still slower than the default implementation due to overhead from moving stacks and indirect access. Initial stack size has little effect on performance. The goal is to reduce memory usage through dynamic stack sizing.
This document discusses thread dumps, heap dumps, and best practices for generating and analyzing them. It defines a thread dump as a snapshot of all Java threads with information like name, state, and ID. A heap dump snapshots the Java heap showing object references and usage. The document recommends generating thread/heap dumps when full GC is frequent, memory isn't being reclaimed, or response times decrease. It provides commands to generate dumps and JVM options for tuning garbage collection and heap size. Finally, it includes links for further reading on Java memory management and performance tuning.
JCON Online 2021, International Java Community Conference, 07.10.21, Moritz Kammerer (@Moritz Kammerer, Expert Software Engineer at QAware).
== Please download slides in case they are blurred! ===
In his talk we have had a look at how Microservices can be developed with Micronaut. In our slides you can find out if it kept its promise.
The document discusses strategies for addressing Metaspace OutOfMemoryErrors (OOM) when redeploying web applications. It recommends monitoring Tomcat logs and memory usage, analyzing heap dumps to find classloader leaks and duplicate classes, and making configuration changes like closing Quartz schedulers and Log4j contexts. Specific issues addressed include leaks caused by third-party JARs like log4j-web and Xerces, and weak references in WeakHashMaps. Stress testing and troubleshooting on a production system found the root cause was an outdated Xerces JAR producing classloader leaks.
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]RootedCON
En los últimos años, el término "side-channel" a pasado de ser un concepto únicamente conocido en el sector de hardware hacking a ser un término popular dentro de la industria debido a las vulnerabilidades que se han ido publicando. CRIME, BREACH o FIESTA son claros ejemplos de vulnerabilidades que explotan un side-channel en TLS. Más recientemente, también hemos visto vulnerabilidades empleando este mismo concepto en procesadores, como Spectre o Meltdown.
En esta charla, repasaremos el concepto de "side-channel" y haremos un repaso por las diferentes vulnerabilidades que se han ido publicando a lo largo de estos últimos años, explicando en que consisten y que limitaciones tienen.
The document provides an introduction to Clojure by listing various resources about Clojure including websites, videos, papers and books. It discusses key aspects of Clojure such as its Lisp heritage, functional programming principles, namespaces, polymorphism using protocols and multimethods, and concurrency features using Software Transactional Memory. The document also compares Clojure to other Lisps and outlines Clojure's basic syntax where code is represented as data structures.
Java Day 2021, WeAreDevelopers, 2021-09-01, online: Moritz Kammerer (@Moritz Kammerer, Expert Software Engineer at QAware).
== Please download slides in case they are blurred! ===
In this talk, we took a look at how Microservices can be developed with Micronaut. Have a look if it has kept its promises.
This document provides an overview of Node.js application performance analysis and optimization as well as distributed system design. It discusses analyzing and optimizing CPU, memory, file I/O and network I/O usage. It also covers profiling Node.js applications using tools like Linux profiling tools, Node.js libraries, and V8 profiling tools. Lastly it discusses designing distributed systems using single machine and cluster approaches.
Optimal Strategies for Large Scale Batch ETL Jobs with Emma TangDatabricks
The ad tech industry processes large volumes of pixel and server-to-server data for each online user’s click, impression, and conversion data. At Neustar, we process 10+ billion events per day, and all of our events are fed through a number of Spark ETL batch jobs. Many of our Spark jobs process over 100 terabytes of data per run, each job runs to completion in around 3.5 hours. This means we needed to optimize our jobs in specific ways to achieve massive parallelization while keeping the memory usage (and cost) as low as possible. Our talk is focused on strategies dealing with extremely large data. We will talk about the things we learned and the mistakes we made. This includes: – Optimizing memory usage using Ganglia – Optimizing partition counts for different types of stages and effective joins – Counterintuitive strategies for materializing data to maximize efficiency – Spark default settings specific to large scale jobs, and how they matter – Running Spark using Amazon EMR with more than 3200 cores – Review different types of errors and stack traces that occur with large-scale jobs and how to read and handle them – How to deal with large number of map output status when there are 100k partitions joining with 100k partitions – How to prevent serialization buffer overflow as well as map out status buffer overflow. This can easily happen when data is extremely large – How to effectively use partitioners to combine stages and minimize shuffle.
Optimal Strategies for Large-Scale Batch ETL JobsEmma Tang
This document discusses strategies for optimizing large-scale batch ETL jobs at Neustar. It describes issues they face at scale like driver out of memory errors due to joining large datasets. It discusses ways they address skew in the data through increasing partitions and nesting joins. Optimization techniques covered include disabling unnecessary garbage collection, allowing extra timeouts, and using Ganglia and Spark UI to analyze long tasks. Using bloom filters and filtering during map-side combines can reduce data size before shuffling. Avoiding shuffles where possible through data denormalization and coalescing partitions when loading also improves performance.
What to do in case in which an application does not provide the desired performance? If you have ever had problems with optimizing the performance of Java applications, surely you had to invest a solid amount of time to find out the real cause for the problems, which included the involvement of administrators and developers. Is there a way to shorten the time required to find a solution, what free tools are available for this purpose and to check that you have finally solved the problem? In this presentation, we will try to provide answers to these questions with concrete real life examples.
Are you ready for cloud-native java JavaCro2019Jamie Coleman
This document provides an overview of moving Java applications to a cloud-native approach. It begins with a quiz asking if cloud-native requires throwing out existing knowledge or if modern Java runtimes allow reusing and extending existing applications. It then discusses how the Java ME runtime was designed for constrained environments like mobile and how its traits like small footprint and fast startup apply to cloud environments where compute equals money. The document explores how OpenJDK and OpenJ9 provide cloud-native Java runtimes with improved performance and lower memory usage. It notes that while runtimes help, application architecture also matters for cloud and microservices introduce challenges like network latency and security. Finally, it discusses how the MicroProfile project provides specifications to help build cloud-
The biggest challenge in performance tuning is identifying the root cause of the bottleneck. Once you find it, the fix often becomes trivial. However, this detective work takes patience, skills, and effort, so we often attempt to guess the cause, by trying out tentative fixes. The result: messy code, waste of time and money, and frustration. During this talk you will learn how to correctly zoom in on the bottleneck using three levels of profiling: distributed tracing with Zipkin, metrics with Micrometer, and profiling with the Java Flight Recorder already built into your JVM. We’ll focus on the latter and learn how to read a flame graph to trace some common issues of backend systems like connection/thread pool starvation, time-consuming aspects, hot methods, and lock contention, even if these occur in library code you did not write.
2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...chen yuki
This document describes three methods for exploiting a Java native vulnerability on Windows 7 with JRE 7 to bypass data execution prevention and address space layout randomization. The first method uses information leakage to conduct return-oriented programming. The second overwrites the length of a Java array and the access control context of a statement object. The third method sprays Java just-in-time compiled functions to control the instruction pointer and execute shellcode. Examples and limitations of each method are provided. In conclusion, the document recommends choosing an exploitation method based on the vulnerability and system configuration.
Similar to Principios básicos de Garbage Collector en Java (20)
Este documento introduce el análisis de datos, incluyendo sus ramas clásicas como el procesamiento de datos y la inteligencia de negocios. Explica que la inteligencia de negocios convierte datos en información y conocimiento para mejorar procesos, tomar mejores decisiones operativas, estratégicas y tácticas, y hacer mejores predicciones. También cubre temas de administración de datos como almacenes de datos, procesamiento de datos, y análisis de datos transaccionales, multidimensionales y de minería de
The document discusses an approach for migrating government institutions to cloud native technologies. It involves conducting architecture reviews to identify issues and solutions, creating a roadmap with options, and executing projects using a PMI-inspired methodology. Key aspects include developing reactive systems using microservices and containers, implementing CI/CD pipelines, and ensuring performance and code quality are monitored throughout the migration. The goal is to modernize aging systems and support growing user bases in a cloud native way.
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenVíctor Leonel Orozco López
Este documento describe cómo una empresa de software llamada Nabenik creó un arquetipo de Maven para iniciar proyectos de microservicios en Java de manera consistente. El arquetipo incluye un conjunto aprobado de dependencias y configuración de runtime para simplificar el desarrollo de microservicios. El documento explica cómo Nabenik evolucionó desde usar un POM de referencia compartido hasta usar arquetipos de Maven para proporcionar una plantilla preconfigurada para nuevos proyectos de microservicios.
Este documento resume la historia, presente y futuro de Java a lo largo de sus 26 años. Comenzó en 1991 y desde entonces ha crecido para convertirse en uno de los lenguajes de programación más populares, con una comunidad robusta y un ecosistema que incluye frameworks para backend, ingeniería de datos, y más. Aunque popular hoy, Java continuará evolucionando hacia un mundo multi-idioma en la nube, con especificaciones abiertas y el uso de microservicios y tecnologías emergentes.
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...Víctor Leonel Orozco López
This document discusses how to bootstrap microservices using Maven archetypes. It describes how a software company called Nabenik evolved their approach from using custom POMs and sample projects to developing Maven archetypes. The key benefits of archetypes are that they provide a standardized starting project template with curated dependencies and allow easy creation of new microservices by generating projects from the archetype. The document concludes with an overview of how to create a microservices archetype by starting with a base project, converting it to an archetype, replacing strings, and testing the new archetype.
En esta charla se discuten los distintos abordajes para lograr tolerancia a fallas en sistemas distribuidos y microservicios, especialmente con microservice chassis y service mesh.
Posteriormente se comentan algunas opciones para su implementación utilizando MicroProfile Fault Tolerance y Linkerd
En esta charla conjunta con el Colegio de Ingenieros de Guatemala hablamos acerca de Kubernetes como plataforma de orquestación de contenedores, incluyendo:
- Motivaciones e historia de Kubernetes
- Arquitectura básica de funcionamiento
- Uso de objetos centrales -e.g. Container, Pod, Deployment, Service-
Para la charla se ejecutan diversas pruebas básicas con Minikube y Oracle Cloud con el objetivo de presentar Kubernetes a las personas que estan iniciando con la plataforma.
Este documento resume las características y ventajas de GraalVM, una máquina virtual poliglota de código abierto desarrollada por Oracle Labs. GraalVM permite compilar aplicaciones JVM de forma anticipada (AOT) para generar ejecutables nativos, lo que mejora el rendimiento al reducir el tiempo de inicio y el uso de memoria. También soporta lenguajes poliglotas y proporciona un JDK certificado. Las imágenes nativas de GraalVM son útiles para aplicaciones de escritorio, servidores sin estado y contenedores, aunque
En esta presentación se presenta una discusión acerca del nuevo glosario del ingeniero de software incluyendo:
- TDD
- DDD
- Cloud Native
- 12 factors
- DevOps
- CQRS
- Event Sourcing
Que significan todos esos términos y como pueden ayudarlos en su jornada cloud.
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Durante esta presentación se cubren aspectos típicos de la carrera de desarrollador de software, incluyendo como funciona la carrera típica de desarrollador de software, tipos de desarrollador por función, niveles -i.e junior, mid, senior, architect- asi como algunas consideraciones de lo que he visto en estos 10 años.
Este documento presenta una introducción a Kotlin para desarrolladores Java. Kotlin puede compilarse para la JVM, JavaScript, Android y nativamente, y es interoperable con Java. Kotlin agrega características como inferencia de tipos, funciones como ciudadanos de primera clase, verificación de nulos segura y extensiones, con el objetivo de mejorar la productividad y legibilidad del código en comparación con Java. El documento también incluye una demostración de cómo usar Kotlin con Jakarta EE y MicroProfile para construir aplicaciones web robustas.
Presentación utilizada durante el seminario de actualización del Colegio de Ingenieros de Guatemala 2020.
Durante la charla se discuten principios básicos de Docker, Kubernetes y su necesidad/utilidad en microservicios con Java
O documento discute as vantagens do MicroProfile para aplicações monolíticas. Apresenta casos comuns de uso do MicroProfile em aplicações legadas para externalizar configuração, documentar APIs, melhorar tolerância a falhas e coletar métricas sem muita complexidade. O documento também inclui uma demonstração de aplicação Hello World usando Payara no Oracle Cloud.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
Discover top-tier mobile app development services, offering innovative solutions for iOS and Android. Enhance your business with custom, user-friendly mobile applications.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
3. TLDR
Explosi´on
• Mala selecci´on de tipos de dato
• Muchas variables y referencias (memory leak)
• Algoritmos innecesariamente complejos
• Muchas apps y poca memoria
3
24. Recolectores de basura
• Serial GC para Young y Old generations
• Parallel GC para Young y Old generations
• Parallel New para Young + Concurrent Mark and Sweep
(CMS) para Old Generation
• G1GC, para Young y Old generations
21
34. Complejidad
Complejidad = Cantidad de pasos para realizar una tarea
Figura 16: Complejidad computacional
Tambi´en conocido como ”programar bien”:O
29
36. Demo 5 - Mal Fibonacci
//...
public static long doFibonacci(int n) {
if (n <= 1)
return n;
else
return doFibonacci(n-1) + doFibonacci(n -2);
}
//...
31
37. Demo 6 - Buen Fibonacci
//...
public static long doFibonacci(int n) {
long a=0, b=1, c=0;
for(int i = 0 ; i < n; i++){
c = a + b;
a = b;
b = c;
}
return c;
}
//...
32