The Navigation Component in Jetpack allows developers to implement navigation between fragments and activities in a simplified and consistent manner. Key features include defining a navigation graph that visualizes available destinations and connections, using a NavController to navigate between destinations based on the graph, and passing arguments between destinations in a type-safe way. It also integrates with other Jetpack components like view models to handle configuration changes and live data observers.
The document summarizes the results of performance and scalability tests conducted by EANTC on Comverse's Data Management and Monetization Policy Manager. The tests showed that a single chassis of the DMM Policy Manager could support over 31.5 million simultaneously active subscribers and process more than 200,000 policy transactions per second. It also demonstrated support for various 3GPP interfaces including Gx, Rx, and Sy. Additional tests confirmed the linear scalability of the solution as more blades were added.
Brianna Abregano Final Professional Persona ProjectBriannaAbregano
The document is a profile for Brianna Abregano, a passionate R&B artist. It describes how music has been an important part of her life from a young age, helping her overcome obstacles. She has extensive experience in the music industry, including years of vocal and songwriting lessons, winning competitions, touring Hawaii, and appearing on TV. Her goals are to make a difference and get her music heard by her target audience of teenagers and young adults through hard work and never giving up until she reaches the top.
This short document promotes creating presentations using Haiku Deck, a tool for making slideshows. It encourages the reader to get started making their own Haiku Deck presentation and sharing it on SlideShare. In just one sentence, it pitches the idea of using Haiku Deck to easily create engaging slideshows.
This document provides a curriculum vitae for Tanweer Alam, an electrical technician with over 10 years of experience in electrical construction, commissioning, maintenance, and shutdown work for onshore and offshore equipment and facilities. It includes details on his educational background, qualifications, training, work experience with various companies in India, Saudi Arabia, Qatar, Russia, and Kazakhstan, as well as personal details.
The Navigation Component in Jetpack allows developers to implement navigation between fragments and activities in a simplified and consistent manner. Key features include defining a navigation graph that visualizes available destinations and connections, using a NavController to navigate between destinations based on the graph, and passing arguments between destinations in a type-safe way. It also integrates with other Jetpack components like view models to handle configuration changes and live data observers.
The document summarizes the results of performance and scalability tests conducted by EANTC on Comverse's Data Management and Monetization Policy Manager. The tests showed that a single chassis of the DMM Policy Manager could support over 31.5 million simultaneously active subscribers and process more than 200,000 policy transactions per second. It also demonstrated support for various 3GPP interfaces including Gx, Rx, and Sy. Additional tests confirmed the linear scalability of the solution as more blades were added.
Brianna Abregano Final Professional Persona ProjectBriannaAbregano
The document is a profile for Brianna Abregano, a passionate R&B artist. It describes how music has been an important part of her life from a young age, helping her overcome obstacles. She has extensive experience in the music industry, including years of vocal and songwriting lessons, winning competitions, touring Hawaii, and appearing on TV. Her goals are to make a difference and get her music heard by her target audience of teenagers and young adults through hard work and never giving up until she reaches the top.
This short document promotes creating presentations using Haiku Deck, a tool for making slideshows. It encourages the reader to get started making their own Haiku Deck presentation and sharing it on SlideShare. In just one sentence, it pitches the idea of using Haiku Deck to easily create engaging slideshows.
This document provides a curriculum vitae for Tanweer Alam, an electrical technician with over 10 years of experience in electrical construction, commissioning, maintenance, and shutdown work for onshore and offshore equipment and facilities. It includes details on his educational background, qualifications, training, work experience with various companies in India, Saudi Arabia, Qatar, Russia, and Kazakhstan, as well as personal details.
Una computadora personal, conocida como PC, es una máquina diseñada para ser usada por una sola persona y cumplir tareas como navegar por Internet, escribir textos u otros trabajos de oficina o educativos. Las computadoras personales pueden ser de escritorio, diseñadas para usarse en una ubicación fija, o portátiles, que son máquinas móviles entre 1 y 6 kg capaces de realizar la mayoría de tareas de una computadora de escritorio con la ventaja de su tamaño y peso reducidos.
En quran trans (sahih international).sahihAbu Qasim
This document contains summaries of the first two chapters (Surahs) of the Quran. Surah Al-Fatiha introduces some of the key themes and beliefs of Islam, such as worshipping Allah, seeking his guidance and avoiding the paths of those who have incurred his anger. Surah Al-Baqarah discusses various topics, including the importance of having faith and doing righteous deeds, warnings against disbelief and corruption, and stories from the history of past prophets such as Adam, Moses and Jesus. It emphasizes having faith in Allah and following the teachings of Muhammad and past prophets.
Pete Flint and Sami Inkinen cofounded Realwide.com, a real estate search website. During the COVID-19 pandemic, Inkinen worked at Microsoft and Flint focused on venture capital and technology company equity transactions. They were impressed by the demand for specialized search engines and saw an opportunity to compete with the National Realtors Association and Multiple Listing Services in the online real estate market. Key challenges included how to create a user-friendly website, acquire listing data, determine the revenue model, decide whether to focus locally or nationally, and how to position the company's image.
pointeur laser vert puissant 200mw Laser 303hannahjanelle
pointeur laser vert puissant 200mw Laser 303 , http://www.laserfourni.com/pointeur-laser-vert-puissant-laser303.html , Une lumière laser est, par essence et la lumière ordinaire telle que la lumière du soleil, de la flamme incandescente émis aucune différence, donc il a les propriétés possédées par la lumière ordinaire. Parce qu'il est une onde électromagnétique, il a également dualité onde-particule. Il est conforme à la réflexion, de la réfraction, apparaîtra dans la diffusion de l'interférence, la diffraction, la polarisation et d'autres phénomènes.
Xiaomi is a Chinese electronics company founded in 2010 that focuses on producing affordable smartphones. They have found success through a fan-centric social media strategy, engaging with customers on platforms like Sina Weibo, Facebook, YouTube, Instagram, and Twitter. By monitoring customer feedback and reviews, Xiaomi is able to innovate and improve their products based on customer expectations. Their brand essence focuses on customer interaction, positive word-of-mouth, and gaining customer trust through honest and reliable service.
This document provides information on Falls Park in Belfast, including its history, current projects and initiatives, partnerships, and future plans. It details how the park was formerly part of the Sinclair estate and now lies within the townland of Ballymurphy. Current projects involve local partnerships to control antisocial behavior, a bike club, health initiatives, and community events. Partners include community groups, schools, and the police. Future plans include new sports facilities, signage, and expanding the community garden.
This document contains a 25 question multiple choice test on computer science topics. The questions cover areas like algorithms, data structures, complexity analysis, computer architecture, operating systems, databases, networks, and formal languages. The test asks the examinee to choose the best answer from among 4 options for each question. It also provides 2 mark questions in the later part testing more comprehensive understanding.
Marva Motton wrote and directed a film called "In Midst of It All" in which she also starred as the main actor. The film featured Marva Motton thinking aloud and included a song by Ray J called "Only One Wish".
laser bleu 1000mw puissant à forte vente pas cherhannahjanelle
laser bleu 1000mw puissant à forte vente pas cher , http://www.laserfourni.com/laser-bleu-1000mw-puissant-pas-cher.html , Une lumière laser est, par essence et la lumière ordinaire telle que la lumière du soleil, de la flamme incandescente émis aucune différence, donc il a les propriétés possédées par la lumière ordinaire. Parce qu'il est une onde électromagnétique, il a également dualité onde-particule. Il est conforme à la réflexion, de la réfraction, apparaîtra dans la diffusion de l'interférence, la diffraction, la polarisation et d'autres phénomènes.
Welcome to Issue 4 of Heartfulness Magazine where we delve into creativity and inspiration. You will find articles on creating harmony within the family, how we subtly communicate with plant life, the efficacy of transmission in meditation and the beauty of simplicity. In our children’s section, youth are invited to explore our blue planet and hear the final chapter in King Vikram’s allegorical tale. May your year, dear reader, be filled with inspired moments and blessings.
We look forward to hearing your thoughts and reading your submissions.www.heartfulnessmagazine.com
Evaporation occurs when a liquid's molecules gain enough energy to transition into a gas phase, which can happen when the liquid is warmed or at room temperature. Boiling happens when a liquid's vapor pressure equals the pressure of the gas above it, meaning lower external pressures cause liquids to boil at lower temperatures. Freezing is the phase change where a liquid turns solid upon cooling below its freezing point, though some substances have different melting and freezing temperatures and can remain liquid at temperatures below the freezing point.
Niladri Debnath is a senior application developer and team leader with over 10 years of experience in web development using technologies like PHP, MySQL, ASP, and SQL Server. He has led teams of up to 6 people on projects for clients in industries like hospitality, education, and telecommunications. Some of the websites he has worked on include www.lidopalace.com, www.bidzdown.com, and www.afairs.com. He aims to continue growing his leadership and technical skills while collaborating with colleagues on innovative solutions.
Allah has 99 names that indicate his divine attributes. This document defines the meaning and provides evidence from the Quran or hadith for 15 of Allah's names:
1) Allah means the one God worthy of worship.
2) Rab means the creator and sustainer of all.
3) Ahad means the one without any partners.
4) Rahman and Raheem mean the most gracious and most merciful respectively.
5) Hayy means the ever-living who never dies.
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.
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.
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.
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/
RxJava 2 Reactive extensions for the JVMNetesh Kumar
This document provides an overview of RxJava and reactive programming concepts. It discusses why RxJava was created, defines key RxJava terms like Observables and Operators, and provides examples of common Observable creation methods and Operators like filter(), flatMap(), and zip(). The document aims to explain the basics of RxJava and how it allows for asynchronous and event-based programming using Observable sequences.
Intro to Reactive Thinking and RxJava 2JollyRogers5
Reactive Extensions (Rx) was first introduced by Microsoft in 2009 and has since been ported to most platforms and languages. It provides a way to model asynchronous data streams and events using Observables in a way that makes it easier to compose asynchronous and event-based programs. Some key advantages include simplifying asynchronous operations, surfacing errors sooner, and reducing bugs from state variables. However, the API is large so there is a steep learning curve. RxJava is an implementation of Rx for the JVM that allows pushing data instead of pulling it without worrying about threads. Common operators like map, filter, and flatMap allow transforming and combining Observable streams.
Una computadora personal, conocida como PC, es una máquina diseñada para ser usada por una sola persona y cumplir tareas como navegar por Internet, escribir textos u otros trabajos de oficina o educativos. Las computadoras personales pueden ser de escritorio, diseñadas para usarse en una ubicación fija, o portátiles, que son máquinas móviles entre 1 y 6 kg capaces de realizar la mayoría de tareas de una computadora de escritorio con la ventaja de su tamaño y peso reducidos.
En quran trans (sahih international).sahihAbu Qasim
This document contains summaries of the first two chapters (Surahs) of the Quran. Surah Al-Fatiha introduces some of the key themes and beliefs of Islam, such as worshipping Allah, seeking his guidance and avoiding the paths of those who have incurred his anger. Surah Al-Baqarah discusses various topics, including the importance of having faith and doing righteous deeds, warnings against disbelief and corruption, and stories from the history of past prophets such as Adam, Moses and Jesus. It emphasizes having faith in Allah and following the teachings of Muhammad and past prophets.
Pete Flint and Sami Inkinen cofounded Realwide.com, a real estate search website. During the COVID-19 pandemic, Inkinen worked at Microsoft and Flint focused on venture capital and technology company equity transactions. They were impressed by the demand for specialized search engines and saw an opportunity to compete with the National Realtors Association and Multiple Listing Services in the online real estate market. Key challenges included how to create a user-friendly website, acquire listing data, determine the revenue model, decide whether to focus locally or nationally, and how to position the company's image.
pointeur laser vert puissant 200mw Laser 303hannahjanelle
pointeur laser vert puissant 200mw Laser 303 , http://www.laserfourni.com/pointeur-laser-vert-puissant-laser303.html , Une lumière laser est, par essence et la lumière ordinaire telle que la lumière du soleil, de la flamme incandescente émis aucune différence, donc il a les propriétés possédées par la lumière ordinaire. Parce qu'il est une onde électromagnétique, il a également dualité onde-particule. Il est conforme à la réflexion, de la réfraction, apparaîtra dans la diffusion de l'interférence, la diffraction, la polarisation et d'autres phénomènes.
Xiaomi is a Chinese electronics company founded in 2010 that focuses on producing affordable smartphones. They have found success through a fan-centric social media strategy, engaging with customers on platforms like Sina Weibo, Facebook, YouTube, Instagram, and Twitter. By monitoring customer feedback and reviews, Xiaomi is able to innovate and improve their products based on customer expectations. Their brand essence focuses on customer interaction, positive word-of-mouth, and gaining customer trust through honest and reliable service.
This document provides information on Falls Park in Belfast, including its history, current projects and initiatives, partnerships, and future plans. It details how the park was formerly part of the Sinclair estate and now lies within the townland of Ballymurphy. Current projects involve local partnerships to control antisocial behavior, a bike club, health initiatives, and community events. Partners include community groups, schools, and the police. Future plans include new sports facilities, signage, and expanding the community garden.
This document contains a 25 question multiple choice test on computer science topics. The questions cover areas like algorithms, data structures, complexity analysis, computer architecture, operating systems, databases, networks, and formal languages. The test asks the examinee to choose the best answer from among 4 options for each question. It also provides 2 mark questions in the later part testing more comprehensive understanding.
Marva Motton wrote and directed a film called "In Midst of It All" in which she also starred as the main actor. The film featured Marva Motton thinking aloud and included a song by Ray J called "Only One Wish".
laser bleu 1000mw puissant à forte vente pas cherhannahjanelle
laser bleu 1000mw puissant à forte vente pas cher , http://www.laserfourni.com/laser-bleu-1000mw-puissant-pas-cher.html , Une lumière laser est, par essence et la lumière ordinaire telle que la lumière du soleil, de la flamme incandescente émis aucune différence, donc il a les propriétés possédées par la lumière ordinaire. Parce qu'il est une onde électromagnétique, il a également dualité onde-particule. Il est conforme à la réflexion, de la réfraction, apparaîtra dans la diffusion de l'interférence, la diffraction, la polarisation et d'autres phénomènes.
Welcome to Issue 4 of Heartfulness Magazine where we delve into creativity and inspiration. You will find articles on creating harmony within the family, how we subtly communicate with plant life, the efficacy of transmission in meditation and the beauty of simplicity. In our children’s section, youth are invited to explore our blue planet and hear the final chapter in King Vikram’s allegorical tale. May your year, dear reader, be filled with inspired moments and blessings.
We look forward to hearing your thoughts and reading your submissions.www.heartfulnessmagazine.com
Evaporation occurs when a liquid's molecules gain enough energy to transition into a gas phase, which can happen when the liquid is warmed or at room temperature. Boiling happens when a liquid's vapor pressure equals the pressure of the gas above it, meaning lower external pressures cause liquids to boil at lower temperatures. Freezing is the phase change where a liquid turns solid upon cooling below its freezing point, though some substances have different melting and freezing temperatures and can remain liquid at temperatures below the freezing point.
Niladri Debnath is a senior application developer and team leader with over 10 years of experience in web development using technologies like PHP, MySQL, ASP, and SQL Server. He has led teams of up to 6 people on projects for clients in industries like hospitality, education, and telecommunications. Some of the websites he has worked on include www.lidopalace.com, www.bidzdown.com, and www.afairs.com. He aims to continue growing his leadership and technical skills while collaborating with colleagues on innovative solutions.
Allah has 99 names that indicate his divine attributes. This document defines the meaning and provides evidence from the Quran or hadith for 15 of Allah's names:
1) Allah means the one God worthy of worship.
2) Rab means the creator and sustainer of all.
3) Ahad means the one without any partners.
4) Rahman and Raheem mean the most gracious and most merciful respectively.
5) Hayy means the ever-living who never dies.
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.
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.
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.
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/
RxJava 2 Reactive extensions for the JVMNetesh Kumar
This document provides an overview of RxJava and reactive programming concepts. It discusses why RxJava was created, defines key RxJava terms like Observables and Operators, and provides examples of common Observable creation methods and Operators like filter(), flatMap(), and zip(). The document aims to explain the basics of RxJava and how it allows for asynchronous and event-based programming using Observable sequences.
Intro to Reactive Thinking and RxJava 2JollyRogers5
Reactive Extensions (Rx) was first introduced by Microsoft in 2009 and has since been ported to most platforms and languages. It provides a way to model asynchronous data streams and events using Observables in a way that makes it easier to compose asynchronous and event-based programs. Some key advantages include simplifying asynchronous operations, surfacing errors sooner, and reducing bugs from state variables. However, the API is large so there is a steep learning curve. RxJava is an implementation of Rx for the JVM that allows pushing data instead of pulling it without worrying about threads. Common operators like map, filter, and flatMap allow transforming and combining Observable streams.
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.
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.
This document provides an overview of reactive programming with RxJava. It begins with introductions to reactive programming and RxJava. It then discusses operators like map, filter, and flatMap that allow transforming and combining observable streams. It covers topics like error handling, threading with schedulers, subscriptions, and backpressure. The document includes examples of how to use various RxJava operators and concepts like transforming streams, handling errors, and improving performance with techniques like throttling.
RxJava allows building reactive applications by treating everything as a stream of messages. Observables represent message producers and observers consume messages. Observables provide asynchronous and parallel execution via operators like subscribeOn and observeOn. This makes applications resilient to failure, scalable under varying workloads, and responsive to clients. RxJava also promotes message-driven architectures, functional programming, and handling errors as regular messages to improve these characteristics. Developers must also unsubscribe to prevent leaking resources and ensure observables only run when needed.
The Mayans Lost Guide to RxJava on AndroidFernando Cejas
This document provides an introduction and overview of RxJava. Some key points:
- RxJava is a library for composing asynchronous and event-based programs using observable sequences. It implements Reactive Extensions (ReactiveX) for the Java VM.
- Using RxJava can help address issues with concurrency, callbacks, and composing asynchronous operations in Java. It promotes a reactive style of programming.
- The core abstractions in RxJava are Observables (which emit notifications), Subscribers (which receive notifications), and Operators (which allow transformation and manipulation of observable sequences).
- Examples are provided of how to use RxJava with Clean Architecture, including reactive presenters, use cases that
The document discusses reactive programming concepts using RxJava. It introduces observables and observers, where observables push asynchronous events to observers via subscriptions. It explains how to create observables that return asynchronous values, and how operators like map, filter, and flatMap can transform and combine observable streams. Key lessons are that performance depends on operator implementations, debugging subscriptions can be difficult, and IDE support for reactive code is still maturing.
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.
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.
RxJS in Angular 2
1. Quick overview of progress on RxJS Next (now RxJS 5)
2. Comparing Promises with Observables, and talking about why Observables are a better choice for Single Page Applications, like those written with Angular
3. Show the anatomy of an Observable
4. Talk about what Operators are
5. Show an example of reconnecting a multiplexed Web Socket using Observables in Angular 2.
The document discusses Meteor's Tracker package, which enables reactive programming in Meteor applications. Tracker uses an observer-like pattern to transparently track dependencies between reactive data sources and computations. When a data source changes, Tracker reruns any dependent computations to update the UI or other data reactively. Key aspects of how Tracker works include creating Dependency objects for reactive data, tracking the "current computation", and rerunning computations through Dependency's depend() and changed() methods. Tracker provides a powerful yet simple way to build reactive applications in Meteor without needing expertise in functional reactive programming.
RxJava pour Android : présentation lors du GDG Android MontréalSidereo
Reactive extensions are a framework created by Microsoft for .NET at the end of 2009.
It is a «library that allows programmers to write succinct declarative code to orchestrate and coordinate asynchronous and event-based programs »
The way you write code with this library might be referred to as functional reactive programming, we’ll talk more about this during the presentation.
It is now available for Java and Android. The specifics for Android are helpers for thread and UI stuff.
Jake Wharton is a huge contributor for the Android version
This document discusses functional reactive programming and RxJava. It begins with an overview of functional reactive programming principles like being responsive, resilient, elastic and message-driven. It then covers architectural styles like hexagonal architecture and onion architecture. The rest of the document dives deeper into RxJava concepts like Observables, Observers, Operators, and Schedulers. It provides code examples to demonstrate merging, filtering and transforming streams of data asynchronously using RxJava.
This document provides an overview of reactive programming in Java and Spring 5. It discusses reactive programming concepts like reactive streams specification, Reactor library, and operators. It also covers how to build reactive applications with Spring WebFlux, including creating reactive controllers, routing with functional endpoints, using WebClient for HTTP requests, and testing with WebTestClient.
Chapter wise All Notes of First year Basic Civil Engineering.pptxDenish Jangid
Chapter wise All Notes of First year Basic Civil Engineering
Syllabus
Chapter-1
Introduction to objective, scope and outcome the subject
Chapter 2
Introduction: Scope and Specialization of Civil Engineering, Role of civil Engineer in Society, Impact of infrastructural development on economy of country.
Chapter 3
Surveying: Object Principles & Types of Surveying; Site Plans, Plans & Maps; Scales & Unit of different Measurements.
Linear Measurements: Instruments used. Linear Measurement by Tape, Ranging out Survey Lines and overcoming Obstructions; Measurements on sloping ground; Tape corrections, conventional symbols. Angular Measurements: Instruments used; Introduction to Compass Surveying, Bearings and Longitude & Latitude of a Line, Introduction to total station.
Levelling: Instrument used Object of levelling, Methods of levelling in brief, and Contour maps.
Chapter 4
Buildings: Selection of site for Buildings, Layout of Building Plan, Types of buildings, Plinth area, carpet area, floor space index, Introduction to building byelaws, concept of sun light & ventilation. Components of Buildings & their functions, Basic concept of R.C.C., Introduction to types of foundation
Chapter 5
Transportation: Introduction to Transportation Engineering; Traffic and Road Safety: Types and Characteristics of Various Modes of Transportation; Various Road Traffic Signs, Causes of Accidents and Road Safety Measures.
Chapter 6
Environmental Engineering: Environmental Pollution, Environmental Acts and Regulations, Functional Concepts of Ecology, Basics of Species, Biodiversity, Ecosystem, Hydrological Cycle; Chemical Cycles: Carbon, Nitrogen & Phosphorus; Energy Flow in Ecosystems.
Water Pollution: Water Quality standards, Introduction to Treatment & Disposal of Waste Water. Reuse and Saving of Water, Rain Water Harvesting. Solid Waste Management: Classification of Solid Waste, Collection, Transportation and Disposal of Solid. Recycling of Solid Waste: Energy Recovery, Sanitary Landfill, On-Site Sanitation. Air & Noise Pollution: Primary and Secondary air pollutants, Harmful effects of Air Pollution, Control of Air Pollution. . Noise Pollution Harmful Effects of noise pollution, control of noise pollution, Global warming & Climate Change, Ozone depletion, Greenhouse effect
Text Books:
1. Palancharmy, Basic Civil Engineering, McGraw Hill publishers.
2. Satheesh Gopi, Basic Civil Engineering, Pearson Publishers.
3. Ketki Rangwala Dalal, Essentials of Civil Engineering, Charotar Publishing House.
4. BCP, Surveying volume 1
A Visual Guide to 1 Samuel | A Tale of Two HeartsSteve Thomason
These slides walk through the story of 1 Samuel. Samuel is the last judge of Israel. The people reject God and want a king. Saul is anointed as the first king, but he is not a good king. David, the shepherd boy is anointed and Saul is envious of him. David shows honor while Saul continues to self destruct.
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...EduSkills OECD
Andreas Schleicher, Director of Education and Skills at the OECD presents at the launch of PISA 2022 Volume III - Creative Minds, Creative Schools on 18 June 2024.
2. Introduction
1. Developing a complex Android app that has lots of
network connections, user interactions, and animations
often means writing code that is full of nested
callbacks.
2. Sometimes called callback hell, is not only lengthy and
hard to understand, hard to maintain.
3. ReactiveX offers an alternative approach that is both
clear and concise, to manage asynchronous tasks and
events.
3. Overview
1. What is ReactiveX?
2. Observables, Observers
3. Operator
4. Schedulers
5. Retrofit with RxAndroid
4. What is ReactiveX?
ReactiveX is a library for composing
asynchronous and event-based programs by using
observable sequences.
RxJava, which is a port of the Reactive Extensions
library from .NET, enables Android apps to be
built in this style.
5. Async programming
Nowadays programming in an imperative single threaded way
usually leads to strange behaviors, blocking non responsive
UIs and therefore a bad user experience.
This can be avoided by handling unpredicted things
asynchronously. For example actively waiting for a database
query or a webservice call can cause an application freeze, if
the network is not responsive.
6. Async programming
public List<Todo> getTodos() {
List<Todo> todosFromWeb
= // query a webservice (with bad
network latency)
return todosFromDb;
}
public void
getTodos(Consumer<List<Todo>>
todosConsumer) {
Thread thread = new Thread(()-> {
List<Todo> todosFromWeb = //
query a webservice
todosConsumer.accept(todosFromWeb);
});
thread.start();
}
8. Observables, Observers and
Subscriptions
1. Observables
Emit items (Objects, Strings, Integers etc.).
Does not start emitting till someone subscribes.
2. Observers
To watch Observables by subscribing to them and consumes data
3. Manipulation operators (this is the “functional programming” part)
Transforms
Filters
Etc.
The observable we just created will emit its data only when it has at least one
observer.
Similar to the observer pattern. Except, doesn’t start emitting till there is a subscriber.
9. Creating Observable
RxJava provides several methods to create an
observable.
Observable.just() - Allows to create an observable as
wrapper around other data types
Observable.from() - takes a collection or an array and
emits their values in their order in the data structure
Observable.fromCallable() - Allows to create an
observable for a Callable`
To create observers:
Implement Action1 - Allow you to create a simple observer
which has a call methods. This method is called if a new
object is emitted.
10. Defining Observables
// Observables emit any number of items to be processed
// The type of the item to be processed needs to be specified as a "generic type"
// In this case, the item type is `String`
Observable<String> myObservable = Observable.create(
new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> sub) {
// "Emit" any data to the subscriber
sub.onNext("a");
sub.onNext("b");
sub.onNext("c");
// Trigger the completion of the event
sub.onCompleted();
}
}
);
This observable event emits the data “a”, “b”, “c” and then completes.
11. Defining Observers
Observer<String> mySubscriber = new Observer<String>() {
// Triggered for each emitted value
@Override
public void onNext(String s) { System.out.println("onNext: " + s); }
// Triggered once the observable is complete
@Override
public void onCompleted() { System.out.println("done!"); }
// Triggered if there is any errors during the event
@Override
public void onError(Throwable e) { }
};
Now let’s create a Observer to consume this emitted data from the
Observable:
12. Subscribing to Observables
An Observer can be attached to an Observable in order to
respond to emitted data with:
• // Attaches the subscriber above to the observable object
• myObservable.subscribe(mySubscriber);
Outputs:
// onNext: "a"
// onNext: "b"
// onNext: "c"
// done!
Observable Observers
13. Subscribing to Observables
void onNext(T t):
Provides the Observer with a new item to observe.
may call this method 0 or more times.
will not call this method again after it calls either onCompleted or
onError
void onCompleted():
Notifies the Observer that the Observable has finished sending push-based
notifications.
void onError(Throwable e):
Notifies the Observer that the Observable has experienced an error
condition.
Subscription subscribe(final Observer<? super T> observer):
Subscribes to an Observable and provides an Observer that implements
functions to handle the items the Observable emits and any error or
completion
14. Operator
Just — convert an object or a set of objects into an Observable that
emits that or those objects
Observable.just(1, 2, 3).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
System.out.println("Complete!");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Integer integer) {
System.out.println("onNext!");
}
});
System.out: onNext!: 1
System.out: onNext!: 2
System.out: onNext!: 3
System.out: Complete!
15. Operator
From — Converts an Array into an Observable that emits the items
in the Array.
Integer[] items = {0, 1, 2, 3, 4};
Observable.from(items).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
System.out.println("Complete!");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Integer integer) {
System.out.println("onNext from!" + integer);
}
});
System.out: onNext!0
System.out: onNext!1
System.out: onNext!2
System.out: onNext!3
System.out: onNext!4
System.out: Complete!
16. Operator
Filter : Filters items emitted by an Observable by only emitting
those that satisfy a specified predicate.
Observable.just(1, 2, 3, 4, 5)
.filter(new Func1<Integer, Boolean>() {
@Override
public Boolean call(Integer integer) {
return integer < 4;
}
}).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
System.out.println("Complete!");
}
@Override
public void onError(Throwable e) {
System.out.println("onError!");
}
@Override
public void onNext(Integer integer) {
System.out.println("onNext just!" + integer);
}
});
System.out: onNext!0
System.out: onNext!1
System.out: onNext!2
System.out: onNext!3
System.out: Complete!
17. Operator
Map: Transform the items emitted by an Observable by applying a
function to each item
Observable.just(1, 2, 3, 4, 5)
.map(new Func1<Integer, Integer>() {
@Override
public Integer call(Integer integer) {
return integer * 10;
}
}).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
System.out.println("Complete!");
}
@Override
public void onError(Throwable e) {
System.out.println("onError!");
}
@Override
public void onNext(Integer integer) {
System.out.println("onNext!" + integer);
}
});
System.out: onNext! 10
System.out: onNext! 20
System.out: onNext! 30
System.out: onNext! 40
System.out: onNext! 50
System.out: Complete!
19. Schedulers
RxJava is synchronous by default, but work can be defined
asynchronously using schedulers. For instance, we can define that
the network call should be done on a background thread, but the
callback should be done on the main UI thread.
Observable.from(doLongNetwork())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getObserver())
1. Observable
2.Schedulers
3. Observer
20. Schedulers
These schedulers than then be used to control which thread an observable or
the subscriber are operating on using the subscribeOn() and observeOn()
21. Schedulers
subscribeOn():
Basic rules of rxjava threading:
1. rxjava is single threaded by default
2. subscribeOn only affects upstream
3. only the subscribeOn closest to the source matters
4. observeOn only affects downstream
22. Schedulers
1. rxjava is single threaded by default
When you do not use observeOn, subscribeOn, or an operator that runs on a particular
scheduler , the callback will be receieved on the thread subscribe happened on.
2. subscribeOn only affects upstream
getANumberObservable()
.subscribeOn(Schedulers.io())
.map(new Func1<Integer, String>() {
@Override
public String call(Integer integer) {
Log.i("Operator thread", Thread.currentThread().getName());
return String.valueOf(integer);
}
})
.subscribe(new Action1<String>() {
@Override
public void call(String s) {
Log.i("Subscriber thread", Thread.currentThread().getName() + " onNext: " +
s);
}
});
Output:
Observable thread: RxIoScheduler-2
Operator thread: RxIoScheduler-2
Subscriber thread: RxIoScheduler-2
onNext: 1
23. Schedulers
3. Only the subscribeOn closest to the source matters:
Observable.just("Some String")
.map(new Func1<String, Integer>() {
@Override
public Integer call(String s) {
return s.length();
}
})
.subscribeOn(Schedulers.computation()) // changing to computation
.subscribeOn(Schedulers.io()) // won’t change the thread to IO
.subscribe(new Observer<Integer>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Integer integer) {
System.out.println("onNext!" + integer);
Log.d("onNext", "Number " + integer + " Thread: " + Thread.currentThread().getName());
}
});
Output
System.out: onNext!11 onNext:
Number 11
Thread: RxComputationScheduler-1
24. Schedulers
4. observeOn only affects downstream
ObserveOn function () pass an argument is a Scheduler will make the
Operator and Subscriber called behind it is running on thread
provided by this Scheduler.
26. Deferring Observable
Create(…): actually creates Observable immediately.
public final static <T> Observable<T> create(OnSubscribe<T> f) {
return new Observable<T>(hook.onCreate(f));
}
Defer(…): creates Observable only when subscriber subscribes, create a
new Observable each time you get a subscriber.
public final static <T> Observable<T> defer(Func0<Observable<T>>
observableFactory) {
return create(new OnSubscribeDefer<T>(observableFactory));
}
27. Deferring Observable
SomeType instance = new SomeType();
Observable<String> value = instance.valueObservable();
instance.setValue("Some Value");
value.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
Log.d("Thinhdt", "Defer Observable: " + s);
}
});
Output:
Thinhdt: Defer Observable: null
28. Deferring Observable : Solution
public Observable<String> valueObservable() {
return Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext(value);
subscriber.onCompleted(); }
});
}
Observable.cr
eate()
public Observable<String> valueObservable() {
return Observable.defer(new Func0<Observable<String>>() {
@Override
public Observable<String> call() {
return Observable.just(value);
}
});
}
Observable.
defer
29. Replacing AsyncTask with Observables
// This constructs an `Observable` to download the image
public Observable<Bitmap> getImageNetworkCall() {
// Insert network call here!
}
// Construct the observable and use `subscribeOn` and `observeOn`
// This controls which threads are used for processing and observing
Subscription subscription = getImageNetworkCall()
// Specify the `Scheduler` on which an Observable will operate
.subscribeOn(Schedulers.io())
// Specify the `Scheduler` on which a subscriber will observe this `Observable`
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Bitmap>() {
// This replaces `onPostExecute(Bitmap bitmap)`
@Override
public void onNext(Bitmap bitmap) {
// Handle result of network request
}
@Override
public void onCompleted() {
// Update user interface if needed
}
@Override
public void onError() {
// Update user interface to handle error
}
});
1. Thread to perform the task in the
background used subscribeOn()
2. To update UI on main thread used
observeOn()
30. Retrofit with RxAndroid
1. public interface MyApiEndpointInterface {
@GET("/users/{username}")
Observable<User> getUser(@Path("username") String
username);
}
2. MyApiEndpointInterface apiService =
retrofit.create(MyApiEndpointInterface.class);
// Get the observable User object
Observable<User> call = apiService.getUser(username);
// To define where the work is done, we can use `observeOn()` with Retrofit
// This means the result is handed to the subscriber on the main thread
call.observeOn(AndroidSchedulers.mainThread()).subscribe(new
Subscriber<User>() {
@Override
public void onNext(User user) {
// Called once the `User` object is available
}
@Override
public void onCompleted() {
// Nothing to do here
}
@Override
public void onError(Throwable e) {
// cast to retrofit.HttpException to get the response code
if (e instanceof HttpException) {
HttpException response;
int code = response.code();
}
}
});
This observable event emits the data “a”, “b”, “c” and then completes.
These schedulers than then be used to control which thread an observable or the subscriber are operating on using the subscribeOn() and observeOn()
subscribeOn() instructs the source Observable which thread to emit items on
It is helpful to instruct a source Observable which Scheduler to use via subscribeOn(), and the source Observable will emit items on one of that Scheduler's threads
Bạn cần lưu ý điều này khi sử dụng các hàm như Observable.just(), Observable.from() hay Observable.range(): Những hàm này sẽ nhận vào giá trị ngay khi chúng được khởi tạo nên subscribeOn() sẽ không có tác dụng; Nguyên nhân là do subscribeOn() chỉ có tác dụng khi hàm subscribe() được gọi đến, mà những hàm khởi tạo nói trên lại khởi tạo Observable trước khi gọi subscriber() nên các bạn cần tránh đưa vào các giá trị mà cần tính toán trong 1 khoảng thời gian dài (blocking) vào các hàm khởi tạo đó.
Thay vào đó đối với các hàm blocking thì bạn có thể sử dụng Observable.create() hoặc Observable.defer(). 2 hàm này về cơ bản sẽ đảm bảo là Observable sẽ chỉ được khởi tạo khi hàm subscribe() được gọi đến.
The only downside to defer() is that it creates a new Observable each time you get a subscriber. create() can use the same function for each subscriber, so it's more efficient. As always, measure performance and optimize if necessary.