This document summarizes Projects Valhalla, Loom and GraalVM. Project Valhalla aims to introduce inline types (value types) to Java to improve performance by reducing memory usage and indirection. Project Loom introduces virtual threads and continuations to allow writing scalable and asynchronous code more easily. GraalVM is a high-performance polyglot virtual machine for Java and other languages.
Projects Valhalla and Loom at IT Tage 2021Vadym Kazulkin
In this presentation, we will explain the motivation, added values, challenges and current status of the Valhalla and Loom projects.
In the Valhalla project, Inline Type is introduced in Java. Inline Type is an immutable type that differs only by the state of its properties. The purpose is to reduce memory consumption and access times for such data types. Also as a part of this project Java type system will be unified so that Java will become a pure object-oriented programming language.
In the Loom project, lightweight threads are implemented in Java. The purpose is to no longer trade off between simplicity and scalability of the source code and to reconcile both.
Projects Valhalla, Loom and GraalVM at JUG MainzVadym Kazulkin
This document discusses three Java projects: Project Valhalla, Project Loom, and GraalVM.
Project Valhalla aims to introduce inline types (value types) to Java to improve performance by reducing memory usage and indirection. Project Loom introduces virtual threads and continuations to allow writing scalable concurrent code more easily. GraalVM is a runtime that uses partial evaluation to compile Java and other languages to machine code for high performance.
Remote Procedure Calls in GWT allow Java server code to be called from GWT clients using procedure-like calls that can pass complex objects. The document discusses how GWT RPC is implemented, best practices for using RPC effectively including embracing asynchrony, using data transfer objects to avoid abstraction issues, and considerations for integrating RPC with server-side frameworks. Future directions for GWT RPC such as improved merging of updated objects from the client are also mentioned.
This document summarizes a presentation about Akka streams, which is a toolkit for building highly concurrent, distributed, and resilient message-driven applications on the JVM. It provides asynchronous back pressured stream processing using sources, sinks, and flows. Key features include actors for concurrency, clustering for location transparency and resilience, and integration with technologies like Kafka, Cassandra and HTTP. The document outlines how Akka streams work, how to write stream applications, and how streams can be used for scenarios like HTTP requests/responses and streaming data. It encourages contributions to Akka and discusses next steps like improved remoting and more stream connectors.
Akka Streams in Action @ ScalaDays Berlin 2016Konrad Malawski
Konrad Malawski will give a presentation on streams and Reactive Streams in action at ScalaDays Berlin. He works on the Akka team and helped develop the Reactive Streams specification and test compatibility kit (TCK). The presentation will include building examples with pre-release Akka Streams functionality and exploring the history and goals of Reactive Streams.
[Japanese] How Reactive Streams and Akka Streams change the JVM Ecosystem @ R...Konrad Malawski
Japanese subtitles by Yugo Maede-san, thank you very much. Japanese subtitled version of the "How Reactive Streams and Akka Streams change the JVM Ecosystem". http://www.slideshare.net/ktoso/how-reactive-streams-akka-streams-change-the-jvm-ecosystem
The Scala programming language has been gaining significant traction over the last few years, being adopted by vastly different organizations from startups to large enterprises. While the language itself is pretty well understood and explained in tutorials and books, there is an apparent dearth of practical advice for new adopters on the best approach to integrating the new technology. In this talk I’ll attempt to offer such advice gathered over several years of production Scala use, focusing on tools, practices, patterns and the community, in the hope of making your transition into the Scala ecosystem easier and better-informed up front.
A talk given at JavaOne 2015 in San Francisco.
This document summarizes Konrad Malawski's talk on reactive programming and related topics. Konrad discusses reactive streams, Akka toolkit for building concurrent applications, actors model for concurrency, and how circuit breakers can be used as a substitute for flow control. He also talks about the origins and development of reactive streams specification to provide a common set of semantics for backpressure.
Projects Valhalla and Loom at IT Tage 2021Vadym Kazulkin
In this presentation, we will explain the motivation, added values, challenges and current status of the Valhalla and Loom projects.
In the Valhalla project, Inline Type is introduced in Java. Inline Type is an immutable type that differs only by the state of its properties. The purpose is to reduce memory consumption and access times for such data types. Also as a part of this project Java type system will be unified so that Java will become a pure object-oriented programming language.
In the Loom project, lightweight threads are implemented in Java. The purpose is to no longer trade off between simplicity and scalability of the source code and to reconcile both.
Projects Valhalla, Loom and GraalVM at JUG MainzVadym Kazulkin
This document discusses three Java projects: Project Valhalla, Project Loom, and GraalVM.
Project Valhalla aims to introduce inline types (value types) to Java to improve performance by reducing memory usage and indirection. Project Loom introduces virtual threads and continuations to allow writing scalable concurrent code more easily. GraalVM is a runtime that uses partial evaluation to compile Java and other languages to machine code for high performance.
Remote Procedure Calls in GWT allow Java server code to be called from GWT clients using procedure-like calls that can pass complex objects. The document discusses how GWT RPC is implemented, best practices for using RPC effectively including embracing asynchrony, using data transfer objects to avoid abstraction issues, and considerations for integrating RPC with server-side frameworks. Future directions for GWT RPC such as improved merging of updated objects from the client are also mentioned.
This document summarizes a presentation about Akka streams, which is a toolkit for building highly concurrent, distributed, and resilient message-driven applications on the JVM. It provides asynchronous back pressured stream processing using sources, sinks, and flows. Key features include actors for concurrency, clustering for location transparency and resilience, and integration with technologies like Kafka, Cassandra and HTTP. The document outlines how Akka streams work, how to write stream applications, and how streams can be used for scenarios like HTTP requests/responses and streaming data. It encourages contributions to Akka and discusses next steps like improved remoting and more stream connectors.
Akka Streams in Action @ ScalaDays Berlin 2016Konrad Malawski
Konrad Malawski will give a presentation on streams and Reactive Streams in action at ScalaDays Berlin. He works on the Akka team and helped develop the Reactive Streams specification and test compatibility kit (TCK). The presentation will include building examples with pre-release Akka Streams functionality and exploring the history and goals of Reactive Streams.
[Japanese] How Reactive Streams and Akka Streams change the JVM Ecosystem @ R...Konrad Malawski
Japanese subtitles by Yugo Maede-san, thank you very much. Japanese subtitled version of the "How Reactive Streams and Akka Streams change the JVM Ecosystem". http://www.slideshare.net/ktoso/how-reactive-streams-akka-streams-change-the-jvm-ecosystem
The Scala programming language has been gaining significant traction over the last few years, being adopted by vastly different organizations from startups to large enterprises. While the language itself is pretty well understood and explained in tutorials and books, there is an apparent dearth of practical advice for new adopters on the best approach to integrating the new technology. In this talk I’ll attempt to offer such advice gathered over several years of production Scala use, focusing on tools, practices, patterns and the community, in the hope of making your transition into the Scala ecosystem easier and better-informed up front.
A talk given at JavaOne 2015 in San Francisco.
This document summarizes Konrad Malawski's talk on reactive programming and related topics. Konrad discusses reactive streams, Akka toolkit for building concurrent applications, actors model for concurrency, and how circuit breakers can be used as a substitute for flow control. He also talks about the origins and development of reactive streams specification to provide a common set of semantics for backpressure.
End to End Akka Streams / Reactive Streams - from Business to SocketKonrad Malawski
The Reactive Streams specification, along with its TCK and various implementations such as Akka Streams, is coming closer and closer with the inclusion of the RS types in JDK 9. Using an example Twitter-like streaming service implementation, this session shows why this is a game changer in terms of how you can design reactive streaming applications by connecting pipelines of back-pressured asynchronous processing stages. The presentation looks at the example from two perspectives: a raw implementation and an implementation addressing a high-level business need.
The document discusses using Apache Camel and Apache Karaf to build distributed, asynchronous systems in a similar way to AKKA. It provides examples of building a dynamic routing system using Camel routing and JMS, as well as a modular ETL system for processing CSV files using a configurable, hot-deployable mutation framework. The examples demonstrate how to achieve scalability, modularity, and asynchronous behavior without deep knowledge of the underlying technologies through an event-driven architecture based on messaging.
ITSubbotik - как скрестить ежа с ужом или подводные камни внедрения функциона...Vyacheslav Lapin
This document provides an agenda for a presentation on problems with parallel streams and lambda expressions in Java 8. The presentation discusses how parallel streams can sometimes slow down operations when system resources are constrained compared to sequential streams. It also examines how exceptions thrown in lambda expressions result in complex stack traces that are difficult to debug. The document includes links to code examples demonstrating these issues.
The document discusses Akka, a toolkit for building highly concurrent, distributed, and resilient message-driven applications on the JVM. It describes key components of Akka including actors for concurrency, clusters for location-transparent resilient applications, persistence for event sourcing, and HTTP for asynchronous reactive servers. It also discusses the actor model of concurrent computation and related topics like reactive streams and advantages of asynchronous messaging.
The document summarizes Martin Odersky's talk at Scala Days 2016 about the road ahead for Scala. The key points are:
1. Scala is maturing with improvements to tools like IDEs and build tools in 2015, while 2016 sees increased activity with the Scala Center, Scala 2.12 release, and rethinking Scala libraries.
2. The Scala Center was formed to undertake projects benefiting the Scala community with support from various companies.
3. Scala 2.12 focuses on optimizing for Java 8 and includes many new features. Future releases will focus on improving Scala libraries and modularization.
4. The DOT calculus provides a formal
The things we don't see – stories of Software, Scala and AkkaKonrad Malawski
The document discusses some of the unseen aspects of software, programming languages, and distributed systems. It covers topics like tradeoffs that must be made in software but are not visible, the impact of blocking code in Akka applications, and how traits are represented differently in Scala depending on the version. Messages are emphasized as a core abstraction in Akka rather than method calls. Some hidden features of ScalaDoc are also shown.
Reactive Streams are a cross-company initiative first ignited by Lightbend in 2013, soon to be joined by RxJava and other implementations focused on solving a very similar problem: asynchronous non-blocking stream processing, with guaranteed over-flow protection. Fast forward to 2016 and now these interfaces are part of JSR-266 and proposed for JDK9.
In this talk we'll first disambiguate what the word Stream means in this context (as it's been overloaded recently by various different meanings), then look at how its protocol works and how one might use it in the real world showing examples using existing implementations.
We'll also have a peek into the future, to see what the next steps for such collaborative protocols and the JDK ecosystem are in general.
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
Apache Cordova is used to wrap HTML5 applications into native mobile applications that can access device capabilities. A demo application was shown that used Cordova for the mobile portion and Java EE 7 on the server side. Key technologies discussed included Cordova plugins, RESTful web services, Java API for JSON, and Java API for WebSockets for bidirectional communication between the mobile app and server. jQuery Mobile was also mentioned as a potential UI framework.
This document discusses integration testing with Selenium, including:
- The position of functional/integration testing compared to other types of testing.
- Approaches to test design like using domain language actions and behavior driven development.
- Examples of how to write tests using Selenium, including data-driven testing and multi-station "lead deputy" testing.
- Considerations for high-level test design like focusing on business objects, flows, functions and features.
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.
Konrad Malawski gave a talk at Scala Days CPH 2017 about the current state and future direction of Akka. He discussed how Akka is moving from the actor model to reactive streams and Akka Streams for better concurrency and distribution capabilities. Akka Cluster provides robust membership and fault tolerance for distributed actors across many nodes, while Cluster Sharding enables easy sharding of data and work across a cluster. The talk outlined Akka's past successes and hinted at upcoming improvements to further "do better than that."
This document provides an overview of GraphQL, including:
- GraphQL is a query language for APIs created by Facebook in 2012 that allows clients to request specific data fields and embed requests.
- It addresses issues with REST APIs like multiple requests being needed to join data and consumer having to parse responses.
- GraphQL allows consumer-driven queries that return exactly what is asked for in a hierarchical JSON response.
- The document discusses GraphQL queries, mutations, subscriptions, and introspection capabilities. It provides examples of using GraphQL with Watson Work Services and the Darwino implementation.
2015 Java update and roadmap, JUG sevillaTrisha Gee
Not my material! Courtesy of Oracle's Aurelio García-Ribeyro and Georges Saab.
Presentation given to the Sevilla Java User Group about the state of Java
Writing concurrent programs that can run in multiple threads and on multiple cores is crucial but daunting. Futures provides a convenient abstraction for many problem domains. The online course "Intermediate Scala" includes an up-to-date discussion of futures and the parts of java.util.concurrent that underlie the Scala futures implementation. Unlike Java's futures, Scala futures supports composition, transformations and sophisticated callbacks.
The author is managing editor of http://scalacourses.com, which offers self-paced online courses that teach Introductory and Intermediate Scala and Play Framework.
- The document discusses the Simple Build Tool (sbt) and how it can be used to define Scala projects and their dependencies.
- It describes the structure of sbt's build.sbt file which defines project settings, dependencies, and repositories.
- Useful sbt plugins are mentioned like sbt-idea and sbteclipse to generate IDE project files, and sbt-assembly to build single JAR files. Common sbt tasks are also listed.
- Integration of sbt projects with IntelliJ IDEA and Eclipse IDEs is covered, with IDEA having better support and integration with sbt than Eclipse.
Java 9 is just around the corner. In this session, we'll describe the new modularization support (Jigsaw), new JDK tools, enhanced APIs and many performance improvements that were added to the new version.
This document discusses Java releases and commercial support for Java. It provides an overview of the history of Java releases from Java 1 to Java 11. It describes the new faster release cycle introduced in 2018. It also outlines the commercial support models from various vendors like Oracle, Azul, and Bellsoft, including pricing structures based on the number of servers/processors.
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
Everybody wants scalable systems. However, writing non-blocking applications in Java is not an easy task. In this session, we'll go over 3 different frameworks for managing multi-treading and concurrency support (Akka, Vertx and Quasar).
Reactive programming is gaining momentum for a while now using RxJava, Vert.x and other frameworks. By a short delay, spring finally adopts reactive programming to its core. During this presentation, we will briefly explore the changes in Spring 5 and will dedicate most of the time to discuss and demonstrate reactive programming using Spring 5.
This document discusses Projects Valhalla and Loom in Java. Project Valhalla aims to introduce value types to improve memory usage and performance. It plans to unify the Java type system by introducing value classes, primitive classes, and reference projections. Project Loom introduces virtual threads and continuations to enable simple and scalable concurrent programming using structured concurrency. Both projects are currently in preview stages in JDK 19.
End to End Akka Streams / Reactive Streams - from Business to SocketKonrad Malawski
The Reactive Streams specification, along with its TCK and various implementations such as Akka Streams, is coming closer and closer with the inclusion of the RS types in JDK 9. Using an example Twitter-like streaming service implementation, this session shows why this is a game changer in terms of how you can design reactive streaming applications by connecting pipelines of back-pressured asynchronous processing stages. The presentation looks at the example from two perspectives: a raw implementation and an implementation addressing a high-level business need.
The document discusses using Apache Camel and Apache Karaf to build distributed, asynchronous systems in a similar way to AKKA. It provides examples of building a dynamic routing system using Camel routing and JMS, as well as a modular ETL system for processing CSV files using a configurable, hot-deployable mutation framework. The examples demonstrate how to achieve scalability, modularity, and asynchronous behavior without deep knowledge of the underlying technologies through an event-driven architecture based on messaging.
ITSubbotik - как скрестить ежа с ужом или подводные камни внедрения функциона...Vyacheslav Lapin
This document provides an agenda for a presentation on problems with parallel streams and lambda expressions in Java 8. The presentation discusses how parallel streams can sometimes slow down operations when system resources are constrained compared to sequential streams. It also examines how exceptions thrown in lambda expressions result in complex stack traces that are difficult to debug. The document includes links to code examples demonstrating these issues.
The document discusses Akka, a toolkit for building highly concurrent, distributed, and resilient message-driven applications on the JVM. It describes key components of Akka including actors for concurrency, clusters for location-transparent resilient applications, persistence for event sourcing, and HTTP for asynchronous reactive servers. It also discusses the actor model of concurrent computation and related topics like reactive streams and advantages of asynchronous messaging.
The document summarizes Martin Odersky's talk at Scala Days 2016 about the road ahead for Scala. The key points are:
1. Scala is maturing with improvements to tools like IDEs and build tools in 2015, while 2016 sees increased activity with the Scala Center, Scala 2.12 release, and rethinking Scala libraries.
2. The Scala Center was formed to undertake projects benefiting the Scala community with support from various companies.
3. Scala 2.12 focuses on optimizing for Java 8 and includes many new features. Future releases will focus on improving Scala libraries and modularization.
4. The DOT calculus provides a formal
The things we don't see – stories of Software, Scala and AkkaKonrad Malawski
The document discusses some of the unseen aspects of software, programming languages, and distributed systems. It covers topics like tradeoffs that must be made in software but are not visible, the impact of blocking code in Akka applications, and how traits are represented differently in Scala depending on the version. Messages are emphasized as a core abstraction in Akka rather than method calls. Some hidden features of ScalaDoc are also shown.
Reactive Streams are a cross-company initiative first ignited by Lightbend in 2013, soon to be joined by RxJava and other implementations focused on solving a very similar problem: asynchronous non-blocking stream processing, with guaranteed over-flow protection. Fast forward to 2016 and now these interfaces are part of JSR-266 and proposed for JDK9.
In this talk we'll first disambiguate what the word Stream means in this context (as it's been overloaded recently by various different meanings), then look at how its protocol works and how one might use it in the real world showing examples using existing implementations.
We'll also have a peek into the future, to see what the next steps for such collaborative protocols and the JDK ecosystem are in general.
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
Apache Cordova is used to wrap HTML5 applications into native mobile applications that can access device capabilities. A demo application was shown that used Cordova for the mobile portion and Java EE 7 on the server side. Key technologies discussed included Cordova plugins, RESTful web services, Java API for JSON, and Java API for WebSockets for bidirectional communication between the mobile app and server. jQuery Mobile was also mentioned as a potential UI framework.
This document discusses integration testing with Selenium, including:
- The position of functional/integration testing compared to other types of testing.
- Approaches to test design like using domain language actions and behavior driven development.
- Examples of how to write tests using Selenium, including data-driven testing and multi-station "lead deputy" testing.
- Considerations for high-level test design like focusing on business objects, flows, functions and features.
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.
Konrad Malawski gave a talk at Scala Days CPH 2017 about the current state and future direction of Akka. He discussed how Akka is moving from the actor model to reactive streams and Akka Streams for better concurrency and distribution capabilities. Akka Cluster provides robust membership and fault tolerance for distributed actors across many nodes, while Cluster Sharding enables easy sharding of data and work across a cluster. The talk outlined Akka's past successes and hinted at upcoming improvements to further "do better than that."
This document provides an overview of GraphQL, including:
- GraphQL is a query language for APIs created by Facebook in 2012 that allows clients to request specific data fields and embed requests.
- It addresses issues with REST APIs like multiple requests being needed to join data and consumer having to parse responses.
- GraphQL allows consumer-driven queries that return exactly what is asked for in a hierarchical JSON response.
- The document discusses GraphQL queries, mutations, subscriptions, and introspection capabilities. It provides examples of using GraphQL with Watson Work Services and the Darwino implementation.
2015 Java update and roadmap, JUG sevillaTrisha Gee
Not my material! Courtesy of Oracle's Aurelio García-Ribeyro and Georges Saab.
Presentation given to the Sevilla Java User Group about the state of Java
Writing concurrent programs that can run in multiple threads and on multiple cores is crucial but daunting. Futures provides a convenient abstraction for many problem domains. The online course "Intermediate Scala" includes an up-to-date discussion of futures and the parts of java.util.concurrent that underlie the Scala futures implementation. Unlike Java's futures, Scala futures supports composition, transformations and sophisticated callbacks.
The author is managing editor of http://scalacourses.com, which offers self-paced online courses that teach Introductory and Intermediate Scala and Play Framework.
- The document discusses the Simple Build Tool (sbt) and how it can be used to define Scala projects and their dependencies.
- It describes the structure of sbt's build.sbt file which defines project settings, dependencies, and repositories.
- Useful sbt plugins are mentioned like sbt-idea and sbteclipse to generate IDE project files, and sbt-assembly to build single JAR files. Common sbt tasks are also listed.
- Integration of sbt projects with IntelliJ IDEA and Eclipse IDEs is covered, with IDEA having better support and integration with sbt than Eclipse.
Java 9 is just around the corner. In this session, we'll describe the new modularization support (Jigsaw), new JDK tools, enhanced APIs and many performance improvements that were added to the new version.
This document discusses Java releases and commercial support for Java. It provides an overview of the history of Java releases from Java 1 to Java 11. It describes the new faster release cycle introduced in 2018. It also outlines the commercial support models from various vendors like Oracle, Azul, and Bellsoft, including pricing structures based on the number of servers/processors.
Multi-threading in the modern era: Vertx Akka and QuasarGal Marder
Everybody wants scalable systems. However, writing non-blocking applications in Java is not an easy task. In this session, we'll go over 3 different frameworks for managing multi-treading and concurrency support (Akka, Vertx and Quasar).
Reactive programming is gaining momentum for a while now using RxJava, Vert.x and other frameworks. By a short delay, spring finally adopts reactive programming to its core. During this presentation, we will briefly explore the changes in Spring 5 and will dedicate most of the time to discuss and demonstrate reactive programming using Spring 5.
This document discusses Projects Valhalla and Loom in Java. Project Valhalla aims to introduce value types to improve memory usage and performance. It plans to unify the Java type system by introducing value classes, primitive classes, and reference projections. Project Loom introduces virtual threads and continuations to enable simple and scalable concurrent programming using structured concurrency. Both projects are currently in preview stages in JDK 19.
JavaFest. Вадим Казулькин. Projects Valhalla, Loom and GraalVMFestGroup
В этом докладе мы рассмотрим мотивацию создания и текущее состояние следующих Java проектов:
- Проект Valhalla для внедрения встроенных типов (Inline Types) в Java
- Проект Loom для реализации облегченных потоков (Lightweight Threads) в Java
- GraalVM - полиглотная виртуальная машина для Java. Мы также поговорим о том, как GraalVM делает приложения на основе Java более доступными для внедрения Serverless парадигмы.
Highlights from Java 10-13 and Future of Java at JCON 2019 by Alukhanov and K...Vadym Kazulkin
The document summarizes highlights from Java versions 10 through 13 and discusses the future of Java, including projects Valhalla, Loom, and GraalVM.
It outlines new features in Java 10-13 like local variable type inference, garbage collector improvements, switch expressions, and HTTP client. It then discusses Project Valhalla which aims to introduce value types to improve performance by reducing memory usage and indirection.
It also covers Project Loom which explores lightweight user-mode threads called fibers and continuations to enable simpler concurrent programming. Finally, it discusses GraalVM and how it provides a high performance runtime for multiple languages with low overhead interoperability between languages.
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Vadym Kazulkin
I will cover the features of Java versions 10 and 11 and what is expected for Java 12. I will also speak about the current status of the projects going on like Project Amber (simplifying syntax), Project Valhalla (Value Types and Specialized Generics), Project Loom (Fibers and Continuations) and Project Metropolis (GraalVM)
Hacking Java - Enhancing Java Code at Build or RuntimeSean P. Floyd
In this talk I'll explore different techniques in and around Java that extend or complement the existing language features at compile or runtime.
Examples are Source and Byte Code generation, Annotation Processing and compile-time defect analysis. The talk is not specific to any Java version. Code sample will use Java 8, but could be easily adapted to previous versions (1.6+).
As the talk is called "Hacking Java", the focus will not only be on established best practices, but also on techniques of a more experimental nature. The talk is accompanied by a GitHub project with code samples and unit tests for every single technique.
Building Concurrent WebObjects applications with ScalaWO Community
This document discusses using Scala for concurrent programming in WebObjects applications. It begins by explaining why concurrent programming is important due to increasing numbers of processor cores. It then discusses challenges with traditional threading and locks and introduces the actor model as an easier and more scalable approach using message passing. The document demonstrates how to build concurrent WebObjects applications using Scala actors for processing tasks like video encoding. It shows how properties can configure WebObjects for concurrent requests and how ERXEC provides thread safety. Benchmarks show the Scala actor approach outperforms traditional threading. The document argues that Scala is a powerful, safe and easy language for concurrent programming in WebObjects.
Server Side JavaScript on the JVM - Project Avatar - QCon London March 2014David Delabassee
The document discusses Project Avatar, which aims to run server-side JavaScript (Node.js) applications on the Java Virtual Machine (JVM). It introduces Avatar.js, which provides 95% compatibility with Node.js modules and libraries while allowing access to Java frameworks and libraries. Project Avatar builds on this with additional features like integrated messaging, database access via a modeling framework, and support for REST, WebSocket and server-sent events. It allows building event-driven JavaScript services that leverage Java EE capabilities on the JVM.
Apache Cayenne is a mature full-featured Java ORM. The presentation will discuss Cayenne approach to object persistence, including overall philosophy and the differences with JPA/Hibernate. It will highlight things like transaction management, mapping workflow, as well as the new APIs in the latest Cayenne 4.0. Full presentation video: https://www.youtube.com/watch?v=56xkN3P_zW8&list=PLhN6VJHsM3TPca_ksylFQqr_6qG5GnUWa&index=2
The document discusses updates to the Galaxy API and automatic parallelization capabilities. The RESTful Galaxy API now uses JSON and authentication keys instead of usernames/passwords. Tools can be configured for automatic parallelization to take advantage of available resources. The Tool Shed allows simple installation and updating of tools and workflows in a Galaxy instance.
Apache Cayenne is an open source object-relational mapping framework for Java. It has been an Apache project since 2006 and has over 17 committers and 9 project management committee members. Cayenne provides tools for mapping database schemas to Java objects and vice versa, as well as tools for querying, caching query results, and handling object lifecycles. It aims to simplify working with relational databases for Java developers in a similar way to how Enterprise Objects Framework simplified it for Objective-C developers.
"WTF is Twisted? (or; owl amongst the ponies)" is a talk that introduces the Twisted asynchronous programming framework, how it works, and what uses it.
Scala, Akka, and Play: An Introduction on HerokuHavoc Pennington
The document introduces Scala, Akka, and Play and discusses how they can be used together on Heroku. Scala is presented as a practical alternative to Java that allows incremental migration while providing functional programming capabilities. Akka implements the actor model to provide highly scalable and fault-tolerant architectures. Play is introduced as a popular web framework that uses convention over configuration. The document argues that using these technologies together enables developer-friendly, horizontally scalable applications with a pragmatic adoption path. It provides overviews and examples of each technology.
Rapid Web API development with Kotlin and KtorTrayan Iliev
Introduction to Kotlin and Ktor with flow, async and channel examples. Ktor is an async web framework with minimal ceremony that leverages the advantages of Kotlin like coroutines and extensible functional DSLs..
This document provides an overview of JavaScript including its history, key features, and comparisons to other languages. It also discusses important JavaScript concepts like objects, functions, events, and libraries like jQuery. Key topics covered include the window, document, location, and history objects, arrays, cookies, closures, inheritance, callbacks, and popular JavaScript libraries and frameworks.
The document summarizes upcoming features and enhancements in Java 8, including project Jigsaw for modules, the Nashorn JavaScript engine, JVM convergence between HotSpot and JRockit, lambda expressions, and functional updates to core Java collections. It also discusses design decisions around lambda translation using invokedynamic and the benefits this approach provides.
This document discusses the runtime of Node.js and its V8 JavaScript engine. It describes how V8 uses fast property access through hidden classes, dynamic machine code generation to compile JavaScript directly to machine code, and efficient garbage collection. It also provides an example "Hello World" Node.js program.
Develop realtime web with Scala and XitrumNgoc Dao
This document discusses a talk given by Ngoc Dao on developing realtime and distributed web applications with Scala and Xitrum. The talk covers:
1) An overview of Scala, including its functional features, object-oriented features, tools like SBT and REPL, and how to get started.
2) Using Scala for web development with the Xitrum framework, including routing, responding to requests, internationalization, and metrics.
3) Using Scala for concurrency with futures, actors, and Akka FSM.
4) Building realtime web applications with websockets, Socket.IO and SockJS.
5) Distributed systems with Akka remoting
Over the past few years, web-applications have started to play an increasingly important role in our lives. We expect them to be always available and the data to be always fresh. This shift into the realm of real-time data processing is now transitioning to physical devices, and Gartner predicts that the Internet of Things will grow to an installed base of 26 billion units by 2020.
Reactive web-applications are an answer to the new requirements of high-availability and resource efficiency brought by this rapid evolution. On the JVM, a set of new languages and tools has emerged that enable the development of entirely asynchronous request and data handling pipelines. At the same time, container-less application frameworks are gaining increasing popularity over traditional deployment mechanisms.
This talk is going to give you an introduction into one of the most trending reactive web-application stack on the JVM, involving the Scala programming language, the concurrency toolkit Akka and the web-application framework Play. It will show you how functional programming techniques enable asynchronous programming, and how those technologies help to build robust and resilient web-applications.
Similar to Projects Valhalla, Loom and GraalVM at JCon 2020 (20)
High performance Serverless Java on AWS- JavaDays Lviv 2024Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption, cold start times for Java Serverless development on AWS including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. I'll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, Lambda memory settings, Java compilation options and HTTP (a)synchronous clients and measure their impact on cold and warm start times.
High performance Serverless Java on AWS- GoTo Amsterdam 2024Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption, cold start times for Java Serverless development on AWS including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. I'll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, Lambda memory settings, Java compilation options and HTTP (a)synchronous clients and measure their impact on cold and warm start times.
High performance Serverless Java on AWS at GeeCon 2024 KrakowVadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption, cold start times for Java Serverless development on AWS including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. I'll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, Lambda memory settings, Java compilation options and HTTP (a)synchronous clients and measure their impact on cold and warm start times.
Amazon DevOps Guru for Serverless Applications at DevOpsCon 2024 LondonVadym Kazulkin
In this talk, we’ll use a standard serverless application that uses API Gateway, Lambda, DynamoDB, SQS, Step Functions (and other AWS-managed services). We'll explore how Amazon DevOps Guru recognizes operational issues and anomalies like increased latency and error rates (timeouts, throttling, and resource limits) and integrate DevOps Guru with PagerDuty to provide even better incident management. Amazon DevOps Guru analyzes data like application metrics, logs, events, and traces to establish baseline operational behavior and then uses ML to detect anomalies. The service uses pre-trained ML models that are able to identify spikes in application requests, so it knows when to alert and when not to.
Making sense of service quotas of AWS Serverless services and how to deal wit...Vadym Kazulkin
There is a misunderstanding that everything is possible with the Serverless Services in AWS. For example, the misunderstanding that your Lambda function may scale without limitations. But each AWS service (not only Serverless) has a big list of quotas that everybody needs to be aware of, understand, and take into account during the development. In this talk, I'll explain the most important quotas (in terms of scaling, but not only that) of Serverless services like API Gateway, Lambda, DynamoDB, SQS, and Aurora Serverless and how to architect your solution with these quotas in mind.
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times which may heavily impact the latencies of your application. But the times change: Community and AWS as a cloud providers improve things steadily for Java developers. In this talk we look at the best practices, features and possibilities AWS offers for the Java developers to reduce the cold start times like GraalVM Native Image and AWS Lambda SnapStart based on CRaC (Coordinated Restore at Checkpoint) project.
How to reduce cold starts for Java Serverless applications in AWS at Serverle...Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times which may heavily impact the latencies of your application. But the times change: Community and AWS as a cloud providers improve things steadily for Java developers. In this talk we look at the best practices, features and possibilities AWS offers for the Java developers to reduce the cold start times like GraalVM Native Image and AWS Lambda SnapStart based on on FirecrackerVM snapshot and CRaC (Coordinated Restore at Checkpoint) project.
Revolutionize DevOps lifecycle with Amazon CodeCatalyst and DevOps Guru at De...Vadym Kazulkin
This document summarizes Amazon CodeCatalyst and DevOps Guru, which help revolutionize the DevOps lifecycle. Amazon CodeCatalyst allows developers to create serverless projects that include code, development environments, CI/CD pipelines, and issue/report tracking. DevOps Guru uses machine learning to detect operational issues in services like DynamoDB, API Gateway, and Lambda by analyzing metrics to find anomalies and reduce human intervention. It provides both reactive insights for existing issues and proactive insights to predict future problems.
Amazon DevOps Guru for the Serverless Applications at AWS Community Day NL 2023Vadym Kazulkin
In this talk we’ll use a standard Serverless application which uses of API Gateway, Lambda, DynamoDB, SQS, Step Functions (and other AWS managed services) and explore how Amazon DevOps Guru recognizes operational issues like increased latency and error rates (timeouts, throttling and resource limits) and integrate DevOps Guru with PagerDuty for providing even better incident management.
Amazon DevOps Guru analyzes data like application metrics, logs, events, and traces to establish baseline operational behavior and then uses ML to detect anomalies. The service uses pre-trained ML models that are able to identify spikes in application requests, so it knows when to alert and when not to.
Making sense of service quotas of AWS Serverless services and how to deal wit...Vadym Kazulkin
There is a misunderstanding, that everything is possible with the Serverless Services in AWS, for example that your Lambda function may scale without limitations .
But each AWS service (not only Serverless) has a big list of quotas that everybody needs to be aware of, understand and take into account during the development.
In this talk I'll explain the most important quotas of the Serverless Services like API Gateway, Lambda, DynamoDB, SQS and Aurora Serverless and how to architect your solution with these quotas in mind.
How to reduce cold starts for Java Serverless applications in AWS at InfoShar...Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times which may heavily impact the latencies of your application. But the times change: Community and AWS as a cloud providers improve things steadily for Java developers. In this talk we look at the best practices, features and possibilities AWS offers for the Java developers to reduce the cold start times like GraalVM Native Image and AWS Lambda SnapStart based on CRaC (Coordinated Restore at Checkpoint) project.
Adopting Java for the Serverless World at Voxxed Days Bruxelles 2023Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times and high memory footprint. For both you have to pay to the cloud providers of your choice. That's why most developers tried to avoid using Java for such use cases. But the times change: Community and cloud providers improve things steadily for Java developers. In this talk we look at the features and possibilities AWS cloud provider offers for the Java developers and look the most popular Java frameworks, like Micronaut, Quarkus and Spring (Boot) and look how (AOT compiler and GraalVM Native Image play a huge role) they address Serverless challenges and enable Java for broad usage in the Serverless world. We'll also look into AWS Lambda SnapStart feature based on CRaC (Coordinated Restore at Checkpoint) project which also reduces the cold start time of Java Serverless application on AWS. We also look into the tools which help us figure out the optimal balance between Lambda memory footprint, invocation time and execution cost.
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Vadym Kazulkin
The document compares GitHub Copilot, Amazon CodeWhisperer, and ChatGPT for Java developers. It provides an overview of each tool, compares their programming language support, IDE support, and pricing. It demonstrates their abilities for general tasks, simple functions, more complex algorithms, JUnit testing, and Spring Boot web development. It concludes that while the tools provide helpful suggestions, developers are still needed to ensure correctness and efficiency. GitHub Copilot and ChatGPT benefit from OpenAI, while Amazon CodeWhisperer needs quality improvements for Java but may leverage AWS services.
AWS Lambda SnapStart: Why, How and What AWS Serverless Meetup New York Boston...Vadym Kazulkin
Vadym Kazulkin presented on AWS Lambda SnapStart, which aims to reduce cold start times for Java functions on AWS Lambda. SnapStart works by saving snapshots of the JVM state during a "priming" invocation and restoring it on subsequent cold starts. This can reduce cold start times from seconds to milliseconds. However, SnapStart currently only supports Java 11/17 runtimes and some limitations remain around deployment time and full cold start measurement. Priming the application before taking snapshots can further reduce cold starts but with tradeoffs around additional Lambda costs and optimization time.
Revolutionize DevOps with ML capabilities. Deep dive into Amazon CodeGuru and...Vadym Kazulkin
I will introduce two AWS services: CodeGuru and DevOps Guru.
CodeGuru Reviewer uses ML and automated reasoning to automatically identify critical issues, security vulnerabilities, and hard-to-find bugs during application development.
DevOps Guru analyzes data like application metrics, logs, events, and traces to establish baseline operational behavior and then uses ML to detect anomalies. It does this by having the ability to correlate and group metrics together to understand the relationships between those metrics, so it knows when to alert.
Amazon DevOps Guru for the Serverless Applications at AWS Community Day Bene...Vadym Kazulkin
In this talk we’ll build a standard Serverless application which uses of API Gateway, Lambda and DynamoDB and explore how Amazon DevOps Guru recognizes operational issues like increased latency and error rates (timeouts and throttles) and integrate DevOps Guru with PagerDuty for providing even better incident management
Amazon DevOps Guru analyzes data like application metrics, logs, events, and traces to establish baseline operational behavior and then uses ML to detect anomalies. The service uses pre-trained ML models that are able to identify spikes in application requests, so it knows when to alert and when not to.
Amazon CodeGuru vs SonarQube for Java Developers at JCon 2022Vadym Kazulkin
In this talk I will compare 2 services which aim at automatically identifing critical issues, security vulnerabilities, and hard-to-find bugs during application development: Amazon CodeGuru and SonarQube from the perspective of the Java developer on AWS. Amazon CodeGuru Reviewer uses ML and automated reasoning to provide recommendations to developers on how to fix issues to improve code quality and dramatically reduce the time it takes to fix bugs before they reach customer-facing applications and result in a bad experience. SonarQube is an open-source platform for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities on 20+ programming languages. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, comments, bugs, and security vulnerabilities
Adopting Java for the Serverless World at JUG Saxony Day 2022Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times and high memory footprint. For both you have to pay to the cloud providers of your choice. That's why most developers tried to avoid using Java for such use cases. But the times change: Community and cloud providers improve things steadily for Java developers. In this talk we look at the features and possibilities AWS cloud provider offers for the Java developers and look the most popular Java frameworks, like Micronaut, Quarkus and Spring (Boot) and look how (AOT compiler and GraalVM native images play a huge role) they address Serverless challenges and enable Java for broad usage in the Serverless world.
Adopting Java for the Serverless World at VoxxedDays LuxemburgVadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless Community. Java is known for its high cold start times and high memory footprint. For both you have to pay to the cloud providers of your choice. That's why most developers tried to avoid using Java for such use cases. But the times change: Community and cloud providers improve things steadily for Java developers. In this talk we look at the features and possibilities AWS cloud provider offers for the Java developers and look the most popular Java frameworks, like Micronaut, Quarkus and Spring (Boot) and look how (AOT compiler and GraalVM native images play a huge role) they address Serverless challenges and enable Java for broad usage in the Serverless world.
Revolutionize DevOps with ML capabilities. Introduction to Amazon CodeGuru an...Vadym Kazulkin
I will introduce two AWS services: CodeGuru and DevOps Guru.
CodeGuru Reviewer uses ML and automated reasoning to automatically identify critical issues, security vulnerabilities, and hard-to-find bugs during application development.
DevOps Guru analyzes data like application metrics, logs, events, and traces to establish baseline operational behavior and then uses ML to detect anomalies. It does this by having the ability to correlate and group metrics together to understand the relationships between those metrics, so it knows when to alert.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
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.
Things to Consider When Choosing a Website Developer for your Website | FODUUFODUU
Choosing the right website developer is crucial for your business. This article covers essential factors to consider, including experience, portfolio, technical skills, communication, pricing, reputation & reviews, cost and budget considerations and post-launch support. Make an informed decision to ensure your website meets your business goals.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
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.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfTechgropse Pvt.Ltd.
In this blog post, we'll delve into the intersection of AI and app development in Saudi Arabia, focusing on the food delivery sector. We'll explore how AI is revolutionizing the way Saudi consumers order food, how restaurants manage their operations, and how delivery partners navigate the bustling streets of cities like Riyadh, Jeddah, and Dammam. Through real-world case studies, we'll showcase how leading Saudi food delivery apps are leveraging AI to redefine convenience, personalization, and efficiency.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
7. Project Valhalla
Goal:
Reboot the layout of data in memory
Source: Brian Goetz, Oracle „Evolving the Java Language” https://www.youtube.com/watch?v=A-mxj2vhVAA
8. Project Valhalla
Motivation:
Hardware has changed
• Multi-core
• The cost of cache misses has increased
Source: Brian Goetz, Oracle „Evolving the Java Language” https://www.youtube.com/watch?v=A-mxj2vhVAA
12. Project Valhalla
Storing objects in the Java Heap has its price, because storing
object’s metadata consumes additional memory for :
• flags facilitating synchronization/locking
• Identity and polymorphismus
• garbage collection
14. Project Valhalla
Inline Types
Immutable: an instance of an inline-type can’t change, once it’s been
created
Identity-less: inline-types of the same type with the same contents are
indistinguishable from each other
Flattenable: JVMs are allowed to flatten an inline-type inside of its
container
Source: Tobi Ajila “Welcome to LWorld: The current state of value types in Java “
https://www.youtube.com/watch?v=Xf22I16jVyE&list=LLYgjRSI2oCzI9eooyFrWR7A&index=11
16. Project Valhalla
Benefits:
• Reduced memory usage
• Reduced indirection
• Increased locality
Codes like a class, works like a primitive
(Brian Goetz)
17. Project Valhalla
Benefit: Reduced Memory Usage
No additional memory to store object metadata, such as flags
facilitating synchronization, identity, polymorphismus and
garbage collection
18. Project Valhalla
Benefit: Reduced indirection
Since objects are stored as reference types in Java, each time
an object is accessed it must first be dereferenced, causing
additional instructions to be executed
The flattened data associated with inline types are immediately
present in the location in which they are needed and therefore,
require no dereferencing
19. Project Valhalla
Benefit: Increased locality
Flattened value objects remove indirection which increases the
likelihood that values are adjacently stored in memory–
especially for arrays or other contiguous memory structures
such as classes (i.e. if a class contains inline type fields)
Consequently increases the chance of cache hits, because of
hardware prefetch of the cache lines
21. Project Valhalla
Inline Types
Can
• have method and field
• implement interfaces
• use encapsulation
• be generic
Can’t
• be mutated
• be sub-classed
• be cloned
• be Enums
Source: Tobi Ajila “Welcome to LWorld: The current state of value types in Java “
https://www.youtube.com/watch?v=Xf22I16jVyE&list=LLYgjRSI2oCzI9eooyFrWR7A&index=11
22. Project Valhalla
Inline Types Hierarchy
Source: Tobi Ajila “Welcome to LWorld: The current state of value types in Java “
https://www.youtube.com/watch?v=Xf22I16jVyE&list=LLYgjRSI2oCzI9eooyFrWR7A&index=11
Object
Point?
Point
Nullable Inline Type (Point or null)
Inline Type
23. Project Valhalla
Inline Types Hierarchy
Source: Tobi Ajila “Welcome to LWorld: The current state of value types in Java “
https://www.youtube.com/watch?v=Xf22I16jVyE&list=LLYgjRSI2oCzI9eooyFrWR7A&index=11
Object
Point?
Point
Nullable Inline Type (Point or
null)
Inline Type
Object[]
Point?[]
Point[]
24. Project Valhalla
Current Status:
Released public prototype LW2
• Can declare and use inline types (inline classes)
• No support for generics yet List<Point> // compilation error
• No support for specialized generics (Point<T>)
• No Support for migration of existing classes (like Optional)
• Memory Layout optimizations implemented
• Compiler/Virtual Machine optimizations implemented
• A lot of challenges to solve (read the article
https://www.infoq.com/news/2019/07/valhalla-openjdk-lw2-released/)
Source: Brian Goetz, Oracle „Valhalla Update” https://www.youtube.com/watch?v=1H4vmT-Va4o
25. Project Valhalla
Open Questions:
• Migration of existing classes (Option, LocaDateTime) to inline classes
• Nullity
• Equality
• GraalVM Support
• How Java type system should look like
Source: Brian Goetz, Oracle „Valhalla Update” https://www.youtube.com/watch?v=1H4vmT-Va4o
26. Project Valhalla
How Java type system should look like ?
Source: Tobi Ajila “Welcome to LWorld: The current state of value types in Java “
https://www.youtube.com/watch?v=Xf22I16jVyE&list=LLYgjRSI2oCzI9eooyFrWR7A&index=11
Object
ValObject
Inline
Types
RefObject
References
29. Project Loom
Motivation:
Developers currently have 2 choices to write concurrent code:
• use blocking/synchronous API, which is simple, but less scalable (number of
threads, that OS supports is far less that open and concurrent connections required)
• asynchronous API (Spring Project Reactor, RXJava 2), which is scalable, but
complex, harder to debug and profile and limited (no asynchronous JDBC standard
in this area)
Sources: Alan Bateman, Oracle „Project Loom: Fibers and Continuations for Java”
https://www.youtube.com/watch?v=vbGbXUjlRyQ
33. Continuation
package java.lang;
public class Continuation {
public Continuation (ContinuationScope scope, Runnable target)
public final void run()
public static void yield (ContinuationScope scope)
public boolean isDone()
}
34. Project Loom
Continuations
example () {
var scope = new ContinuationScope(„Example_Scope“);
var continuation = new Continuation (scope, () -> {
out.print(„1“);
Continuation.yield(scope);
out.print(„2“);
Continuation.yield(scope);
out.print(„3“);
Continuation.yield(scope);
});
while (! continuation.isDone()) {
out.print(„ run.. “);
continuation.run();
}
}
Output: run.. 1 run.. 2 run.. 3
36. Project Loom
Schedular
Schedular executes the task on a pool of carrier threads
• java.util.concurrent.Executor API exposes the Schedular
• Default schedular is a ForJoinPool
Source: Alan Bateman, Oracle „Project Loom Update” https://www.youtube.com/watch?v=NV46KFV1m-4
37. Project Loom
Virtual Thread Implementation
Currently Thread and Virtual Thread don’t have a common
supertype
Thread.currentThread() in context of Virtual Thread
• Creates adaptor (Shadow Thread)
• Adaptor emulates legacy Thread API (except deprecated methods like stop, suspend and
resume)
• Thread Local becomes Virtual Thread Local
Source: Alan Bateman, Oracle „Project Loom Update” https://www.youtube.com/watch?v=NV46KFV1m-4
38. Project Loom
Virtual Thread Implementation
Thread t = Thread.startVirtualThread (() -> {
System.out.println(„Hello World“);
});
Thread t = Thread.builder().virtual().task( () -> { … }).build();
Thread t = Thread.builder().virtual().task( () -> { … }).start();
ThreadFactory factory = Thread.builder().virtual().factory();
Source: Ron Pressler: “Project Loom: Modern Scalable Concurrency for the Java”
https://www.youtube.com/watch?v=23HjZBOIshY
https://cr.openjdk.java.net/~rpressler/loom/loom/
39. Project Loom
Structured Concurrency
Basic idea: Everytime that the control splits into multiple concurrent
paths, we want to guarantee that they join up again
ThreadFactory factory = Thread.builder().virtual().factory();
try (var executor= Executors.newThreadExecutor(factory)) {
executor.submit(task1);
executor.submit(task2);
} //blocks until task1 and task2 terminate
Sources: Nathanial J. Smith „Notes on structured concurrency, or: Go statement considered harmful”
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
Roman Elizarov: “Structured concurrency with Coroutines in Kotlin” https://medium.com/@elizarov/structured-concurrency-
40. Project Loom
Structured Concurrency
Cancelation probable solution:
Each Virtual Thread has cancel status which can only be set once, which
sets the interrupt status and unparks the Virtual Thread
The task can poll canceled status
ThreadFactory factory = Thread.builder().virtual().factory();
try (var executor= Executors.newThreadExecutor(factory),
PROPAGATE_CANCEL) {
executor.submit(task1);
executor.submit(task2);
} //canceling the virtual thread executing this code will task1 and task2
Source: Ron Pressler: “Project Loom: Modern Scalable Concurrency for the Java”
https://www.youtube.com/watch?v=23HjZBOIshY
https://cr.openjdk.java.net/~rpressler/loom/loom/
41. Project Loom
Structured Concurrency
Cancelation :
We can also give all tasks a deadline that will interrupt those children that
have yet to terminate by the time it expires (as well as the current thread)
ThreadFactory factory = Thread.builder().virtual().factory();
try (var executor= Executors.newUnboundedExecutor(factory).
withDeadline(Instant.now().plusSeconds(60))) {
executor.submit(task1);
executor.submit(task2);
}
Source: Ron Pressler: “Project Loom: Modern Scalable Concurrency for the Java”
https://www.youtube.com/watch?v=23HjZBOIshY
https://cr.openjdk.java.net/~rpressler/loom/loom/
42. Project Loom
Virtual Thread
Current Status:
Virtual Thread currently supports:
• scheduling
• parking/unparking
• waiting for a Virtual Thread to terminate
Virtual Thread -friendly APIs
• java.util.concurrent Locks
• java.net.Socket/ServerSocket (since JDK 13)
• java.nio.channels.SocketChannel and Pipes (since JDK 11)
• Thread.sleep
• JSSE implementation of TLS
• AccessControl.doPrivileged (since JDK 12)
Source: Ron Pressler, Project Loom: Helping Write Concurrent Applications on the Java Platform
https://www.youtube.com/watch?v=lIq-x_iI-kc
43. Project Loom
Current Status:
• Implemented initial prototype with Continuation and Virtual
Thread support
• Current prototype of Continuations and Virtual Thread can run
existing code
• Debugger Support
Current focus on:
• Performance improvement
• Stable Virtual Thread API
• Java Flight Recorder support
Source: Alan Bateman, Oracle „Project Loom Update” https://www.youtube.com/watch?v=NV46KFV1m-4
45. Project Loom
Open Questions:
Should the existing Thread API be completely re-examined?
Can all existing code be run on top of Virtual Threads?
Current answers:
• Since Java 5 and 6 developers and library creators are encouraged
to use Executors and ThreadFactory APIs instead of Thread directly
• In order to use Virtual Thread instead of Thread another Executor
implementation must be chosen
ThreadFactory factory = Thread.builder().virtual().factory();
//ThreadFactory factory = ThreadFactory.builder().factory();
Executor executor= Executors.newThreadExecutor(factory);
47. Project Metropolis
Goals:
Low footprint ahead-of-time mode for JVM-based languages
High performance for all languages
Convenient language interoperability and polyglot tooling
Source: „Everything you need to know about GraalVM by Oleg Šelajev & Thomas Wuerthinger”
https://www.youtube.com/watch?v=ANN9rxYo5Hg
48. JEP 317
Experimental Java-Based JIT Compiler
Graal, a Java-based JIT compiler on the Linux/x64 platform, is the
basis of the experimental Ahead-of-Time (AOT) compiler introduced
in JDK 9.
To Enable:
-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
49.
50. GraalVM
Architecture
Sources: Practical Partial Evaluation for High-Performance Dynamic Language Runtimes
http://chrisseaton.com/rubytruffle/pldi17-truffle/pldi17-truffle.pdf
„The LLVM Compiler Infrastructure“ https://llvm.org/
51. GraalVM
Architecture
Sources: Practical Partial Evaluation for High-Performance Dynamic Language Runtimes http://chrisseaton.com/rubytruffle/pldi17-
truffle/pldi17-truffle.pdf
„The LLVM Compiler Infrastructure“ https://llvm.org/
52. SubstrateVM
Source: Oleg Šelajev, Thomas Wuerthinger, Oracle: “Deep dive into using GraalVM for Java and JavaScript”
https://www.youtube.com/watch?v=a-XEZobXspo
53. GraalVM and SubstrateVM
Source: Oleg Selajev, Oracle : “Run Code in Any Language Anywhere with GraalVM”
https://www.youtube.com/watch?v=JoDOo4FyYMU
54. Creating AWS Lambda with Java 1/2
:
Source https://blog.runscope.com/posts/how-to-write-your-first-aws-lambda-function
55. Creating AWS Lambda with Java 2/2
:
Source https://blog.runscope.com/posts/how-to-write-your-first-aws-lambda-function
56. GraalVM on SubstrateVM
A game changer for Java & Serverless?
Cold Start :
Source: Ajay Nair „Become a Serverless Black Belt” https://www.youtube.com/watch?v=oQFORsso2go
57. Bootstrap the Java Runtime Phase
• AWS Lambda starts the JVM
• Java runtime loads and initializes
handler class
• Static initializer block of the handler class is
executed
• Lambda calls the handler method
Vadym Kazulkin @VKazulkin , ip.labs GmbH
Source: Stefano Buliani : "Best practices for AWS Lambda and Java„ https://www.youtube.com/watch?v=ddg1u5HLwg8
58. AWS Lambda cold start duration
per programming language
Source: Mikhail Shilkov: „AWS Lambda: Cold Start Duration per Language. 2020 edition” https://mikhail.io/serverless/coldstarts/aws/languages/
59. Cold start duration with Java
• Below 1 second is best-case cold start duration for very simple
Lambda like HelloWorld with no dependencies
• It goes up significantly with more complex scenarios
• Dependencies to multiple OS projects
• Clients instantiation to communicate with other (AWS) services (e.g. DynamoDB,
SNS, SQS, 3rd party)
Source: Stefano Buliani : "Best practices for AWS Lambda and Java„ https://www.youtube.com/watch?v=ddg1u5HLwg8
Sean O‘Toole „AWS Lambda Java Tutorial: Best Practices to Lower Cold Starts” https://www.capitalone.com/tech/cloud/aws-lambda-java-tutorial-reduce-cold-starts/
60. GraalVM on SubstrateVM
A game changer for Java & Serverless?
Java Function compiled into a native executable using
GraalVM on SubstrateVM reduces
• “cold start” times
• memory footprint
by order of magnitude compared to running on JVM.
And both memory and execution time are cost dimensions,
when using Serverless in the cloud
61. GraalVM on SubstrateVM
A game changer for Java & Serverless?
Current challenges with native executable using GraalVM :
• Most Cloud Providers (AWS) doesn’t provide GraalVM as Java
Runtime out of the box, only Open JDK (e.g. AWS provides
Corretto)
• Some Cloud Providers (e.g. AWS) provide Custom Runtime Option
62. GraalVM Complitation Modes
Source: „Everything you need to know about GraalVM by Oleg Šelajev & Thomas Wuerthinger”
https://www.youtube.com/watch?v=ANN9rxYo5Hg
63. AOT vs JIT
Source: „Everything you need to know about GraalVM by Oleg Šelajev & Thomas Wuerthinger”
https://www.youtube.com/watch?v=ANN9rxYo5Hg
64. Support of GraalVM native images in Frameworks
Spring Framework: working toward GraalVM native image support
without requiring additional configuration or workaround is one of the
themes of upcoming Spring Framework 5.3
Spring Boot: Ongoing work on experimental Spring Graal Native
project. Probably ready for the 2.4 release
Quarkus: a Kubernetes Native Java framework developed by Red Hat
tailored for GraalVM and HotSpot, crafted from best-of-breed Java
libraries and standards.
Micronaut: a modern, JVM-based, full-stack framework for building
modular, easily testable microservice and serverless applications.
Source: „GraalVM native image support“ https://github.com/spring-projects/spring-framework/wiki/GraalVM-native-image-support
65. is still an interesting and great
programming language
JDK 16 Mercuriual to Git to GitHub
would be similar to a C struct, which the JVM does not support. Two obvious examples of candidates for this are Optional and LocalDateTime - both have the properties that would be expected of value types. This is related to the fact that the Java type system lacks a top type - there is no type that is the supertype of both Object and int. Another way of saying this is that the Java type system is not single-rooted
would be similar to a C struct, which the JVM does not support. Two obvious examples of candidates for this are Optional and LocalDateTime - both have the properties that would be expected of value types. This is related to the fact that the Java type system lacks a top type - there is no type that is the supertype of both Object and int. Another way of saying this is that the Java type system is not single-rooted
Перезагрузите расположение данных в памяти
Много ядерные
Ядро, оперативная память
Inter-socket connection меж сокетная окоммуникация
Mesi protocol
производительность
aus Performanzgründen auf die ganzen Cache-Lines (normalerweise 64 Bytes groß), wo sich mehrere Cache-Einträge befinden.
Задержка, латенция
оперативная память, процессор
оперативная память
For a small object such as Integer, the overhead for an object (such as a boxed Integer object) can match or even surpass the size of the data itself (a primitive int requires 32 bits in Java).
Идентичность подлинность, полиморфизм сборщик мусора
Eric Evans Domai Driven Design Value Type Entity. What classes to implement in JDK :
LocalDateTime
Optional
Состояние статус
Have the same characteristics as primitives
Выравнивать, сглаживать
Использования памяти
Уменьшенная косвенность и локальностьУвеличенная местность/локальность
Reduced memory usage: No additional memory is used to store object metadata, such as flags facilitating synchronization, identity, and garbage collection. Treat value classes like restricted objects. (made object primitve devide worse,+ boxing), painful migration, specailization and array (covariants)
Indirection: Since objects are stored as reference types in Java, each time an object is accessed it must first be dereferenced, causing additional instructions to be executed. The flattened data associated with value types are immediately present in the location in which they are needed and therefore, require no dereferencing.
Locality: Flattened value objects remove indirection which increases the likelihood that values are adjacently stored in memory–especially for arrays or other contiguous memory structures such as classes (i.e. if a class contains value type fields). (which increases locality and, consequently, the chance of cache hits).
Reduced memory usage: No additional memory is used to store object metadata, such as flags facilitating synchronization, identity, and garbage collection. Treat value classes like restricted objects. (made object primitve devide worse,+ boxing), painful migration, specailization and array (covariants)
Flatenning= Выравнивать или разглаживание?
Indirection: Since objects are stored as reference types in Java, each time an object is accessed it must first be dereferenced, causing additional instructions to be executed. The flattened data associated with value types are immediately present in the location in which they are needed and therefore, require no dereferencing.
classes (i.e. if a class contains value type fields). (which increases locality and, consequently, the chance of cache hits).
Locality: Flattened value objects remove indirection which increases the likelihood that values are adjacently stored in memory–especially for arrays or other contiguous memory structures such as classes (i.e. if a class contains value type fields). (which increases locality and, consequently, the chance of cache hits).
Not point in cloning them, no identity
Enum has identity and can mutable. Longer answer: While the basic enum type doesn't contain mutators (and so it is immutable), your own Enum can. The problem with this is that Java enums are always singletons. If you add mutators to your enum you should keep this in mind since mutating your enum in a multithreaded application can have unforeseen
Don‘t want flattening because of recursive structures, JVM won‘t flatten container with ? Arrays are covariant
Don‘t want flattening because of recursive structures, JVM won‘t flatten container with ? Arrays are covariant. Primitive arrays don‘t subclass object arrays
Массив ковариантность
Memory layout opt- value types are flattened, object headers and indiractions eliminated
Compiler opt – value class methods are monomorphic because no polymorpysms of value classes allowed, so on dynamic dispatching by calling, that‘s why inlined. Value type fields are paassed in registers between compiled methods
Non-Nullability is sensible default, what what about migrating existing classes to value object, which can be null. Extra nullable Inline type inline class Point?
2 values are equals if they have the same type and all fields are equal (recurisve). But fields cann be objects that contains objects refs and value types
Don‘t want flattening because of recursive structures, JVM won‘t flatten container with ? Arrays are covariant. Primitive arrays don‘t subclass object arrays
Облегченный поток
Продолжение?возобновление
Parallel Universe which ... The author of Quasar, Ron Pressler Co-Routines in Oracle, Go
would be similar to a C struct, which the JVM does not support. Two obvious examples of candidates for this are Optional and LocalDateTime - both have the properties that would be expected of value types. This is related to the fact that the Java type system lacks a top type - there is no type that is the supertype of both Object and int. Another way of saying this is that the Java type system is not single-rooted
Поток.
Неконтролируем главный поток
A Oracle 64 bit JVM will default to 1M stack size per thread. For each gigabyte of memory you would get 1024 threads using the defaults (https://stackoverflow.com/questions/7726871/maximum-number-of-threads-in-a-jvm)
ADBA is Asynchronous Database Access, a non-blocking database access api that Oracle is proposing as a Java standard.
AoJ: ADBA over JDBC
Parallel Universe which ... The author of Quasar, Ron Pressler (Co-Routines in Kotlin, Go-Green Threads)
Executor now implements AutoClosable Interface and possible with try with ressources
Trio library, Python Nursery concept
Nesting- отвлетвения
Структурированный параллелизм
Nesting
Nesting
Nesting
Pipe NIO Channel and Pipes
Java Flight Recorder (JFR) is a tool for collecting diagnostic, monitoring and profiling data about a running Java application. It is integrated into the Java Virtual Machine (JVM) and causes almost no performance overhead, so it can be used even in heavily loaded production environments.
Monitor with using directly Object.wait, Object.notify, reimplement your code with java.util.concurrent library
Yield паузировать, останавливаться
GraalVM: The one to rule them all
Speaker: Виктор Полищук
Shared Tools : Profiling und Debugger
Производительность
языковая совместимость
Throughput производительность
C2 server compiler c++
Версия 20.1
Oracle Cloud
Truffle is an Open Source library for building programming language implementations as interpreters for self-modifying Abstract Syntax Trees (AST). Truffle - a toolkit and API for building language interpreters. Truffle.
programming languages that can be transformed to LLVM bitcode on Graal VM. LLVM is collection of modular and reusable compiler and toolchain technologies.
Sulong : LLVM compiles into the same LLVM bitcode instead of native machine code of the platform. Then GraalVM interpret this bit code and run it on JVM
Interpretor for Ruby, R, JS must exist. TruffleRuby, Graal.js, FastR
Not ScriptEngine and JSR 223 Nashorn JS API.
Native mashine code without interpreter, ahead-of-time compiler (all the classes to be used should be known at compile time)…optionally include dynamic compiler, no dynamic class loading, because of Ahead-of-Time-Compiler, to know in advance, what classes you need
ELF- Linux Executable and Linking Format
Closed-world-assumption
Native mashine code without interpreter, ahead-of-time compiler…optionally include dynamic compiler, no dynamic class loading, because of Ahead-of-Time-Compiler, to know in advance, what classes you need. Dynamic runtime : Gargbage Collector and ThreadSchedular and Memory Management modular aufgebaut
Complete CPU access during boost, Lambda hast fraction of CPU proportional to chosen RAM settings
-High throughput (network bandwidth): limited bandwidth (an order of magnitude lower than a single modern SSD) that is shared between all functions packed on the same VM
-Communication: functions not directly network accessible, they must communicate via an intermediary service writing state out to slow storage and reading it back in again on subsequent calls
Максим Говорищев Quarkus
Native mashine code without interpreter, ahead-of-time compiler…optionally include dynamic compiler, no dynamic class loading, because of Ahead-of-Time-Compiler, to know in advance, what classes you need. Dynamic runtime : Gargbage Collector and ThreadSchedular and Memory Management modular aufgebaut
пропускная способность
Native mashine code without interpreter, ahead-of-time compiler…optionally include dynamic compiler, no dynamic class loading, because of Ahead-of-Time-Compiler, to know in advance, what classes you need. Dynamic runtime : Gargbage Collector and ThreadSchedular and Memory Management modular aufgebaut
Максим Говорищев Quarkus
Native mashine code without interpreter, ahead-of-time compiler…optionally include dynamic compiler, no dynamic class loading, because of Ahead-of-Time-Compiler, to know in advance, what classes you need. Dynamic runtime : Gargbage Collector and ThreadSchedular and Memory Management modular aufgebaut
FinDev approach per per use/invocation proce models