The document discusses serverless computing and introduces the Fn project, an open source serverless platform. It demonstrates building Java functions with Fn and composing functions together into workflows. The demos show creating functions, calling functions sequentially, handling faults, and adding retry functionality. Fn aims to provide a flexible yet familiar development experience for building serverless applications using any programming language including Java.
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsOracle Developers
GraphPipe is an open source protocol and collection of software designed to simplify machine learning model deployment and decouple it fromframework-specific model implementations.
Have you been wanting to add some smarts to your castle, but you're concerned about getting locked into an expensive closed system? Getting started doesn't need to be expensive and it definitely doesn't need to be closed. Grab a Raspberry Pi and let's set up openHAB, an open source solution for empowering your castle (smart home.)
I will cover some of the reasons you may want to smarten up your home and talk about some of the devices currently available. I'll discuss some of the features and capabilities of openHAB, demonstrate installing it on a Raspberry Pi and walk through the built-in control interface. If you're like me, you will want to persist a lot of the data that passes through openHAB, so I will cover some of the existing persistence options.
Having a castle is good, but a cloud castle is awesome. I will demonstrate how to connect openHAB to a cloud database using a restful interface. I will create the data structures and interface then modify my installation of openHAB to take advantage of the new data store.
I will wrap up the session with a discussion of the openHAB project and go over a few ways that we can all contribute.
You'll leave this session with the tools to track the data in your own IoT projects and hopefully some new ideas.
The document discusses serverless computing and the Fn Project. It introduces serverless architecture and Function as a Service (FaaS). It then describes the Fn Project as an open source serverless platform. The Fn Project includes Fn Server for deploying and running functions, the Fn Development Kit (FDK) for developing functions in different languages, and Fn Flow for orchestrating functions. It also discusses using Fn Project on Oracle cloud infrastructure for serverless applications and functions.
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)Oracle Korea
서버에 대해서 전혀 알 필요가 없는 Serverless의 개념과 사용법을 오라클의 Serverless 오픈소스인 Fn Project를 통해서 알아봅니다. Docker를 기반으로 운영되는 오픈소스인 Fn Project를 통해 Serverless Computing을 시작할 수 있습니다.
Docker 기반의 Serverless 개발 플랫폼인 Fn Project를 통해 Serverless Computing의 처음 단계를 시작해봅니다. 로컬 뿐 아니라 클라우드에서 동일한 개발 환경을 제공하며 Java, Go, Node, Python 등 여러 언어를 모두 지원합니다. 시작은 작게, 운영은 거대하게 하기 위한 첫 발걸음을 같이 내딛어봅니다.
This session will explore how Java development has been brought into the open over the past decade and where it is headed in the future. Several Java developer efforts have brought open source development processes and new levels of transparency and participation into their communities. This year theJava Community Process (JCP) program celebrates twenty years of Java standards development. Since the initiation of efforts to expand the developer participation in the Java community, Java standards development is more open that it ever has been. Learn how to take part in the Java developer community, upcoming changes to the Java platform, and how you can contribute. You can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session answers your questions about why and how to participate in the evolution of the Java platform - how you can participate in contributing to the future of Java.
20190615 hkos-mysql-troubleshootingandperformancev2Ivan Ma
MySQL Troubleshooting in Hong Kong Open Source Conference 2019 - how to use sys.diagnostics(...) and using the dimitri (http://dimitrik.free.fr/) Tools for performance analysis.
Oracle Code Online: Building a Serverless State Service for the CloudEd Burns
While application architectures are evolving to become stateless, application state and state management are naturally emerging as a service in themselves. This session outlines the development, operation, and maintenance of an application state service for the cloud with Java 9, using a serverless strategy. The presentation investigates some of the challenges of designing an infinite-capacity, infinite-processing platform capable of reliably running everything from the smallest application to a globally distributed enterprise-class infrastructure for the mobile and IoT domains.
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsOracle Developers
GraphPipe is an open source protocol and collection of software designed to simplify machine learning model deployment and decouple it fromframework-specific model implementations.
Have you been wanting to add some smarts to your castle, but you're concerned about getting locked into an expensive closed system? Getting started doesn't need to be expensive and it definitely doesn't need to be closed. Grab a Raspberry Pi and let's set up openHAB, an open source solution for empowering your castle (smart home.)
I will cover some of the reasons you may want to smarten up your home and talk about some of the devices currently available. I'll discuss some of the features and capabilities of openHAB, demonstrate installing it on a Raspberry Pi and walk through the built-in control interface. If you're like me, you will want to persist a lot of the data that passes through openHAB, so I will cover some of the existing persistence options.
Having a castle is good, but a cloud castle is awesome. I will demonstrate how to connect openHAB to a cloud database using a restful interface. I will create the data structures and interface then modify my installation of openHAB to take advantage of the new data store.
I will wrap up the session with a discussion of the openHAB project and go over a few ways that we can all contribute.
You'll leave this session with the tools to track the data in your own IoT projects and hopefully some new ideas.
The document discusses serverless computing and the Fn Project. It introduces serverless architecture and Function as a Service (FaaS). It then describes the Fn Project as an open source serverless platform. The Fn Project includes Fn Server for deploying and running functions, the Fn Development Kit (FDK) for developing functions in different languages, and Fn Flow for orchestrating functions. It also discusses using Fn Project on Oracle cloud infrastructure for serverless applications and functions.
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)Oracle Korea
서버에 대해서 전혀 알 필요가 없는 Serverless의 개념과 사용법을 오라클의 Serverless 오픈소스인 Fn Project를 통해서 알아봅니다. Docker를 기반으로 운영되는 오픈소스인 Fn Project를 통해 Serverless Computing을 시작할 수 있습니다.
Docker 기반의 Serverless 개발 플랫폼인 Fn Project를 통해 Serverless Computing의 처음 단계를 시작해봅니다. 로컬 뿐 아니라 클라우드에서 동일한 개발 환경을 제공하며 Java, Go, Node, Python 등 여러 언어를 모두 지원합니다. 시작은 작게, 운영은 거대하게 하기 위한 첫 발걸음을 같이 내딛어봅니다.
This session will explore how Java development has been brought into the open over the past decade and where it is headed in the future. Several Java developer efforts have brought open source development processes and new levels of transparency and participation into their communities. This year theJava Community Process (JCP) program celebrates twenty years of Java standards development. Since the initiation of efforts to expand the developer participation in the Java community, Java standards development is more open that it ever has been. Learn how to take part in the Java developer community, upcoming changes to the Java platform, and how you can contribute. You can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session answers your questions about why and how to participate in the evolution of the Java platform - how you can participate in contributing to the future of Java.
20190615 hkos-mysql-troubleshootingandperformancev2Ivan Ma
MySQL Troubleshooting in Hong Kong Open Source Conference 2019 - how to use sys.diagnostics(...) and using the dimitri (http://dimitrik.free.fr/) Tools for performance analysis.
Oracle Code Online: Building a Serverless State Service for the CloudEd Burns
While application architectures are evolving to become stateless, application state and state management are naturally emerging as a service in themselves. This session outlines the development, operation, and maintenance of an application state service for the cloud with Java 9, using a serverless strategy. The presentation investigates some of the challenges of designing an infinite-capacity, infinite-processing platform capable of reliably running everything from the smallest application to a globally distributed enterprise-class infrastructure for the mobile and IoT domains.
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]David Buck
presentation video: https://www.youtube.com/watch?v=mhravU1HL4k
One of the lesser-known features coming with JDK 9 is experimental support for ahead-of-time (AOT) compilation. Compiling Java bytecode into ready-to-execute machine code before runtime means that many applications may benefit from quicker startup and, in the case of multiple JVM instances, even lower memory consumption. In this demo-heavy session, you will see what advantages AOT has to offer and, perhaps even more importantly, what its limitations are. You will also get the opportunity to see Java’s new AOT compilation in action and leave with the knowledge needed to experiment on your own later. Although Java’s AOT is not yet ready for production use, this is a great chance to get a sneak peek at one of HotSpot’s most exciting new technologies.
Learn how to take part in the Java developer community and the upcoming changes to Java - you can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session answers questions about why and how to participate in the evolution of the Java platform.
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologyEd Burns
The document discusses the importance of GitHub for software careers. It begins with an introduction to GitHub, describing how it popularized open source software by allowing developers to host projects and collaborate on code. The rest of the document covers version control with Git and additional features of GitHub like Gists, issues, and student resources that can benefit careers. It emphasizes that having an active public profile on GitHub can increase your value as a developer.
Talk on Java Community Process updates and progress towards more openness and transparency. Also includes information on Platform updates and how to participate in activities. This talk is from various events in EMEA in the Fall of 2018.
The document discusses the history and future of Java. It notes that Java was originally developed by Sun Microsystems in 1995 and later open-sourced. It is now stewarded by Oracle, who aims to evolve Java through an open process. Key topics covered include Java's large developer community, the Java Community Process for developing specifications, and ongoing work to improve and modernize the Java platform through projects like OpenJDK.
The document discusses the future of Java and opportunities for developers. It outlines Oracle's commitment to open governance of Java through the Java Community Process. Recent and upcoming versions of Java like Java EE 8 and Java SE 9 introduce new features and capabilities while maintaining backwards compatibility. The future of Java development involves open collaboration through projects like OpenJDK to drive continued innovation.
MySQL Shell - The DevOps Tool for MySQLMiguel Araújo
The document discusses MySQL Shell and MySQL InnoDB Cluster. MySQL Shell is a development and administration tool that supports multiple languages and provides unified interfaces for developers and DBAs. It allows for both relational and document-based operations. MySQL InnoDB Cluster provides a native high availability solution with Group Replication and automatic failover capabilities. It offers an integrated full stack HA solution that is easy to use. Live demos are presented showing MySQL Shell for development and administration of MySQL InnoDB Cluster.
Whether you’re considering migrating to PHP 7 or are already there, you need to know the specifics of how to keep your application running smoothly, efficiently, and with minimum downtime. Take these techniques proven by our customers to make your PHP 7 application shine.
• API Blueprint를 사용하여 API 문서를 설계하고, Oracle JET(UI Framework), Mock API, API Platform을 사용하여 프로토타입하는 과정을 실습합니다.
o Designing APIs with Apiary and API Blueprint
o API prototyping with Oracle JET, Mock API and API Platform
This document discusses the Java Community Process (JCP) and how developers can get involved. It provides an overview of the JCP, including how Java specifications are developed through Java Specification Requests (JSRs). It encourages developers to join the JCP as members in order to help shape Java standards and advance their careers. It also outlines upcoming changes to broaden JCP membership and participation.
This document discusses the Java Community Process (JCP) and the future of Java. It provides an overview of the JCP, including that it is an open, transparent process for evolving Java technology and that JCP members collaborate to develop Java specifications through Java Specification Requests (JSRs). It notes some of the benefits of JCP participation for developers and communities.
Java 9 New Features | Java Tutorial | What’s New in Java 9 | Java 9 Features ...Edureka!
The document discusses several new features in Java 9 including REPL JShell, collection factory methods that provide immutable collections, a new HTTP/2 client API, modularity with the Jigsaw project, and other minor features like Stream API improvements, multi-release JARs, and improved Javadoc. It provides details on each of these features and their benefits.
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]David Buck
OpenJDK is a huge open source project with hundreds of participants working on the backbone of Java SE, a platform that more than 9 million developers worldwide depend on. Yet despite this level of interest, many people initially find the process of contributing code to OpenJDK to be complicated and even intimidating. But this simple crash course covers all the basics, from setting up a work environment to submitting your first patch for review. Some of the topics covered: the Java Bug Database, using Mercurial to clone a repository and create a change set, jcheck, jtreg, webrevs, repository layouts, the OpenJDK code review process, and eventually even obtaining your own OpenJDK user ID (after several contributions).
Microcontainers and Tools for Hardcore Container DebuggingOracle Developers
The document discusses microcontainers and tools for debugging containers. It begins with introductions of the presenters and an agenda. It then provides information on what containers are, how they work, and common issues. Microcontainers are introduced as a way to reduce image size and security risks. The document demonstrates how to build microcontainers and debug containers using open source tools from Oracle. It concludes with links to more information and a question/answer section.
제 8회 Oracle Developer Meetup에서 발표한 "Cloud Native Java:GraalVM"의 장표입니다. 세미나 동영상은 다음 URL에서 보실 수 있습니다.
https://www.facebook.com/OracleKorea/videos/899585790388647/UzpfSTEwMDAxNTI2OTgwNDYyODpWSzo2MDc3NTY3NDk2MzgyNDg/
This document discusses GraalVM and Java performance optimizations. It begins with an introduction to GraalVM and its benefits, such as running multiple languages on the JVM. It then covers key differences between ahead-of-time and just-in-time compilers, and how the JIT compiler in HotSpot uses profiling and dynamic compilation to optimize bytecode execution. The document also discusses how techniques like inlining help improve Java performance over time.
The document discusses asynchronous MySQL replication and its limitations. Asynchronous replication involves replicas streaming replication logs from a single master, which can lead to lag. Replica provisioning and data consistency must be manually handled. Complex replication topologies can be built but come with challenges around write safety and management overhead. Group replication aims to address some of these issues.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [JavaOne 2017 CON3738]David Buck
presentation video: https://www.youtube.com/watch?v=mhravU1HL4k
One of the lesser-known features coming with JDK 9 is experimental support for ahead-of-time (AOT) compilation. Compiling Java bytecode into ready-to-execute machine code before runtime means that many applications may benefit from quicker startup and, in the case of multiple JVM instances, even lower memory consumption. In this demo-heavy session, you will see what advantages AOT has to offer and, perhaps even more importantly, what its limitations are. You will also get the opportunity to see Java’s new AOT compilation in action and leave with the knowledge needed to experiment on your own later. Although Java’s AOT is not yet ready for production use, this is a great chance to get a sneak peek at one of HotSpot’s most exciting new technologies.
Learn how to take part in the Java developer community and the upcoming changes to Java - you can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session answers questions about why and how to participate in the evolution of the Java platform.
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologyEd Burns
The document discusses the importance of GitHub for software careers. It begins with an introduction to GitHub, describing how it popularized open source software by allowing developers to host projects and collaborate on code. The rest of the document covers version control with Git and additional features of GitHub like Gists, issues, and student resources that can benefit careers. It emphasizes that having an active public profile on GitHub can increase your value as a developer.
Talk on Java Community Process updates and progress towards more openness and transparency. Also includes information on Platform updates and how to participate in activities. This talk is from various events in EMEA in the Fall of 2018.
The document discusses the history and future of Java. It notes that Java was originally developed by Sun Microsystems in 1995 and later open-sourced. It is now stewarded by Oracle, who aims to evolve Java through an open process. Key topics covered include Java's large developer community, the Java Community Process for developing specifications, and ongoing work to improve and modernize the Java platform through projects like OpenJDK.
The document discusses the future of Java and opportunities for developers. It outlines Oracle's commitment to open governance of Java through the Java Community Process. Recent and upcoming versions of Java like Java EE 8 and Java SE 9 introduce new features and capabilities while maintaining backwards compatibility. The future of Java development involves open collaboration through projects like OpenJDK to drive continued innovation.
MySQL Shell - The DevOps Tool for MySQLMiguel Araújo
The document discusses MySQL Shell and MySQL InnoDB Cluster. MySQL Shell is a development and administration tool that supports multiple languages and provides unified interfaces for developers and DBAs. It allows for both relational and document-based operations. MySQL InnoDB Cluster provides a native high availability solution with Group Replication and automatic failover capabilities. It offers an integrated full stack HA solution that is easy to use. Live demos are presented showing MySQL Shell for development and administration of MySQL InnoDB Cluster.
Whether you’re considering migrating to PHP 7 or are already there, you need to know the specifics of how to keep your application running smoothly, efficiently, and with minimum downtime. Take these techniques proven by our customers to make your PHP 7 application shine.
• API Blueprint를 사용하여 API 문서를 설계하고, Oracle JET(UI Framework), Mock API, API Platform을 사용하여 프로토타입하는 과정을 실습합니다.
o Designing APIs with Apiary and API Blueprint
o API prototyping with Oracle JET, Mock API and API Platform
This document discusses the Java Community Process (JCP) and how developers can get involved. It provides an overview of the JCP, including how Java specifications are developed through Java Specification Requests (JSRs). It encourages developers to join the JCP as members in order to help shape Java standards and advance their careers. It also outlines upcoming changes to broaden JCP membership and participation.
This document discusses the Java Community Process (JCP) and the future of Java. It provides an overview of the JCP, including that it is an open, transparent process for evolving Java technology and that JCP members collaborate to develop Java specifications through Java Specification Requests (JSRs). It notes some of the benefits of JCP participation for developers and communities.
Java 9 New Features | Java Tutorial | What’s New in Java 9 | Java 9 Features ...Edureka!
The document discusses several new features in Java 9 including REPL JShell, collection factory methods that provide immutable collections, a new HTTP/2 client API, modularity with the Jigsaw project, and other minor features like Stream API improvements, multi-release JARs, and improved Javadoc. It provides details on each of these features and their benefits.
OpenJDK: How to Join In on All the Fun [JavaOne 2017 CON3667]David Buck
OpenJDK is a huge open source project with hundreds of participants working on the backbone of Java SE, a platform that more than 9 million developers worldwide depend on. Yet despite this level of interest, many people initially find the process of contributing code to OpenJDK to be complicated and even intimidating. But this simple crash course covers all the basics, from setting up a work environment to submitting your first patch for review. Some of the topics covered: the Java Bug Database, using Mercurial to clone a repository and create a change set, jcheck, jtreg, webrevs, repository layouts, the OpenJDK code review process, and eventually even obtaining your own OpenJDK user ID (after several contributions).
Microcontainers and Tools for Hardcore Container DebuggingOracle Developers
The document discusses microcontainers and tools for debugging containers. It begins with introductions of the presenters and an agenda. It then provides information on what containers are, how they work, and common issues. Microcontainers are introduced as a way to reduce image size and security risks. The document demonstrates how to build microcontainers and debug containers using open source tools from Oracle. It concludes with links to more information and a question/answer section.
제 8회 Oracle Developer Meetup에서 발표한 "Cloud Native Java:GraalVM"의 장표입니다. 세미나 동영상은 다음 URL에서 보실 수 있습니다.
https://www.facebook.com/OracleKorea/videos/899585790388647/UzpfSTEwMDAxNTI2OTgwNDYyODpWSzo2MDc3NTY3NDk2MzgyNDg/
This document discusses GraalVM and Java performance optimizations. It begins with an introduction to GraalVM and its benefits, such as running multiple languages on the JVM. It then covers key differences between ahead-of-time and just-in-time compilers, and how the JIT compiler in HotSpot uses profiling and dynamic compilation to optimize bytecode execution. The document also discusses how techniques like inlining help improve Java performance over time.
The document discusses asynchronous MySQL replication and its limitations. Asynchronous replication involves replicas streaming replication logs from a single master, which can lead to lag. Replica provisioning and data consistency must be manually handled. Complex replication topologies can be built but come with challenges around write safety and management overhead. Group replication aims to address some of these issues.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
I’ll let you into a secret. There are servers. Lots of servers. And networking gear. Storage too. We just don’t want to have to think about them anymore.
In this session we’ll learn how to build, from the ground up, a scalable, reliable app without once mentioning virtual machines, load balancers, volumes, auto-scaling groups (or even containers that much).
A Functions-as-a-Service (FaaS) platform is the beating heart of a serverless architecture.
A function is a simple piece of code that does one job, well. It takes some input (usually on standard in) and, optionally, writes some output, usually to standard out. We are not talking about functions in the ‘functional programming’ sense here as these functions can have side-effects – rather they are self-contained units of work.
Your functions are deployed as a single unit to a Functions-as-a-Service platform.
This platform then deals with the provisioning of the underlying infrastructure; deploying your function code; scaling up and down; resilience and reliability; billing; security (authentication, authorization, isolation). And it has to do all this blazingly fast; at huge scale and for any language / platform that you care to use.
But a FaaS on it’s own is not sufficient. You need somewhere to store and process state (check out the State Service talks this week for some help with that). You also need a way to stitch together your small, independent functions into a coherent, fault-tolerant whole. More on that later.
Your FaaS platform will enable your app to scale organically per-request without you having to write any special code to handle it. And not just the gentle seasonal changes in demand that a retail business might experience but also sudden, dramatic surges in demand caused by your app going viral.
In addition to scaling your FaaS will be taking care of secure isolation of your functions too. Here again keeping things small helps us write better software: the isolated execution contexts can have only the secrets that they require added to them. This will greatly reduce the blast-radius for any software vulnerability.
The primary focus of a serverless platform is your code. The FaaS encourages you to break up your app into small, isolated parts. This is great for dev as small, isolated functions are easier to reason about and manage.
Serverless changes the economics of computing too.
The two primary principles are:
- you don’t pay while your code’s not running.
- when you do pay you’ll pay in sub-second increments for resources consumed. Typically 100ms billing increments over RAM.
There are secondary effects too:
- Developers can focus on writing code to improve the lives of their customers instead of managing infrastructure and software lifecycle. More productive developers = happier developers = more productive developers.
- Your FaaS can pack workloads much more densely than just using VMs alone. This enables better utilization of hardware and therefore better price/performance.
- Complexity is moved into the platform and handled for you. For example the auto-scaling nature of a FaaS removes the need for developers to write lots of complex monitoring, metrics and provisioning code.
The combination of sub-second resolution billing, seamless scaling and small, reusable functions will change the way we think about development. As tools and practices catch up to working at this fine-grained resolution, the financial impact of poorly written, badly behaved code will become immediately obvious and developers will stop using costly libraries and functions. This has the potential to have a massive positive impact on the maturity of software engineering as a discipline.
Fn is an open source Function-as-a-Service platform. It was announced by Oracle today/this week. You can download this now and use it for real.
Yes, really.
It’s an Apache 2.0 licensed project.
It’s not under the Oracle brand or Oracle github organisation.
We are actively seeking outside collaborators.
We have teams in the US and UK committed to working in the open on this project.
Not ‘open core’. We are not keeping anything back for ourselves – what you see in the github is what we’ll be running in our cloud service.
Why? - Being open allows us to provide a much better developer esperience.
Not only can you get and read the source so you know exactly what’s going on under the hood (should you need to)…
…but you can contribute to shape the project to better meet your needs.
But mainly because it enables an awesome, frictionless local developer experience that is difficult or impossible with closed, propietary solutions.
Best-in-class support for Java with more innovation to come.
A Java ”function development kit” (FDK) which speeds up the development of Java functions.
Unit testing support in the form of a Junit rule to accurately simulate the runtime environment.
Access to configuration and secrets provided by the fn platform.
Type coercions to make parsing and formatting your input and output as easy, and safe, as possible.
A polyglot platform with out of the box support for >15 stacks. But you can always drop back to the Docker/container layer if you need to run something that we don’t support. This is offers more flexibility than most other serverless offerings today.
Fn Flow is a service that sits alongside the Fn FaaS that addresses the workflow problem. It is open source too. More on this later.
1. We are a travel agent. We have partnered with 4 different 3rd parties. One for booking flights, one for booking hotels, another for booking car rentals and finally someone to manage sending emails on our behalf. We have selected the best-of-breed company in each sector. Unfortunately this means that we have a heterogeneous tech stack to deal with.
2. The flight partner provided us with a brilliant and easy to use Java SDK. The hotel partner insisted that they would only supply us with a ruby SDK. The car rental firm releases updates and patches to its nodejs SDK before any others and the email provider would prefer we interact w ith their service through the provided python client.
3. We are therefore going to write a function for each provider, to book and to cancel. This way we not only get to use the most appropriate tech stack but we get security benefits too as we can segregate runtime secrets required for authenticating to the different providers.
4. Finally we want to create a trip function that our app can call to reliably book a trip that consists of a flight, a hotel and a car rental booking.
1. In the first part of the demo we’re going to develop our first function, in Java, to book a flight.
[fn start] Easy to start a local dev server
[fn init] Easy to create a new function
[Show func.yaml] cmd tells Fn which Java method to call when there's work to do. path allows us to control the URI that this function binds to.
[Show boilerplate] It's a simple, plain Java program. No framework to learn and wrestle.
[Show test and run] JUnit support provides a comprehensive simulation of the environment that your function will run in when deployed. Thus you can get a high degree of confidence that your function is correct before it leaves your laptop.
[fn app create] apps are namespaces for functions. We need an app in order to...
[fn deploy] builds your function in a docker conatiner so that you have repeatable builds. deploys your function to the Fn service
[fn call] calls the function at the URI that you just deployed to
[curl] fn includes a lightweight HTTP gateway. Fn invocations are just HTTP calls to the URL for your function.
There’s nothing more productivity-sapping to a developer than having to wait a long time between writing code and getting feedback on whether it works. That used to be compile time, then waiting for tests or CI to run but today it’s waiting for your code to upload and deploy to the cloud. For a complex app this can be very time-consuming and will cause you to lose focus and lose flow. By offering a superb local development experience we can get that feedback cycle down from minutes to seconds and keep you in the zone.
1. The Fn Java FDK (function development kit) provides a high-fidelity, Junit compatible testing environment so that you can get a high degree of confidence in you code before you deploy it (even locally).
2. Fn is open source so you can run the exact same server on your laptop that will be running in the cloud service that you deploy to.
3. Cloud deployment takes advantage of Docker image layers to minimize the amount of data transferred for new deploys.
Plain old Java. No complicated new framework to learn, just write Java as you have always done.
Create some POJOs for request, response
Show updated test
Show sample request JSON
fn deploy
cat request | fn call
Curl again??
OK, so there is a helper library that we call the FDK. We aim to keep it as unobtrusive as possible but there will always be times when you want to customize it’s behaviour.
We use Jackson to do serialization to and from JSON which gives sensible defaults. You can also use the full power of Jackson either programmatically or via the annotations to customize the serialization as you need.
Or write your own input or output handler to take care of that exotic wire format that your client insists on keeping backwards compatability for. Or add protobuf support.
[Import Airline SDK package]
[Create configuration method] Fn supports setting configuration at the function or app level. Can set in func.yaml or via the API/CLI
[instantiate Airline SDK]
[Change handleRequest method to call airline api]
[fn deploy]
[fn call] we have a confirmation number - where did that come from?
[Show fake API dashboard] Well the Airline SDK is not real. It's a fake. In fact it just informs this dashboard that it's been called and with what parameters so that we can see what's going on.
2. In the second part of the demo we’re going to deploy the rest of the functions that make up our app so that we can start developing our trip function.
fn deploy --all --local
Fn routes list
In the last part of the demo we’re going to develop the trip function that will reliably orchestrate work across the functions that we’ve just developed to book a trip for the user. It must do so reliably, confirming each reservation or cancelling them all. It must cope with downtime in our partner APIs as well as full flights, packed hotels and empty rental lots.
This workflow or composition problem is actually a general one that most serverless applications have once they reach some level of complexity. There are 2 naive approaches:
- Write a blocking master function that runs one function, waits for the result, then runs the next etc. This might be easy to understand but we lose a lot of the nice characteristics of a serverless app when we do this. This master function is long-running and consumes resources for the whole time that the individual functions are running. When the booking processes take minutes this can get expensive. It's also not very reliable: if this master function dies then we've got no easy way of recovering.
- Chain the next function by directly calling it. This ends up being a maintenance nightmare very quickly as all of a sudden each upstream function has to know about every downstream one so that it can gather and pass the right data down the chain. It's also very difficult to deal with errors. Fan-in / join is tricky.
So we get to the point of needing an external co-ordination service that you can configure to call your functions, pass data down the graph and deal with errors.
In the past this has meant BPEL or some other external workflow DSL. Today, the answer from other clouds amounts to the same thing, in JSON with a shiny visual programming front-end. This approach has several issues that prevented serious usage the first time round and still apply today.
<rapid click through next slides>
Not every problem maps well to a state machine approach.
- Error handling becomes very tricky and causes an explosion of complexity.
It’s difficult to test
It’s really difficult to debug
You have to manage and run the orchestration service.
You end up creating and maintaining a lot of 'glue' code that extract data from the response of one function and format it for consumption by another.
- It's another language and associated tooling to learn.
Enter Fn Flow. It occurred to us that Java already has a mechanism for composing asynchronous functions. The CompletionStage API introduced in Java 8 and improved in Java 9 provides a really nice, type-safe promises-style API. This lets us compose a graph of asynchronous computations that lets you specify concurrency, fan-out, fan in and a bunch of other distributed programming primitives.
What if could use this API, or something very like it, in our favorite language (Java of course) to compose serverless functions?
So we wrote a service (that we call the completer) that can store and trigger the execution of these computation graphs.
This is part of the Fn platform and shares the same scalability and reliability properties. We open sourced this along with the rest of the Fn platform. This service backs an API that's almost exactly like CompletionStage that you can use in your Java function to reliably compose other functions. Let's see what it looks like…
Each funciton executes in a particular flow. You get access to that flow from Flows.currentFlow().
This object has a bunch of methods for adding work to your current execution graph. Here we’re going to use invokeFunction to call another function on the Fn platform. This can be in Java or any other language.
invokeFunction returns a FlowFuture which represents the potential future value that that function call returns.
FlowFuture itself then has some methods for chaining work onto the result of that computation. Now we’re just going to call the flight booking function.
Similarly to the flight booking function we’ve created a POJO that represents the input for a trip. It includes info about the flight, hotel and car. It corresponds to JSON that looks like this.
So when we deploy and call this function, and pass it that JSON, we can see a call to the flight booking fake.
So far so boring.
Next we’re going to use the thenCompose function to chain the hotel and car rental calls to the end of the flight call. Then compose take a lanbda that takes the result of the previous call, in this case a flight booking confirmation, and returns a new FlowFuture that represents the remaining work to be done.
Then we will use the whenComplete method to send an email. whenComplete takes a lambda that takes 2 parameter, a result and an error. On will be null. We can use this to check the result of the computation, handle errors if necessary and take appropriate action. For now we’ll just send the user an email.
An important thing to note about this code is that because the results from the flight, hotel and car booking are still in scope when we send the email we can use these values to compose the email. In fact each stage of this function, which we see as a whole here, is run as several different invocations, possibly in different JVMs on different hosts. The platform deals with making sure that the right values are available to each call a the appropriate time. This preserves the ‘don’t pay for idle’ and ‘automatic scaling’ serverless properties.
When we deploy and call this function we can see that we get a call to the flight, hotel and car providers and we then send an email with the results of each of those calls. This demonstrates fan out and fan in.
OK so what if one of our providers is unable to handle one of our booking requests? Let’s say, for example, that our car provider has run out of cars in between our user searching for a car and sumitting the booking request. But by this time we’ve already booked a flight and a hotel! We need to introduce a ‘compensating transaction’ that will cancel the hotel and flight in the case that we get an error from the car provider. In fact we need to cancel the car too as we don’t know if the error happened before or after the car booking was committed.
Introducing the exceptionallyCompose method on the FlowFuture. This lets us add new work to the computation graph if an error occurred in a preceding stage. You could use this to return a default value, retry the call, alert an operator or whatever else makes sense for your app. In this case, by inserting the exceptionallyCompose in the right place in the graph we can use it to implement the compensating transactions. This is an implementation of the saga pattern.
So when we deploy and call this function, in the happy case, we can see that it behaves the same as before.
We can now configure the fake SDK to have the car provider return an error. Now when we run the function we can see that we successfully book the flight and hotel, and fail to book the car. Then we will cancel the car, hotel and flight and finally send an email to the user telling them that we’ve failed.
At this point I’d like to introduce the flow UI. This is an experimental UI that we can use to explore what is happening during a particular flow invocation. The x-axis is time from left to right and the y axis is roughly dependency order. In this flow you can see the main function in the top left and the flight and hotel bookings here. Here is the failed car booking. Clicking on this node highlights the ancestors of this node, that is all the stages that caused this one to run. And below we can see logs from all of those stages including the error. This is super useful for understanding what’s going on during a flow execution.
Finally, what would happen if, instead of failing to book a car, the car provider was down entirely. We can simulate this in our fake API dashbaord by setting the car cancel function to return an error too.
Ideally we’d like to retry the cancellation until either we succeed or we exceed the maximum retry count.
So we have this retry helper that we can wrap our cancel function calls in. This is interesting because we’re just using primitives supplied by Fn Flow, in this case delay and thenCompose to implement the retry. But we’ve encapsulated this in a way that keeps our main flow understandable and enables us to reuse this pattern elsewhere.
When we run this function now we can see the flow retrying the cancellation of the car rental.
In the flow UI we can see that we’re not incurring any cost when there’s no work happening, for example in between the retries.
Out of time to show you the unit testing support.
OK, so let’s just recap what we’ve announced today and what it enables you to do.
Develop small, reusable functions in Java and have the platform deal with scale, deployment and all the infrastructure concerns
Develop functions in your favourite language or use custom or pre-existing Docker containers if none of the out-of-the box runtimes meet your needs.
Open and extensible is better for your productivity.
Use Fn Flow’s distributed programming primitives to build scalable, reliable serverless apps. This enables you to reason about, and test, your whole app in one place. Do this by using a familiar API in your favorite language (still Java) to orchestrate work. No more ‘programming’ in large globs of JSON. Or XML <shudder>
You can then use the first-class unit testing support to check that it will do the right thing. And you can use the local dev server to get that extra confidence.
Built-in error-handling constructs help you write apps that are fault-tolerant. And per-request scaling from the Fn platform takes the pain out of scaling.