Zoomdata is the fastest visual analytics product for big data available on the market. Here we will talk about how RxJava became the key component in its architecture. I want to share our experience with reactive programming and RxJava so that audience will learn about “good” and “bad” stuff based on a real and cool product. Besides, we will talk about performance implications and integration with “big names”, including Apache Spark.
Schedulers are a very powerful way of controlling the execution of the Reactive Extensions for JavaScript streams. In this presentation we examine the different types of schedulers and the different queues in the JavaScript runtime (Tasks and Micro tasks)
You may all know that JSON is a subset of JavaScript, but... Did you know that HTML5 implements NoSQL databases? Did you know that JavaScript was recommended for REST by Roy T. Fielding himself? Did you know that map & reduce are part of the native JavaScript API? Did you know that most NoSQL solutions integrate a JavaScript engine? CouchDB, MongoDB, WakandaDB, ArangoDB, OrientDB, Riak.... And when they don't, they have a shell client which does...
The story of NoSQL and JavaScript goes beyond your expectations and open more opportunities than you might imagine... What better match could you find than a flexible and dynamic language for schemaless databases? Isn't, an event-driven language what you were waiting for to manage eventually consistency? When NoSQL doesn't come to JavaScript, JavaScript comes to NoSQL, and does it very well...
Matteo Collina | Take your HTTP server to Ludicrous Speed | Codmeotion Madrid...Codemotion
In my journey through nodeland, I always wonder about the cost of my abstractions. Express, Hapi, Restify, or just plain Node.js core? require(‘http’) can reach 30k requests/sec, Express 22k, and Hapi 21k. I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 37k requests/sec, Fastify can halve your cloud server bill. How can Fastify be so.. fast? We will discover all the not-so-secret techniques that were used to optimize it. In Fastify we reach a point where even allocating a callback is too slow: Ludicrous
Cassandra Summit EU 2014 - Testing Cassandra ApplicationsChristopher Batey
The document discusses testing Cassandra applications. It introduces Stubbed Cassandra, a tool that allows embedding a Cassandra server in unit tests to prime responses and verify queries. It can start multiple instances in a test, prime different result types, and verify connections and prepared statements. Example tests show how to test queries, errors, retries, and slow connections. Future features may include loading schemas and simulating multiple nodes.
Node.js와 AngularJS 문서는 Node.js와 AngularJS에 대한 개요를 제공합니다. 문서는 Node.js와 AngularJS 설치 방법, 기본 개념, 모듈, 이벤트 처리, 파일 시스템 액세스, HTTP 서버 구축 방법에 대해 설명합니다. 또한 AngularJS 필터, 컨트롤러, 리스트 처리, 액션 처리 방법에 대해 설명합니다. 문서는
The document discusses designing fault tolerant microservices. It introduces common faults like network issues and describes six principles for building fault tolerance: 1) use timeouts to fail fast, 2) bound work queues to prevent unbounded growth, 3) fail gracefully by expecting errors from dependencies, 4) monitor dependencies to understand faults, 5) implement circuit breakers to avoid retrying broken services, and 6) include kill switches to disable broken components. Code examples demonstrate implementing these principles using tools like Hystrix, Wiremock and Graphite.
Cassandra is great but how do I test my application?Christopher Batey
The document discusses testing Cassandra applications and introduces Stubbed Cassandra, a tool for testing Cassandra drivers. Stubbed Cassandra allows priming a fake Cassandra server to return expected responses or errors. It can be used to test failure scenarios, edge cases, and retry policies. The tool has Java and REST APIs and makes it possible to quickly test Cassandra applications in a deterministic and non-brittle way.
Android architecture component - FbCircleDev Yogyakarta IndonesiaPratama Nur Wijaya
The document discusses Android Architecture Components (AAC). It describes AAC as a library, guidelines and standards that aim to standardize architecture and reduce boilerplate code. It discusses key components of AAC like Lifecycles, LiveData, ViewModel and Room that help address issues like lifecycle handling, data persistence and offline support. It provides code examples to demonstrate how these components can be used to build more robust Android applications that properly handle lifecycles and data.
Schedulers are a very powerful way of controlling the execution of the Reactive Extensions for JavaScript streams. In this presentation we examine the different types of schedulers and the different queues in the JavaScript runtime (Tasks and Micro tasks)
You may all know that JSON is a subset of JavaScript, but... Did you know that HTML5 implements NoSQL databases? Did you know that JavaScript was recommended for REST by Roy T. Fielding himself? Did you know that map & reduce are part of the native JavaScript API? Did you know that most NoSQL solutions integrate a JavaScript engine? CouchDB, MongoDB, WakandaDB, ArangoDB, OrientDB, Riak.... And when they don't, they have a shell client which does...
The story of NoSQL and JavaScript goes beyond your expectations and open more opportunities than you might imagine... What better match could you find than a flexible and dynamic language for schemaless databases? Isn't, an event-driven language what you were waiting for to manage eventually consistency? When NoSQL doesn't come to JavaScript, JavaScript comes to NoSQL, and does it very well...
Matteo Collina | Take your HTTP server to Ludicrous Speed | Codmeotion Madrid...Codemotion
In my journey through nodeland, I always wonder about the cost of my abstractions. Express, Hapi, Restify, or just plain Node.js core? require(‘http’) can reach 30k requests/sec, Express 22k, and Hapi 21k. I started a journey to write an HTTP framework with extremely low overhead, and Fastify was born. With its ability to reach an astonishing 37k requests/sec, Fastify can halve your cloud server bill. How can Fastify be so.. fast? We will discover all the not-so-secret techniques that were used to optimize it. In Fastify we reach a point where even allocating a callback is too slow: Ludicrous
Cassandra Summit EU 2014 - Testing Cassandra ApplicationsChristopher Batey
The document discusses testing Cassandra applications. It introduces Stubbed Cassandra, a tool that allows embedding a Cassandra server in unit tests to prime responses and verify queries. It can start multiple instances in a test, prime different result types, and verify connections and prepared statements. Example tests show how to test queries, errors, retries, and slow connections. Future features may include loading schemas and simulating multiple nodes.
Node.js와 AngularJS 문서는 Node.js와 AngularJS에 대한 개요를 제공합니다. 문서는 Node.js와 AngularJS 설치 방법, 기본 개념, 모듈, 이벤트 처리, 파일 시스템 액세스, HTTP 서버 구축 방법에 대해 설명합니다. 또한 AngularJS 필터, 컨트롤러, 리스트 처리, 액션 처리 방법에 대해 설명합니다. 문서는
The document discusses designing fault tolerant microservices. It introduces common faults like network issues and describes six principles for building fault tolerance: 1) use timeouts to fail fast, 2) bound work queues to prevent unbounded growth, 3) fail gracefully by expecting errors from dependencies, 4) monitor dependencies to understand faults, 5) implement circuit breakers to avoid retrying broken services, and 6) include kill switches to disable broken components. Code examples demonstrate implementing these principles using tools like Hystrix, Wiremock and Graphite.
Cassandra is great but how do I test my application?Christopher Batey
The document discusses testing Cassandra applications and introduces Stubbed Cassandra, a tool for testing Cassandra drivers. Stubbed Cassandra allows priming a fake Cassandra server to return expected responses or errors. It can be used to test failure scenarios, edge cases, and retry policies. The tool has Java and REST APIs and makes it possible to quickly test Cassandra applications in a deterministic and non-brittle way.
Android architecture component - FbCircleDev Yogyakarta IndonesiaPratama Nur Wijaya
The document discusses Android Architecture Components (AAC). It describes AAC as a library, guidelines and standards that aim to standardize architecture and reduce boilerplate code. It discusses key components of AAC like Lifecycles, LiveData, ViewModel and Room that help address issues like lifecycle handling, data persistence and offline support. It provides code examples to demonstrate how these components can be used to build more robust Android applications that properly handle lifecycles and data.
Cassandra Summit EU 2014 Lightning talk - Paging (no animation)Christopher Batey
This document discusses streaming and paging data from Apache Cassandra using observables. It introduces the speaker as an evangelist for Cassandra and describes how server-side paging and combining result sets with observables allows efficient streaming of large result sets without blocking or out of memory errors. Code examples are provided showing how to create an observable from a Cassandra query result set and subscribe to stream result rows.
This document describes the implementation of a simple REST server in Qt using reflection. It discusses how the Qt meta-object compiler (moc) is used, the abstract and concrete server classes, building the route tree using reflection, handling new connections in worker threads, calling methods based on the request, and using reflection for testing. The abstract server class inherits from QTcpServer and uses slots decorated with tags to implement routes. Worker threads handle individual connections and parse requests to call the appropriate method. Reflection is leveraged throughout to build routes and dispatch requests without explicit registration or mapping.
JS Fest 2019. Thomas Watson. Post-Mortem Debugging in Node.jsJSFestUA
Post-Mortem debugging is a really powerful technique that allows you, through the use of several tools, to take a memory dump when an issue occurs in your application and later analyze it offline.
The talk will primarily focus on llnode and how you can use this tool to better understand why a Node.js process is behaving odd or is crashing.
Unit Testing RxJS streams using jasmine-marbles. The demo shows how we can create a Web Component that uses NGRX/store + NGRX/effects like workflow and how we test our effect streams
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)Valerii Kravchuk
My slides for (canceled due to personal issues) talk for FOSDEM 2018 MySQL Devroom. I planned to discuss the history of ALTER TABLE speedup and optimization in MySQL, explain the implementation of instant ADD COLUMN for InnoDB tables in MariaDB 10.3 and compare performance of recent versions of MariaDB 10.2, 10.3, Percona Server 5.7, MyRocks from MariaDB 10.2 and MySQL 8.0.4 while working on multiple step test case incolving ALTER TABLE ... ADD COLUMN.
A lof of links to related manuals, blog posts and resources are presented.
Valerii Kravchuk is a MySQL support engineer who provides tips on using gdb to troubleshoot MySQL problems. Gdb can be used to check stack traces, print variable values, set breakpoints, and call functions when analyzing core dumps or attached to a live mysqld process. The THD structure contains important runtime information like the current query string. Real-life examples demonstrate checking core files and attaching gdb to modify variables in a running server.
The document discusses debugging performance problems in MongoDB. It describes solutions tried such as denormalizing data, adding indexes, sharding, scaling hardware, and tagging shards. While performance improved with these solutions at times, slowness still occasionally occurred. The document advocates using monitoring tools like New Relic and Skylight to further analyze issues and find additional solutions.
MySQL Parallel Replication: inventory, use-case and limitationsJean-François Gagné
Booking.com uses MySQL parallel replication extensively with thousands of servers replicating. The presentation summarized MySQL and MariaDB parallel replication features including: 1) MySQL 5.6 uses schema-based parallel replication but transactions commit out of order. 2) MariaDB 10.0 introduced out-of-order parallel replication using write domains that can cause gaps. 3) MariaDB 10.1 includes five parallel modes including optimistic replication to reduce deadlocks during parallel execution. Long transactions and intermediate masters can limit parallelism.
Tracing and profiling my sql (percona live europe 2019) draft_1Valerii Kravchuk
The document discusses various tools that can be used for tracing and profiling MySQL, including Linux tools like strace, gdb, ftrace, bpftrace, perf, and dynamic probes. It focuses on perf as one of the best and easiest tools to use for tracing and profiling MySQL in production on Linux. Examples are provided of using perf to add probes to MySQL dynamically to capture SQL queries.
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...Jean-François Gagné
Since 5.7.2, MySQL implements parallel replication in the same schema, also known as LOGICAL_CLOCK (DATABASE based parallel replication is also implemented in 5.6 but this is not covered in this talk). In early 5.7 versions, parallel replication was based on group commit (like MariaDB) and 5.7.6 changed that to intervals.
Intervals are more complicated but they are also more powerful. In this talk, I will explain in detail how they work and why intervals are better than group commit. I will also cover how to optimize parallel replication in MySQL 5.7 and what improvements are coming in MySQL 8.0. I will also explain why Group Replication is replicating faster than standard asynchronous replication.
Come to this talk to get all the details about MySQL 5.7 Parallel Replication.
Gdb can be used by MySQL DBAs as a last resort tool to troubleshoot issues. It allows inspecting variable values, setting variables, calling functions, and getting stack traces from a running or crashed mysqld process. The presentation provides examples of using gdb to study InnoDB locks, metadata locks, and real bugs. While gdb can help in some cases, ideally DBAs should use profiling tools, implement missing features, and follow best practices to avoid needing gdb.
Riding the Binlog: an in Deep Dissection of the Replication StreamJean-François Gagné
Binary Logs are the cornerstone of MySQL Replication, but is it fully understood ? To start apprehending this, we can think of the binary logs as a transport for a Stream of Transactions. Traveling from master to slave, sometimes via Intermediate Masters, this stream evolves: it can shrink by the application of filters, can grow by the addition of slave-local transactions, and two streams can merge by the usage of multi-source replication. After presenting the binary logs Stream Model, the different MySQL use-cases will be mapped to the model, which can serve as a validation of the model. After this validation, the model will be used to make prediction on new use-cases/features that could emerge in the future.
MySQL/MariaDB Parallel Replication: inventory, use-case and limitationsJean-François Gagné
- The document discusses various parallel replication technologies in MySQL/MariaDB including schema-based parallel replication in MySQL 5.6, group commit-based approaches in MariaDB 10.0 and MySQL 5.7, and optimistic parallel replication in MariaDB 10.1.
- It provides an overview of how each approach tags and dispatches transactions to worker threads on slaves and their limitations regarding transaction ordering and gaps.
- Examples from Booking.com show how parallel replication can scale to thousands of servers but also hit issues like long transactions blocking progress.
Cassandra provides row-level isolation where a transaction is atomic for a single query executed on one node. A transaction in Cassandra updates either all columns in a row or none of them. Complex multi-row or multi-query transactions are not supported. The implementation uses a copy-on-write approach utilizing a concurrent data structure called SnapTree to clone columns being updated, ensuring atomic and isolated updates at the row level for a single query.
Example of using Kotlin lang features for writing DSL for Spark-Cassandra connector. Comparison Kotlin lang DSL features with similar features in others JVM languages (Scala, Groovy).
The document discusses the evolution of vertically scaled design patterns used by an organization. It began with a monolithic approach using static configuration management. This worked initially but did not scale. It evolved to use dynamic task scheduling with Mesos and Marathon, treating services as microservices. This allows individual services to be scaled and load balanced with service discovery. A live demo is offered to illustrate these patterns.
JavaFX 8 est disponible depuis mars 2014 et apporte son lot de nouveautés. Gradle est en version 2 depuis juillet 2014. Deux technologies plus que prometteuses: JavaFX donne un coup de jeune au développement d’applications desktop en Java en apportant un navigateur web intégré, le support des WebSockets, de la 3D, et bien d’autres. Gradle est l’outil de d’automatisation de build à la mode, apportant de superbes possibilités par rapport rapport à maven, outil vieillissant, grâce à l’engouement de la communauté vis à vis de cet outil mais aussi par le fait de la technologie utilisée en son sein: groovy. Venez découvrir comment il est possible de réaliser rapidement une application à la mode en JavaFX avec un outil à la mode également. Bref venez à une session trendy.
RxJava is a library for composing asynchronous and event-based programs using observable sequences. It allows avoiding callback hell and makes it easy to compose and transform asynchronous processes through combining, filtering, etc. RxJava uses Observables to represent asynchronous data streams and allows subscribing to those streams using Observers. It supports asynchronous operations through Schedulers and can integrate with libraries like Retrofit to handle asynchronous network requests in a reactive way. Learning the RxJava concepts and operators takes some time but it provides many benefits for managing asynchronous code in a declarative way.
The document provides an overview of RxJava and its advantages over traditional Java streams and callbacks. It discusses key RxJava concepts like Observables, Observers, and Subscriptions. It demonstrates how to create Observables, subscribe to them, and compose operations like filter, map, and zip. It shows how to leverage schedulers to control threading. The document also provides examples of using RxJava with HTTP requests and the Twitter API to asynchronously retrieve user profiles and tweets. It highlights scenarios where RxJava is useful, like handling asynchronous operations, and discusses some pitfalls like its learning curve and need to understand backpressure.
Cassandra Summit EU 2014 Lightning talk - Paging (no animation)Christopher Batey
This document discusses streaming and paging data from Apache Cassandra using observables. It introduces the speaker as an evangelist for Cassandra and describes how server-side paging and combining result sets with observables allows efficient streaming of large result sets without blocking or out of memory errors. Code examples are provided showing how to create an observable from a Cassandra query result set and subscribe to stream result rows.
This document describes the implementation of a simple REST server in Qt using reflection. It discusses how the Qt meta-object compiler (moc) is used, the abstract and concrete server classes, building the route tree using reflection, handling new connections in worker threads, calling methods based on the request, and using reflection for testing. The abstract server class inherits from QTcpServer and uses slots decorated with tags to implement routes. Worker threads handle individual connections and parse requests to call the appropriate method. Reflection is leveraged throughout to build routes and dispatch requests without explicit registration or mapping.
JS Fest 2019. Thomas Watson. Post-Mortem Debugging in Node.jsJSFestUA
Post-Mortem debugging is a really powerful technique that allows you, through the use of several tools, to take a memory dump when an issue occurs in your application and later analyze it offline.
The talk will primarily focus on llnode and how you can use this tool to better understand why a Node.js process is behaving odd or is crashing.
Unit Testing RxJS streams using jasmine-marbles. The demo shows how we can create a Web Component that uses NGRX/store + NGRX/effects like workflow and how we test our effect streams
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)Valerii Kravchuk
My slides for (canceled due to personal issues) talk for FOSDEM 2018 MySQL Devroom. I planned to discuss the history of ALTER TABLE speedup and optimization in MySQL, explain the implementation of instant ADD COLUMN for InnoDB tables in MariaDB 10.3 and compare performance of recent versions of MariaDB 10.2, 10.3, Percona Server 5.7, MyRocks from MariaDB 10.2 and MySQL 8.0.4 while working on multiple step test case incolving ALTER TABLE ... ADD COLUMN.
A lof of links to related manuals, blog posts and resources are presented.
Valerii Kravchuk is a MySQL support engineer who provides tips on using gdb to troubleshoot MySQL problems. Gdb can be used to check stack traces, print variable values, set breakpoints, and call functions when analyzing core dumps or attached to a live mysqld process. The THD structure contains important runtime information like the current query string. Real-life examples demonstrate checking core files and attaching gdb to modify variables in a running server.
The document discusses debugging performance problems in MongoDB. It describes solutions tried such as denormalizing data, adding indexes, sharding, scaling hardware, and tagging shards. While performance improved with these solutions at times, slowness still occasionally occurred. The document advocates using monitoring tools like New Relic and Skylight to further analyze issues and find additional solutions.
MySQL Parallel Replication: inventory, use-case and limitationsJean-François Gagné
Booking.com uses MySQL parallel replication extensively with thousands of servers replicating. The presentation summarized MySQL and MariaDB parallel replication features including: 1) MySQL 5.6 uses schema-based parallel replication but transactions commit out of order. 2) MariaDB 10.0 introduced out-of-order parallel replication using write domains that can cause gaps. 3) MariaDB 10.1 includes five parallel modes including optimistic replication to reduce deadlocks during parallel execution. Long transactions and intermediate masters can limit parallelism.
Tracing and profiling my sql (percona live europe 2019) draft_1Valerii Kravchuk
The document discusses various tools that can be used for tracing and profiling MySQL, including Linux tools like strace, gdb, ftrace, bpftrace, perf, and dynamic probes. It focuses on perf as one of the best and easiest tools to use for tracing and profiling MySQL in production on Linux. Examples are provided of using perf to add probes to MySQL dynamically to capture SQL queries.
MySQL Parallel Replication (LOGICAL_CLOCK): all the 5.7 (and some of the 8.0)...Jean-François Gagné
Since 5.7.2, MySQL implements parallel replication in the same schema, also known as LOGICAL_CLOCK (DATABASE based parallel replication is also implemented in 5.6 but this is not covered in this talk). In early 5.7 versions, parallel replication was based on group commit (like MariaDB) and 5.7.6 changed that to intervals.
Intervals are more complicated but they are also more powerful. In this talk, I will explain in detail how they work and why intervals are better than group commit. I will also cover how to optimize parallel replication in MySQL 5.7 and what improvements are coming in MySQL 8.0. I will also explain why Group Replication is replicating faster than standard asynchronous replication.
Come to this talk to get all the details about MySQL 5.7 Parallel Replication.
Gdb can be used by MySQL DBAs as a last resort tool to troubleshoot issues. It allows inspecting variable values, setting variables, calling functions, and getting stack traces from a running or crashed mysqld process. The presentation provides examples of using gdb to study InnoDB locks, metadata locks, and real bugs. While gdb can help in some cases, ideally DBAs should use profiling tools, implement missing features, and follow best practices to avoid needing gdb.
Riding the Binlog: an in Deep Dissection of the Replication StreamJean-François Gagné
Binary Logs are the cornerstone of MySQL Replication, but is it fully understood ? To start apprehending this, we can think of the binary logs as a transport for a Stream of Transactions. Traveling from master to slave, sometimes via Intermediate Masters, this stream evolves: it can shrink by the application of filters, can grow by the addition of slave-local transactions, and two streams can merge by the usage of multi-source replication. After presenting the binary logs Stream Model, the different MySQL use-cases will be mapped to the model, which can serve as a validation of the model. After this validation, the model will be used to make prediction on new use-cases/features that could emerge in the future.
MySQL/MariaDB Parallel Replication: inventory, use-case and limitationsJean-François Gagné
- The document discusses various parallel replication technologies in MySQL/MariaDB including schema-based parallel replication in MySQL 5.6, group commit-based approaches in MariaDB 10.0 and MySQL 5.7, and optimistic parallel replication in MariaDB 10.1.
- It provides an overview of how each approach tags and dispatches transactions to worker threads on slaves and their limitations regarding transaction ordering and gaps.
- Examples from Booking.com show how parallel replication can scale to thousands of servers but also hit issues like long transactions blocking progress.
Cassandra provides row-level isolation where a transaction is atomic for a single query executed on one node. A transaction in Cassandra updates either all columns in a row or none of them. Complex multi-row or multi-query transactions are not supported. The implementation uses a copy-on-write approach utilizing a concurrent data structure called SnapTree to clone columns being updated, ensuring atomic and isolated updates at the row level for a single query.
Example of using Kotlin lang features for writing DSL for Spark-Cassandra connector. Comparison Kotlin lang DSL features with similar features in others JVM languages (Scala, Groovy).
The document discusses the evolution of vertically scaled design patterns used by an organization. It began with a monolithic approach using static configuration management. This worked initially but did not scale. It evolved to use dynamic task scheduling with Mesos and Marathon, treating services as microservices. This allows individual services to be scaled and load balanced with service discovery. A live demo is offered to illustrate these patterns.
JavaFX 8 est disponible depuis mars 2014 et apporte son lot de nouveautés. Gradle est en version 2 depuis juillet 2014. Deux technologies plus que prometteuses: JavaFX donne un coup de jeune au développement d’applications desktop en Java en apportant un navigateur web intégré, le support des WebSockets, de la 3D, et bien d’autres. Gradle est l’outil de d’automatisation de build à la mode, apportant de superbes possibilités par rapport rapport à maven, outil vieillissant, grâce à l’engouement de la communauté vis à vis de cet outil mais aussi par le fait de la technologie utilisée en son sein: groovy. Venez découvrir comment il est possible de réaliser rapidement une application à la mode en JavaFX avec un outil à la mode également. Bref venez à une session trendy.
RxJava is a library for composing asynchronous and event-based programs using observable sequences. It allows avoiding callback hell and makes it easy to compose and transform asynchronous processes through combining, filtering, etc. RxJava uses Observables to represent asynchronous data streams and allows subscribing to those streams using Observers. It supports asynchronous operations through Schedulers and can integrate with libraries like Retrofit to handle asynchronous network requests in a reactive way. Learning the RxJava concepts and operators takes some time but it provides many benefits for managing asynchronous code in a declarative way.
The document provides an overview of RxJava and its advantages over traditional Java streams and callbacks. It discusses key RxJava concepts like Observables, Observers, and Subscriptions. It demonstrates how to create Observables, subscribe to them, and compose operations like filter, map, and zip. It shows how to leverage schedulers to control threading. The document also provides examples of using RxJava with HTTP requests and the Twitter API to asynchronously retrieve user profiles and tweets. It highlights scenarios where RxJava is useful, like handling asynchronous operations, and discusses some pitfalls like its learning curve and need to understand backpressure.
A practical guide to using RxJava on Android. Tips for improving your app architecture with reactive programming. What are the advantages and disadvantages of using RxJava over standard architecture? And how to connect with other popular Android libraries?
Presented at Droidcon Greece 2016.
Using Apache Spark to Solve Sessionization Problem in Batch and StreamingDatabricks
This document discusses sessionization techniques using Apache Spark batch and streaming processing. It describes using Spark to join previous session data with new log data to generate user sessions in batch mode. For streaming, it covers using watermarks and stateful processing to continuously generate sessions from streaming data. Key aspects covered include checkpointing to provide fault tolerance, configuring the state store, and techniques for reprocessing data in batch and streaming contexts.
Reactive Programming Patterns with RxSwiftFlorent Pillet
In this introduction to reactive programming and RxSwift you'll learn how common problems are solved in a reactive way to improve your architecture and write more reliable code.
The document discusses using R to analyze and visualize Oracle database metrics and statistics in real time. It provides examples of R code to connect to an Oracle database and retrieve system statistics and wait event data. The code then computes changes from the previous snapshot and graphs metrics over time, including system statistics by interval, wait times and events, and wait class distributions. It also describes splitting the screen into multiple graphs to show various views of the real-time data. The goal is to build interactive dashboards to monitor database performance using R.
Kick your database_to_the_curb_reston_08_27_19confluent
This document discusses using Kafka Streams interactive queries to enable powerful microservices by making stream processing results queryable in real-time. It provides an overview of Kafka Streams, describes how to embed an interactive query server to expose stateful stream processing results via HTTP endpoints, and demonstrates how to securely query processing state from client applications.
Hybrid development using Qt WebKit allows developers to embed a fully functional web browser inside a Qt application. Qt WebKit provides a bridge between Qt and the WebKit rendering engine, allowing developers to load web content, manipulate web pages, and integrate their applications with web services. Developers can inject QObjects into web pages to expose slots, properties, and signals to JavaScript, and can also call JavaScript functions and extract their return values from the C++ side.
Building Scalable Stateless Applications with RxJavaRick Warren
RxJava is a lightweight open-source library, originally from Netflix, that makes it easy to compose asynchronous data sources and operations. This presentation is a high-level intro to this library and how it can fit into your application.
This document discusses Samza, an open source stream processing framework. It provides an overview of Samza's core capabilities including its streaming APIs, flexible deployment options, and convergence of stream and batch processing. The key points are:
- Samza allows writing streaming applications using either low-level or new high-level APIs, with the latter supporting pipeline composition and built-in transformations.
- Samza applications can be deployed either embedded or in a cluster via YARN, and a new Zookeeper-based coordination model enables flexible deployments.
- Samza aims to unify stream and batch processing by allowing streaming applications to read from and write to batch systems like HDFS, without code changes.
Probably everyone has heard about reactive programming but not everyone tried to use it in real projects.
This presentation is about reactive approach basics and about own experience of integrating this approach into real Android project step by step.
The document discusses using Redux middleware like redux-thunk and redux-saga to handle asynchronous actions and side effects in Redux applications. Redux-thunk allows returning functions from action creators to support asynchronous logic. Redux-saga uses generator functions to declaratively define asynchronous flows using effects. It provides capabilities like parallelism, cancellation, and composition that are more complex with redux-thunk. Both libraries make it easier to handle asynchronous logic while avoiding complex race conditions and keeping side effects separate from the reducer logic.
Scaling with Scala: refactoring a back-end service into the mobile ageDragos Manolescu
Services built with 20th century programming languages are reaching their scalability limits. The global interpreter lock and the lack of an asynchronous programming model are becoming barriers to accommodating the numbers of users typical of today's mobile as well as web worlds. In this talk I cover the transition of a back-end service to Scala and the changes associated with it. The improved performance and cost savings of the Scala implementation free up resources that could be better leveraged elsewhere.
This document introduces Reactive Extensions (RxJS) for JavaScript, which allows programming with asynchronous data streams. It discusses key RxJS concepts like Observables that emit event streams and Observers that subscribe to those streams. It provides examples of creating Observables from events, making Ajax requests, retrying failures, combining streams, and using various operators to transform and filter streams. The goal is to help developers learn how to use RxJS to compose asynchronous actions and events in a functional, reactive style.
Bulding a reactive game engine with Spring 5 & CouchbaseAlex Derkach
A social game, by it’s nature can spread very quickly to a large user audience. Since a game is typically interactive, the speed of retrieving information needed for the user’s interactions with the system is critical. Applications which exclusively rely on synchronous data access, very often hit a scalability wall, when things get slow and their thread pools are exhausted. New paradigms like reactive programming alleviate this and provide extensive tool sets to deal with the ever growing demands of web applications.
This talk:
– Describes why Couchbase is the most appropriate solution for many video game and gaming use cases.
– Shows how to build scalable and reactive applications by making use of the Couchbase Java SDK 2.x, RxJava library and Spring Framework 5.
The document discusses how to use RxJS (Reactive Extensions library for JavaScript) to treat events like arrays by leveraging Observable types and operators. It explains key differences between Observables and Promises/Arrays, how Observables are lazy and cancelable unlike Promises. Various RxJS operators like map, filter, interval and fromEvent are demonstrated for transforming and composing Observable streams. The document aims to illustrate how RxJS enables treating events as collections that can be processed asynchronously over time.
You may all know that JSON is a subset of JavaScript, but… Did you know that HTML5 implements NoSQL databases? Did you know that JavaScript was recommended for REST by HTTP co-creator Roy T. Fielding himself? Did you know that map & reduce are part of the native JavaScript API? Did you know that most NoSQL solutions integrate a JavaScript engine? CouchDB, MongoDB, WakandaDB, ArangoDB, OrientDB, Riak…. And when they don’t, they have a shell client which does. The story of NoSQL and JavaScript goes beyond your expectations and opens more opportunities than you might imagine… What better match could you find than a flexible and dynamic language for schemaless databases? Isn’t an event-driven language what you’ve been waiting for to manage consistency? When NoSQL doesn’t come to JavaScript, JavaScript comes to NoSQL. And does it very well.
Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"Provectus
The document discusses PhantomJS, an open-source headless WebKit browser that allows for automating web page interaction and rendering using JavaScript. It can be used to capture screenshots, render PDFs, and test pages without needing a browser UI. The document provides examples of using PhantomJS to log messages, capture screenshots, and extract data from web pages. It also discusses how PhantomJS integrates with frameworks like Capybara to enable automated testing of web applications.
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
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.
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.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
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.
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.
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.
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
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
62. Hard to code complicated
context-dependent workflow
■ Loop vs flatMap
■ State should be incorporated into the stream!
62
63. Try not to mutate objects
inside Rx streams
■ Rx stream is a concurrent system
■ In concurrent systems mutation is evil
■ Zoomdata had such issues
63
65. ■ Pull push hard & risky
■ Pull push mutability disaster
Think twice before providing
pull API over Rx stream
■ Push pull ok
65
66. It is better to control
execution threads
on your own
■ Doing CPU in IO thread
■ Doing IO in CPU thread
66Image credits: Haiku Deck
67. Care about concurrency
■ No ThreadLocal tricks!
■ flatMap/zip/merge may move execution into
unexpected (for you) thread
■ Immutability is the only reasonable way to go
67
71. ■ WebSocket to Rx stream mapping: 3 files
■ ZD query processing is almost entirely RxJava code
■ Most algorithms live in 10 files (~1000 loc)
□ playing, sharpening, progress, timeline, push/pull data
strategies, main query, timeline, and much more
■ RxJava is complicated, but very powerful
■ Zoomdata benefits a lot from RxJava usage!
Is RxJava good enough for ZD?
71
72. ■ Java 9 & Spring 5 will spread reactive programming
■ We expect big shift towards Project Reactor
■ We will have more reactive and proactive software!
□ Zoomdata is already proactive
Some thoughts about Rx future
72