Apresentado no TDC Florianópolis - 2016.
Palestra voltada aos que ouviram falar sobre RxJava e querem aprender sobre a biblioteca que todos os programadores legais estão comentando.
Dagger is a dependency injection framework that allows injecting collaborators into objects without requiring manual passing of dependencies. RxJava implements reactive programming, allowing observable streams to be manipulated through operators like map and filter. Retrofit makes REST API calls simply by defining an interface and allows results to be easily converted to Java objects. Together these libraries help create testable Android applications by decoupling classes and managing dependencies and asynchronous processes in a declarative way.
Tech Talk #4 : RxJava and Using RxJava in MVP - Dương Văn TớiNexus FrontierTech
RxJava is a library for composing asynchronous and event-based programs using observable sequences. It allows processing streams of data and events asynchronously without blocking threads. Some key features include:
- Creating Observables from various sources like arrays, callbacks, or network requests
- Combining multiple Observables using operators like map, filter, concatMap
- Scheduling Observables to run on different threads for IO, computation, or the main thread
- Subscribing to Observables using Subscriber, Observer, or other callback methods
When using RxJava with MVP, Observables can be used to asynchronously load and transform data from the model to be presented by the view. Operators allow processing streams of data before
The Ring programming language version 1.5.3 book - Part 89 of 184Mahmoud Samir Fayed
The document describes embedding Ring code in Ring programs without sharing state. It allows quick integration of Ring programs and applications together without conflicts by executing Ring code in isolated environments. Functions like ring_state_init(), ring_state_runcode(), and ring_state_delete() are used to initialize a state, run code in it, and delete it. This prevents variables from one state being accessible from another. Serial execution of Ring applications is also demonstrated using ring_state_main().
OSGi World Congress Workshop Exercise - P Kriensmfrancis
This document describes an OSGi bundle that provides service discovery and registration. It includes classes for an Activator, HttpTracker, Distributor, and Link. The Activator manages logging and registering services. The HttpTracker registers an HTTP resource. The Distributor multicasts discovery messages and processes incoming links. The Link class represents a discovered service.
JVM Mechanics: Understanding the JIT's TricksDoug Hawkins
In this talk, we'll walkthrough how the JIT optimizes a piece Java code step-by-step. In doing so, you'll learn some of the amazing feats of optimization that JVMs can perform, but also some surprisingly simple things that prevent your code from running fast.
This talk is a look into some of the surprising performance cases in Java -- with the goal of illustrating a few simple truths about the nature of compilers.
This document summarizes an introductory presentation on RxJava. It begins with definitions of reactive programming and RxJava, noting that RxJava allows for composing asynchronous and event-based programs using observable sequences. It then discusses some common problems with concurrency in Android and how RxJava provides solutions through concepts like Observables, operators, and schedulers. It provides examples of using RxJava for common tasks like network requests and timers. It concludes with some common mistakes to avoid like improper use of schedulers and failing to unsubscribe.
A presentation given to Overstock.com IT at annual conference. Twitter @TECHknO 2015. Goal of the presentation is to provide a good introduction to the reactive programming model with RxJava.
program list:
WAP program to show constructor overloading using static member.
WAP to implement multilevel inheritance and method overriding.
WAP to implement interface class and show use of package.
WAP to implement multilevel exception handling and create your own exception.
WAP to implement 3 threads such that 1st sleeps for 200ms, 2nd for 400ms and 3rd for 600ms.
WAP to create applet of moving banner.
WAP to make a simple calculator.
Build a client server chat application.
The Ring programming language version 1.8 book - Part 88 of 202Mahmoud Samir Fayed
This document discusses embedding Ring code within Ring programs and applications using the Ring virtual machine. It provides functions for executing Ring code in isolated environments to avoid conflicts between different code sections. Examples show initializing Ring states, running code within a state, passing variables between states, and executing Ring files and programs from within Ring applications. The ability to embed Ring programs within each other in a controlled way allows for modular and extensible Ring applications.
The document discusses topics related to just-in-time (JIT) compilation in the Java Virtual Machine (JVM). It explains that the JIT compiler is triggered when methods are invoked many times based on invocation and back-edge counters, compiling frequently used code to machine code for improved performance. It also discusses why ahead-of-time compilation is not well-suited for Java due to its dynamic nature, and what can cause compiled code to be deoptimized, such as class initialization failures, null pointer exceptions, and unstable control flow.
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 GDG DevFest The Netherlands 2016.
OSMC 2012 | Neues in Nagios 4.0 by Andreas EricssonNETWAYS
The document provides an overview of improvements and new features in Nagios Core 4. Key points include:
- Bottlenecks in Nagios Core 3 were analyzed and improvements were made to configuration parsing, event queue insertion, macro resolution, and check processing. These improved performance and scalability.
- A new query handler and NERD (Nagios Event Radio Dispatcher) were added to provide real-time data to external addons.
- Support for service parents and new check result variables were added. Deprecation notices were provided for removed or changed features.
The Ring programming language version 1.5.4 book - Part 79 of 185Mahmoud Samir Fayed
The document discusses the Trace library in Ring for debugging programs. It provides examples of using the Trace library to trace all events, control flow between functions, handle errors, use an interactive debugger, execute line by line, set breakpoints, disable breakpoints, and use the interactive debugger at breakpoints. The Trace library allows tracing programs, passing errors, debugging interactively by setting and handling breakpoints.
The document describes unit tests for a PublicHomePageRedirector class that redirects requests for a course sites application. There are two test scenarios: 1) a request missing the "www" subdomain, and 2) a request from the "coursesites.blackboard.com" domain. Both scenarios create mock request and response objects, pass them to the redirector class, and assert that the response is redirected to the expected "index.html" page. The tests are run from the command line using JUnit through an Ant build script.
Carol McDonald gave a presentation on the new features introduced in Java SE 5.0, including generics, autoboxing/unboxing, enhanced for loops, type-safe enumerations, varargs, and annotations. Generics allow type-safety when working with collections by specifying the collection element type. Autoboxing automatically converts between primitives and their corresponding wrapper types. The enhanced for loop simplifies iteration over collections. Type-safe enumerations provide an improved way of defining enum types. Varargs and annotations were also introduced to simplify coding patterns.
The document discusses mutating and testing tests. It introduces the concept of mutation analysis, where tests are evaluated by seeding real bugs into the code and checking if the tests detect these bugs. The document provides an example of applying mutation analysis to a factorial function code and test cases. It finds bugs in the test cases like weak oracles and missing test inputs. The document also compares the Pit mutation testing tool with the Descartes tool, finding Descartes generates fewer but coarser-grained mutants, making it more scalable for large projects.
The document discusses iPhone app development using Objective-C. It covers the basics of getting started, including what is needed to begin like a Mac, Xcode, and an iPhone. It then explains key Objective-C concepts like classes, methods, and memory management using retain counts. The document also discusses unit testing iOS apps using OCUnit and some Xcode tips. It emphasizes testing first and concludes by noting the market demands more apps and there is room for improvement.
This document provides an introduction to RxJS, a library for reactive programming using Observables. It discusses some of the key concepts in RxJS including Observables, operators, and recipes. Observables can be created from events, promises, arrays and other sources. Operators allow chaining transformations on Observables like map, filter, switchMap. RxJS is useful for complex asynchronous flows and is easier to test than promises using marble testing. Overall, RxJS enables rich composition of asynchronous code and cancellation of Observables.
The document describes the OCP Kata process for practicing object-oriented design principles. It involves:
1. Writing a failing test case
2. Creating a factory to pass the test with minimal code
3. Writing another failing test and refactoring to pass it
4. Repeating steps 2-3, refactoring each time to keep tests failing until the new case is implemented
An example FizzBuzz kata is provided, starting with a test for single numbers then refactoring to add logic for multiples of 3 (Fizz) through repeated tests and refactoring. The goal is to practice separation of concerns through object oriented patterns.
Spock Testing Framework - The Next GenerationBTI360
You may be asking, "Do we really need another testing framework?" In this presentation Spencer says "Yes!" and will share some reasons why the Spock testing framework is gaining in popularity compared to other testing frameworks.
This document contains the code for a program that evaluates mathematical expressions. It defines methods to:
- Read expressions from a file or user input and split them into operands and operators
- Calculate the results of valid expressions and store statistics like highest/lowest values
- Handle invalid expressions and output error messages
- Output the results of calculations and expression statistics after processing is complete
El documento habla sobre el diseño, la interacción de web y el diseño de integración. Define el diseño como un proceso mental previo para encontrar soluciones creativas. Explica que el diseño de interacción determina cómo los usuarios pueden interactuar con un sistema tecnológico y cómo este sistema responde. Además, menciona que el diseño de interacción es un campo interdisciplinario que define el comportamiento de los productos y sistemas con los que interactúa el usuario, aunque también se puede aplicar a otros tipos de productos y servicios.
O documento apresenta o currículo e experiência de um desenvolvedor de software, incluindo suas habilidades em programação funcional e protocolos/conceitos como Monoid, Functor e Monad. O autor também fornece referências adicionais sobre tópicos de programação funcional.
Build Tools are important. Really important. If you are an Android Developer, understanding Gradle and how to harness its power will increase your productivity and make your life easier in many possible ways.
This talk was presented at The Developer's Conference Floripa 2016, on the Android Track
Palestra apresentada no The Developer's Conference 2016 de Florianópolis, na trilha de UX Design. Palestra sobre a participação de desenvolvedores no processo de solução de software junto com designers
This talk is a look into some of the surprising performance cases in Java -- with the goal of illustrating a few simple truths about the nature of compilers.
This document summarizes an introductory presentation on RxJava. It begins with definitions of reactive programming and RxJava, noting that RxJava allows for composing asynchronous and event-based programs using observable sequences. It then discusses some common problems with concurrency in Android and how RxJava provides solutions through concepts like Observables, operators, and schedulers. It provides examples of using RxJava for common tasks like network requests and timers. It concludes with some common mistakes to avoid like improper use of schedulers and failing to unsubscribe.
A presentation given to Overstock.com IT at annual conference. Twitter @TECHknO 2015. Goal of the presentation is to provide a good introduction to the reactive programming model with RxJava.
program list:
WAP program to show constructor overloading using static member.
WAP to implement multilevel inheritance and method overriding.
WAP to implement interface class and show use of package.
WAP to implement multilevel exception handling and create your own exception.
WAP to implement 3 threads such that 1st sleeps for 200ms, 2nd for 400ms and 3rd for 600ms.
WAP to create applet of moving banner.
WAP to make a simple calculator.
Build a client server chat application.
The Ring programming language version 1.8 book - Part 88 of 202Mahmoud Samir Fayed
This document discusses embedding Ring code within Ring programs and applications using the Ring virtual machine. It provides functions for executing Ring code in isolated environments to avoid conflicts between different code sections. Examples show initializing Ring states, running code within a state, passing variables between states, and executing Ring files and programs from within Ring applications. The ability to embed Ring programs within each other in a controlled way allows for modular and extensible Ring applications.
The document discusses topics related to just-in-time (JIT) compilation in the Java Virtual Machine (JVM). It explains that the JIT compiler is triggered when methods are invoked many times based on invocation and back-edge counters, compiling frequently used code to machine code for improved performance. It also discusses why ahead-of-time compilation is not well-suited for Java due to its dynamic nature, and what can cause compiled code to be deoptimized, such as class initialization failures, null pointer exceptions, and unstable control flow.
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 GDG DevFest The Netherlands 2016.
OSMC 2012 | Neues in Nagios 4.0 by Andreas EricssonNETWAYS
The document provides an overview of improvements and new features in Nagios Core 4. Key points include:
- Bottlenecks in Nagios Core 3 were analyzed and improvements were made to configuration parsing, event queue insertion, macro resolution, and check processing. These improved performance and scalability.
- A new query handler and NERD (Nagios Event Radio Dispatcher) were added to provide real-time data to external addons.
- Support for service parents and new check result variables were added. Deprecation notices were provided for removed or changed features.
The Ring programming language version 1.5.4 book - Part 79 of 185Mahmoud Samir Fayed
The document discusses the Trace library in Ring for debugging programs. It provides examples of using the Trace library to trace all events, control flow between functions, handle errors, use an interactive debugger, execute line by line, set breakpoints, disable breakpoints, and use the interactive debugger at breakpoints. The Trace library allows tracing programs, passing errors, debugging interactively by setting and handling breakpoints.
The document describes unit tests for a PublicHomePageRedirector class that redirects requests for a course sites application. There are two test scenarios: 1) a request missing the "www" subdomain, and 2) a request from the "coursesites.blackboard.com" domain. Both scenarios create mock request and response objects, pass them to the redirector class, and assert that the response is redirected to the expected "index.html" page. The tests are run from the command line using JUnit through an Ant build script.
Carol McDonald gave a presentation on the new features introduced in Java SE 5.0, including generics, autoboxing/unboxing, enhanced for loops, type-safe enumerations, varargs, and annotations. Generics allow type-safety when working with collections by specifying the collection element type. Autoboxing automatically converts between primitives and their corresponding wrapper types. The enhanced for loop simplifies iteration over collections. Type-safe enumerations provide an improved way of defining enum types. Varargs and annotations were also introduced to simplify coding patterns.
The document discusses mutating and testing tests. It introduces the concept of mutation analysis, where tests are evaluated by seeding real bugs into the code and checking if the tests detect these bugs. The document provides an example of applying mutation analysis to a factorial function code and test cases. It finds bugs in the test cases like weak oracles and missing test inputs. The document also compares the Pit mutation testing tool with the Descartes tool, finding Descartes generates fewer but coarser-grained mutants, making it more scalable for large projects.
The document discusses iPhone app development using Objective-C. It covers the basics of getting started, including what is needed to begin like a Mac, Xcode, and an iPhone. It then explains key Objective-C concepts like classes, methods, and memory management using retain counts. The document also discusses unit testing iOS apps using OCUnit and some Xcode tips. It emphasizes testing first and concludes by noting the market demands more apps and there is room for improvement.
This document provides an introduction to RxJS, a library for reactive programming using Observables. It discusses some of the key concepts in RxJS including Observables, operators, and recipes. Observables can be created from events, promises, arrays and other sources. Operators allow chaining transformations on Observables like map, filter, switchMap. RxJS is useful for complex asynchronous flows and is easier to test than promises using marble testing. Overall, RxJS enables rich composition of asynchronous code and cancellation of Observables.
The document describes the OCP Kata process for practicing object-oriented design principles. It involves:
1. Writing a failing test case
2. Creating a factory to pass the test with minimal code
3. Writing another failing test and refactoring to pass it
4. Repeating steps 2-3, refactoring each time to keep tests failing until the new case is implemented
An example FizzBuzz kata is provided, starting with a test for single numbers then refactoring to add logic for multiples of 3 (Fizz) through repeated tests and refactoring. The goal is to practice separation of concerns through object oriented patterns.
Spock Testing Framework - The Next GenerationBTI360
You may be asking, "Do we really need another testing framework?" In this presentation Spencer says "Yes!" and will share some reasons why the Spock testing framework is gaining in popularity compared to other testing frameworks.
This document contains the code for a program that evaluates mathematical expressions. It defines methods to:
- Read expressions from a file or user input and split them into operands and operators
- Calculate the results of valid expressions and store statistics like highest/lowest values
- Handle invalid expressions and output error messages
- Output the results of calculations and expression statistics after processing is complete
El documento habla sobre el diseño, la interacción de web y el diseño de integración. Define el diseño como un proceso mental previo para encontrar soluciones creativas. Explica que el diseño de interacción determina cómo los usuarios pueden interactuar con un sistema tecnológico y cómo este sistema responde. Además, menciona que el diseño de interacción es un campo interdisciplinario que define el comportamiento de los productos y sistemas con los que interactúa el usuario, aunque también se puede aplicar a otros tipos de productos y servicios.
O documento apresenta o currículo e experiência de um desenvolvedor de software, incluindo suas habilidades em programação funcional e protocolos/conceitos como Monoid, Functor e Monad. O autor também fornece referências adicionais sobre tópicos de programação funcional.
Build Tools are important. Really important. If you are an Android Developer, understanding Gradle and how to harness its power will increase your productivity and make your life easier in many possible ways.
This talk was presented at The Developer's Conference Floripa 2016, on the Android Track
Palestra apresentada no The Developer's Conference 2016 de Florianópolis, na trilha de UX Design. Palestra sobre a participação de desenvolvedores no processo de solução de software junto com designers
This document discusses creating an Android app using Kotlin. It begins by explaining some of the limitations of using Java for Android development and how Kotlin addresses these issues. It then provides examples of Kotlin code showing functions, variables, parameter defaults, string templates, collections, lambdas, equality checks, destructuring, extension functions, null safety, smart casts, classes, interfaces, data classes, and delegated properties. It concludes by outlining steps for creating an Android app in Kotlin, including configuring the project, converting Java code to Kotlin, and initializing basic app components.
Presentation that try to explain how Node.js works, how can it deal with millions of concurrent users using just a single thread. Also there are some slides to talk about which problems it helps to solve.
O Android NDK é a ferramenta que permite a utilização de código nativo (C/C++) em sua aplicação Android. Nesta apresentação conheça alguns usos interessantes do NDK, as vantagens e desvantagens de utilizá-lo, além de como começar a usar esta ferramenta com o Android Studio.
O documento discute o mercado de aplicativos iOS no Brasil. O palestrante fornece estimativas de custos para desenvolver aplicativos, salários típicos para desenvolvedores iOS e conselhos para quem está começando ou procurando emprego na área, como participar de comunidades e manter um portfólio no GitHub.
Dev e designer em projetos de UX, vai ter briga?!Diego Motta
O documento discute três pontos que geram atrito entre desenvolvedores e designers em projetos de UX: comunicação, coerência e fidelidade. Sugere que a equipe compartilhe informações publicamente, envolva todos desde o início do projeto e foque nos objetivos do cliente nas entregas finais.
TDC Floripa - Trilha iOS - Debate sobre o futuro da plataformaDouglas Fischer
Slides utilizados no debate sobre o futuro das plataformas da Apple e suas ferramentas de desenvolvimento, realizado no TDC Florianópolis na quinta feira, dia 12 de Maio de 2016.
Gerenciamento de Memória em Swift - The Weak, the Strong, and the Unowned.Txai Wieser
The document discusses Swift memory management and garbage collection. It covers automatic reference counting (ARC) which is Swift's default memory management system. ARC uses strong, weak, and unowned references to determine what objects to keep in memory. Reference counting tracks the number of references to an object and deallocates it from memory when the count reaches zero. The document also discusses issues like reference cycles, closures capturing values, and debugging memory management problems.
O documento discute estratégias de arquitetura em times ágeis, comparando abordagens como arquitetura emergente, onde apenas o necessário é definido inicialmente, e design completo antecipado. Fatores que influenciam a escolha incluem instabilidade nos requisitos, risco técnico, necessidade de valor rápido e experiência da equipe. Uma abordagem balanceada que mitigue riscos e permita adaptação é recomendada.
O documento discute métodos de design para facilitar dinâmicas em grupos, como diagramas de afinidades para agrupar problemas e criar soluções, e o método "Problema Solução 3x" para analisar problemas, soluções e possíveis problemas das soluções. É mencionado o uso de vários outros métodos visuais como storyboards, mapas mentais e personas para mapear jornadas do usuário.
O documento apresenta uma introdução sobre bots e a API do Telegram para criar bots, demonstrando como criar e configurar um bot básico, adicionar mensagens, teclados e comandos personalizados utilizando Node.js. Apresenta também integração com o IBM Watson para análise de sentimento e tradução de idiomas.
O documento resume as lições aprendidas ao migrar um aplicativo móvel do Parse para o Azure. Ele descreve a escolha do Azure como plataforma de hospedagem, os passos para migrar os dados do banco MongoDB e reescrever o código backend, e observações sobre os serviços DocumentDB e Web Apps do Azure.
O documento apresenta uma trilha sobre NoSQL com foco no Neo4j. Apresenta os palestrantes e seus backgrounds, e discute tópicos como a migração de dados do SQL Server para o Neo4j, modelagem e importação de dados, aplicações reais com Neo4j e desafios do banco de dados.
O documento discute como otimizar aplicações Node para o motor V8. Ele explica como o V8 compila código JavaScript para código de máquina nativo e como o Crankshaft e o TurboFan otimizam esse processo. O documento também lista 12 técnicas que podem prejudicar a otimização, como atribuições em argumentos, vazamentos do arguments e uso de for-in em objetos.
The document discusses continuous delivery of Java applications using open source tools. It describes using GoCD as the continuous delivery tool to model pipelines for building, testing, and deploying applications. Pipelines are first-class citizens in GoCD, avoiding problems with other tools where CD support comes from plugins. The document also provides references for blue-green deployment and tools like Packer, Terraform, Consul, Ansible, Registrator, Pitest, Rest Assured and SparkJava.
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.
Understanding reactive programming with microsoft reactive extensionsOleksandr Zhevzhyk
We all want our applications to be responsible, reliable and testable. But event-driven paradigm sometimes could lead us to obscured or, even worse, messy code. Let’s look into the world, where generated data, background tasks and events are stuck together as asynchronous data streams to achieve a better result.
Workshop slides from the Alt.Net Seattle 2011 workshop. Presented by Wes Dyer and Ryan Riley. Get the slides and the workshop code at http://rxworkshop.codeplex.com/
Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using Observable sequences. RxJava implements Rx for the Java VM. Key advantages include simplifying async operations, surfacing errors sooner, and reducing state bugs. The API has a large surface area, so the learning curve is steep. RxJava 2 is recommended over 1 due to better performance, lower memory usage, and other improvements. Observables push data to Observers via onNext, onError, onCompleted calls. Common operators like map, flatMap, filter transform and combine Observable streams. Multithreading uses Schedulers. Unit testing uses TestSubscriber to make assertions.
Intro to RxJava/RxAndroid - GDG Munich AndroidEgor Andreevich
This document introduces RxJava and RxAndroid. It explains that RxJava allows for composing asynchronous and event-based programs using observable sequences. It covers how to create Observables, subscribe to them, use operators to transform data, and handle threading. It also discusses how RxJava is useful for Android development by making asynchronous code easier to write, test, and handle threading, with libraries like RxAndroid, RxBinding, and RxLifecycle to integrate with Android components and lifecycles.
4Developers 2015: Programowanie synchroniczne i asynchroniczne - dwa światy k...PROIDEA
This document discusses asynchronous and synchronous programming in Java. It covers several key aspects:
1. Java supports both multi-threading for synchronous programming as well as asynchronous programming using non-blocking I/O and libraries like RxJava.
2. Asynchronous programming can be difficult due to issues like complex error handling, lack of readability, and difficulty debugging.
3. Many open-source libraries have been created to help with asynchronous programming using approaches like futures, callbacks, and promises.
4. Reactive programming libraries like RxJava, Reactor, and Vert.x use approaches like asynchronous streams to simplify asynchronous code.
This document provides an introduction to reactive programming and RxJS. It begins by explaining the benefits of the reactive approach for asynchronous and event-driven code. It then contrasts reactive and functional programming, noting that reactive programming deals with asynchronous data streams. The document introduces RxJS and how it handles promises and observables. It defines observables and operators. Examples are provided to demonstrate reactive concepts. Resources for further learning are included at the end.
The document discusses reactive programming and how it can be used on Android. It explains that reactive programming uses observable sequences and asynchronous data flows. It introduces RxJava as a library for reactive programming that uses Observables to compose flows of asynchronous data. It provides examples of how RxJava can be used on Android to perform background tasks, handle errors and activity lifecycles, load images asynchronously, and create and transform Observables.
Video can be found here: https://www.youtube.com/watch?v=qOST2eCgo2I
Rx helps us solve many complex problems, such as combining different streams and reacting to events that involve timing aspects.
However, solving those problems with code is not really "done" unless you can validate and assure your results.
In this session you'll learn the Rx.NET testing utilities and patterns that makes testing Rx code not only easy but also a lot of fun
The document introduces reactive programming and RxJava. It defines reactive programming as working with asynchronous data streams using operators to combine, filter, and transform streams. It then discusses RxJava, a library that enables reactive programming in Java. It covers key reactive components like Observables, Operators, Schedulers, and Subjects. It provides examples of how to use various operators to transform, filter, combine streams and handle errors and backpressure. In conclusion, it discusses pros and cons of using reactive programming with RxJava.
The document introduces RxJava and how it can be used in Android applications, describing key concepts like Observables, Observers, Operators, and Subjects that allow asynchronous and event-based code to be written in a reactive style. It provides examples of how RxJava can be used to fetch toilet data from an API and handle the asynchronous response more declaratively compared to using callbacks. The document also discusses how subjects can act as both observables that emit events and observers that receive events, making them useful for building event buses between activities.
Reactive programming is a modern and trending technology which allows development of background task easy and managable. This presentation will specically explain use of Rx plug-in in android and ios applications
RxJava & RxSwift
http://reactivex.io/
Using RxJava on Android platforms provides benefits like making asynchronous code more manageable, but requires changing how developers think about programming. Key concepts include Observables that emit items, Observer subscribers, and combining/transforming data streams. For Android, RxJava and RxAndroid libraries are used, with RxAndroid mainly providing threading helpers. Effective practices include proper subscription management and error handling to avoid issues from asynchronous execution and component lifecycles.
The document discusses Reactive programming concepts using RxJava. It defines key RxJava terms like Observable and Observer. An Observable is the source of events, while an Observer handles incoming events. It also covers how to create Observables from sources like arrays, intervals, and network calls. Operators like filter, map, take, and defaultIfEmpty are demonstrated for transforming Observables.
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.
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.
Struts 2 is an open source MVC framework based on Java EE standards. It uses a request-response pipeline where interceptors pre-process and post-process requests. The core components are interceptors, actions, and results. Interceptors provide functionality like validation while actions contain application logic and results define the response. Values are stored and accessed from a value stack using OGNL.
RxJava is an open source library for reactive programming that allows processing asynchronous streams of data. It provides operators to filter, transform, and combine Observables in a lazy manner. Observables represent asynchronous data streams that can be subscribed to receive push-based event notifications. Services return Observables to make their APIs asynchronous and reactive.
A presentation on Reactive Programming with RxJava that focuses on how to create observables, principles of multi threading in RxJava and error handling. This slides has a code playground available on github: https://github.com/mayowa-egbewunmi/RxJavaTraining
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
TrsLabs - AI Agents for All - Chatbots to Multi-Agents SystemsTrs Labs
AI Adoption for Your Business
AI applications have evolved from chatbots
into sophisticated AI agents capable of
handling complex workflows. Multi-agent
systems are the next phase of evolution.
Slides for the session delivered at Devoxx UK 2025 - Londo.
Discover how to seamlessly integrate AI LLM models into your website using cutting-edge techniques like new client-side APIs and cloud services. Learn how to execute AI models in the front-end without incurring cloud fees by leveraging Chrome's Gemini Nano model using the window.ai inference API, or utilizing WebNN, WebGPU, and WebAssembly for open-source models.
This session dives into API integration, token management, secure prompting, and practical demos to get you started with AI on the web.
Unlock the power of AI on the web while having fun along the way!
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptxMSP360
Data loss can be devastating — especially when you discover it while trying to recover. All too often, it happens due to mistakes in your backup strategy. Whether you work for an MSP or within an organization, your company is susceptible to common backup mistakes that leave data vulnerable, productivity in question, and compliance at risk.
Join 4-time Microsoft MVP Nick Cavalancia as he breaks down the top five backup mistakes businesses and MSPs make—and, more importantly, explains how to prevent them.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
TrsLabs - Leverage the Power of UPI PaymentsTrs Labs
Revolutionize your Fintech growth with UPI Payments
"Riding the UPI strategy" refers to leveraging the Unified Payments Interface (UPI) to drive digital payments in India and beyond. This involves understanding UPI's features, benefits, and potential, and developing strategies to maximize its usage and impact. Essentially, it's about strategically utilizing UPI to promote digital payments, financial inclusion, and economic growth.
Canadian book publishing: Insights from the latest salary survey - Tech Forum...BookNet Canada
Join us for a presentation in partnership with the Association of Canadian Publishers (ACP) as they share results from the recently conducted Canadian Book Publishing Industry Salary Survey. This comprehensive survey provides key insights into average salaries across departments, roles, and demographic metrics. Members of ACP’s Diversity and Inclusion Committee will join us to unpack what the findings mean in the context of justice, equity, diversity, and inclusion in the industry.
Results of the 2024 Canadian Book Publishing Industry Salary Survey: https://publishers.ca/wp-content/uploads/2025/04/ACP_Salary_Survey_FINAL-2.pdf
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/canadian-book-publishing-insights-from-the-latest-salary-survey/
Presented by BookNet Canada and the Association of Canadian Publishers on May 1, 2025 with support from the Department of Canadian Heritage.
Web & Graphics Designing Training at Erginous Technologies in Rajpura offers practical, hands-on learning for students, graduates, and professionals aiming for a creative career. The 6-week and 6-month industrial training programs blend creativity with technical skills to prepare you for real-world opportunities in design.
The course covers Graphic Designing tools like Photoshop, Illustrator, and CorelDRAW, along with logo, banner, and branding design. In Web Designing, you’ll learn HTML5, CSS3, JavaScript basics, responsive design, Bootstrap, Figma, and Adobe XD.
Erginous emphasizes 100% practical training, live projects, portfolio building, expert guidance, certification, and placement support. Graduates can explore roles like Web Designer, Graphic Designer, UI/UX Designer, or Freelancer.
For more info, visit erginous.co.in , message us on Instagram at erginoustechnologies, or call directly at +91-89684-38190 . Start your journey toward a creative and successful design career today!
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Markus Eisele
We keep hearing that “integration” is old news, with modern architectures and platforms promising frictionless connectivity. So, is enterprise integration really dead? Not exactly! In this session, we’ll talk about how AI-infused applications and tool-calling agents are redefining the concept of integration, especially when combined with the power of Apache Camel.
We will discuss the the role of enterprise integration in an era where Large Language Models (LLMs) and agent-driven automation can interpret business needs, handle routing, and invoke Camel endpoints with minimal developer intervention. You will see how these AI-enabled systems help weave business data, applications, and services together giving us flexibility and freeing us from hardcoding boilerplate of integration flows.
You’ll walk away with:
An updated perspective on the future of “integration” in a world driven by AI, LLMs, and intelligent agents.
Real-world examples of how tool-calling functionality can transform Camel routes into dynamic, adaptive workflows.
Code examples how to merge AI capabilities with Apache Camel to deliver flexible, event-driven architectures at scale.
Roadmap strategies for integrating LLM-powered agents into your enterprise, orchestrating services that previously demanded complex, rigid solutions.
Join us to see why rumours of integration’s relevancy have been greatly exaggerated—and see first hand how Camel, powered by AI, is quietly reinventing how we connect the enterprise.
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPathCommunity
Nous vous convions à une nouvelle séance de la communauté UiPath en Suisse romande.
Cette séance sera consacrée à un retour d'expérience de la part d'une organisation non gouvernementale basée à Genève. L'équipe en charge de la plateforme UiPath pour cette NGO nous présentera la variété des automatisations mis en oeuvre au fil des années : de la gestion des donations au support des équipes sur les terrains d'opération.
Au délà des cas d'usage, cette session sera aussi l'opportunité de découvrir comment cette organisation a déployé UiPath Automation Suite et Document Understanding.
Cette session a été diffusée en direct le 7 mai 2025 à 13h00 (CET).
Découvrez toutes nos sessions passées et à venir de la communauté UiPath à l’adresse suivante : https://community.uipath.com/geneva/.
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Raffi Khatchadourian
Efficiency is essential to support responsiveness w.r.t. ever-growing datasets, especially for Deep Learning (DL) systems. DL frameworks have traditionally embraced deferred execution-style DL code—supporting symbolic, graph-based Deep Neural Network (DNN) computation. While scalable, such development is error-prone, non-intuitive, and difficult to debug. Consequently, more natural, imperative DL frameworks encouraging eager execution have emerged but at the expense of run-time performance. Though hybrid approaches aim for the “best of both worlds,” using them effectively requires subtle considerations to make code amenable to safe, accurate, and efficient graph execution—avoiding performance bottlenecks and semantically inequivalent results. We discuss the engineering aspects of a refactoring tool that automatically determines when it is safe and potentially advantageous to migrate imperative DL code to graph execution and vice-versa.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
6. 66
Reactive Programming | O Que é?
• Pull x Push: Ao invés de pedir algo e esperar, o desenvolvedor
simplesmente pede por algo e é notificado quando o resultado estiver
disponível.
• Paradigma baseado no conceito de fluxo de dados assíncrono.
• Mais flexível. O Desenvolvedor ignora se os dados chegam de forma
síncrona ou assíncrona. O código simplesmente funciona.
• Fontes de dados podem ser combinadas e não aninhadas, afastando o
desenvolvedor do “callback hell”
23. 2323
Exemplo | AsyncTask -> Reactive
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
#7: Reactive Programming is a programming paradigm based on concept of an asynchronous data flow. Like a river: it can be observed, filtered, manipulated, or merged with a second flow to create a new flow for a new consumer.
nstead of asking for a result and waiting, the developer simply asks for result and gets notified when result is available.
Clearly more flexible, because from a logical and practical point of view, the developer can simply ignore if the data he needs comes sync or async, his code will still work.
#8: Functional reactive programming idea from late 90s inspired Erik Meijer. Rx is a reactive extension for .NET which provides an easy way to create async, event-driven programs using Observables sequences. Model a data stream using Observables, query and manage concurrency using Schedulers.
Instead of asking for a result and waiting, the developer simply asks for result and gets notified when result is available.
Clearly more flexible, because from a logical and practical point of view, the developer can simply ignore if the data he needs comes sync or async, his code will still work.
#11: Behavioral pattern and ir provides a way to bind objects in a one-to-many dependency.: when one object changes, all the objects depending on it are notified and updated automatically.
RxJava Observables can be composed instead of nested, saving the developer from the callback hell.
#13: Clear sequence of events that are going to happen. For every event the developer provides a reaction.
Three missing abilities:
The producer can now signal that there is no more data available: onCompleted() event.
The producer can now signal that an error occurred.