SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Programando en diferido
(Get out of my thread)
Jorge Juan Barroso Carmona
jorge@karumi.com
@ïŹ‚ipper83
+JorgeJBarroso
Android expert
Basho. Poet
Karumi is the beauty of ordinary things spoken of in
a simple way.
Miguel Noguera
Reactive Manifesto
Mem CacheResponsive
Mem CacheResilient
Mem CacheElastic
Mem CacheMessage Driven
Mem Cache
The manifesto is not
concrete
Adam Tornhill
“First, solve the problem. Then, write the
code.”
John Johnson.
Adam Tornhill
Async Task
Mem Cache
Really close to the UI Thread and
to the framework.
Mem Cache
‹
task.execute()‹
vs‹
task.executeOnExecutor
(AsyncTask.THREAD_POOL_EXECUTOR)
Mem Cache
‹
Problems changing orientation.
Mem Cache
Priority Job Queue
Mem CacheProducer - consumer approach.
Mem CachePriorities, group, delay, store 
 jobs
Mem CacheNeed consumers conïŹguration.
Mem Cache
Mem Cache
We need to ïŹnd a way to notify
responders.
Buses?
callbacks?
post on handler?
Mem Cache
“Callback hell” if we need coordinate a
lot of Jobs.
Promises
(JDeferred)
Mem CacheFuture and Promises
Mem Cache
We can choose execution and responses
thread with ExecutionServices and
ExecutionScope.
Mem Cache
Mem Cache
We can coordinate promises.
DeferredManager dm = new DefaultDeferredManager();
Promise p1, p2, p3;
// initialize p1, p2, p3
dm.when(p1, p2, p3)
.done(
)
.fail(
)
Mem Cache
We can do operations over the promises.
Filter (Map)
Deferred d = 
;
Promise p = d.promise();
Promise ïŹltered = p.then(new DoneFilter<Integer, Integer>() {
public Integer ïŹlterDone(Integer result)
return result * 10;
}
});
RxJava
Mem Cache
Combination of the best ideas from
the Observer pattern, the Iterator pattern,
and functional programming
Mem Cache
You need to change your mind. You
“observe” changes, don’t invoke it.
A lot of “Operators” that allow
combination observables.
Example: Zip
You decide in which thread your
observable will emit the stream of data
(onNext() on Subscriber).
.subscribeOn(Schedulers.newThread())
You deciden in which thread Observables
will execute their job.
.observeOn(AndroidSchedulers.mainThread())
It has a steep learning curve. Take time to
understand the paradigma change and
learn the operators.
Debugging can be hell.
Frodo is your friend.
Cold vs Hot observables
Defer vs Publish
Karumi Recommends
Mem CacheGet out from UI thread ASAP
Mem Cache
Apps are really dependent on state.
Blocking threads.
Mem Cache
Be careful with the number of threads
that your are creating. A big number of
threads can overkill the system.
Mem Cache
I don’t appreciate a big impact to the
memory or to garbage collector.
Adam Tornhill
“Sometimes abstraction and
encapsulation are at odds with
performance — although not nearly as
often as many developers believe — but
it is always a good practice ïŹrst to make
your code right, and then make it fast.”
Brian Goetz.
Java Concurrency in Prac.
Readability is the must important thing
always
Observable<List<User>> usersDb =
db.getUsers().subscribeOn(Schedulers.newThread());
Observable<List<User>> users =
apiRest.getUsers().subscribeOn(Schedulers.newThread());
Observable<Map<String, Integer>> likeCountPerUser = apiRest.getLikes();
Observable<List<User>> obs = Observable.zip(users, likeCountPerUser, (users, likes) ->
{
for (User user: users) {
if (likes.containsKey(user.getId())) {
user.setNumLikes (likes.get(user.getId()));
}
}
return users;
}).merge(userDb);
return obs;
Readability is the must important thing
always
List<User> usersDb = db.getUsers();
List<User> users = apiRest.getUsers();
Map<String, Integer> likeCountPerUser = apiRest.getLikes();
for (User user: users) {
if (likes.containsKey(user.getId())) {
user.setNumLikes(likes.get(user.getId()));
}
}
List<User> usersFinal = new ArrayList<>();
usersFinal.addAll(users);
usersFinal.addAll(usersDb);
return usersFinal;
Bibliography
They’re the cracks!
Java Concurrency in Prac. Brian Goetz
http://www.reactivemanifesto.org/
http://reactivex.io/
https://github.com/jdeferred/jdeferred
https://github.com/BoltsFramework/Bolts-Android
https://github.com/android10/frodo
https://github.com/ïŹ‚ipper83/trabajando-en-diferido
Thanks to Pedro V Gomez, Fernando Cejas, Nuria Ruiz and karumi
team for their support.
Find meI am very social!
jorge@karumi.com
@ïŹ‚ipper83
+JorgeJBarroso
Questions?
Get out of my thread (Trabajando en diferido)

Mais conteĂșdo relacionado

Destaque

é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»
é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»
é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸ
 
Pari Foundation 2014 15
Pari Foundation  2014 15Pari Foundation  2014 15
Pari Foundation 2014 15Johny C
 
Admission.
Admission.Admission.
Admission.Anil7862
 
Cfff25 f5 5f58-4426-9de9b44fe3187a2e
Cfff25 f5 5f58-4426-9de9b44fe3187a2eCfff25 f5 5f58-4426-9de9b44fe3187a2e
Cfff25 f5 5f58-4426-9de9b44fe3187a2eCarlos Carvalho
 
3. resoluciĂłn smv 2015 1278933 1
3. resoluciĂłn smv 2015 1278933 13. resoluciĂłn smv 2015 1278933 1
3. resoluciĂłn smv 2015 1278933 1Ivan Fuentes Flores
 
Presentation english3f
Presentation english3fPresentation english3f
Presentation english3fnbajos
 
Bolton hospice lottery rebrand
Bolton hospice lottery rebrandBolton hospice lottery rebrand
Bolton hospice lottery rebrandDaniel Del Soldato
 
Tourism English 13
Tourism English 13Tourism English 13
Tourism English 13Les Davy
 
Mi vida paulis
Mi vida paulisMi vida paulis
Mi vida paulismorenopaulina
 
Using Standars in Peer Education
Using Standars in Peer Education Using Standars in Peer Education
Using Standars in Peer Education Columbia University
 
Horrible Jobs
Horrible JobsHorrible Jobs
Horrible Jobsmkm29
 
Venkatesh_updated_Resume
Venkatesh_updated_ResumeVenkatesh_updated_Resume
Venkatesh_updated_Resumevenkatpip
 
もっべできる! ナガノ Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013
もっべできる! ナガノ  Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013  もっべできる! ナガノ  Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013
もっべできる! ナガノ Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013 é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸ
 
ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃ
ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃ
ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃcrasgmu
 
Fm1(a) sound
Fm1(a)   soundFm1(a)   sound
Fm1(a) soundadamporter
 

Destaque (18)

é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»
é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»
é•·é‡Žćž‚ćœ°ćŸŸćŒ…æ‹Źæ”ŻæŽă‚»ăƒłă‚żăƒŒæ–°èš­ăƒ»ć»ƒćˆăźèšˆç”»
 
Pari Foundation 2014 15
Pari Foundation  2014 15Pari Foundation  2014 15
Pari Foundation 2014 15
 
Admission.
Admission.Admission.
Admission.
 
Cfff25 f5 5f58-4426-9de9b44fe3187a2e
Cfff25 f5 5f58-4426-9de9b44fe3187a2eCfff25 f5 5f58-4426-9de9b44fe3187a2e
Cfff25 f5 5f58-4426-9de9b44fe3187a2e
 
3. resoluciĂłn smv 2015 1278933 1
3. resoluciĂłn smv 2015 1278933 13. resoluciĂłn smv 2015 1278933 1
3. resoluciĂłn smv 2015 1278933 1
 
Proyecto_Kainos
Proyecto_KainosProyecto_Kainos
Proyecto_Kainos
 
Presentation english3f
Presentation english3fPresentation english3f
Presentation english3f
 
Bolton hospice lottery rebrand
Bolton hospice lottery rebrandBolton hospice lottery rebrand
Bolton hospice lottery rebrand
 
Tourism English 13
Tourism English 13Tourism English 13
Tourism English 13
 
Mi vida paulis
Mi vida paulisMi vida paulis
Mi vida paulis
 
Using Standars in Peer Education
Using Standars in Peer Education Using Standars in Peer Education
Using Standars in Peer Education
 
Horrible Jobs
Horrible JobsHorrible Jobs
Horrible Jobs
 
Tachlis of inclusion
Tachlis of inclusionTachlis of inclusion
Tachlis of inclusion
 
Novena della salvezza (mini book)
Novena della salvezza (mini book)Novena della salvezza (mini book)
Novena della salvezza (mini book)
 
Venkatesh_updated_Resume
Venkatesh_updated_ResumeVenkatesh_updated_Resume
Venkatesh_updated_Resume
 
もっべできる! ナガノ Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013
もっべできる! ナガノ  Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013  もっべできる! ナガノ  Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013
もっべできる! ナガノ Ver. 0.9ă€€é•·é‡Žćž‚è­°äŒšè­°ć“Ąć°æł‰äž€çœŸă€€æ”żç­–æèš€é›†2013
 
ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃ
ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃ
ĐŸĐ°Ń€Đ°ĐŒĐ”Ń‚Ń€Ń‹ ĐČĐŸĐ·Đ±ŃƒĐŽĐžĐŒĐŸŃŃ‚Đž. Đ Đ°ŃĐżŃ€ĐŸŃŃ‚Ń€Đ°ĐœĐ”ĐœĐžĐ” ĐČĐŸĐ·Đ±ŃƒĐ¶ĐŽĐ”ĐœĐžŃ
 
Fm1(a) sound
Fm1(a)   soundFm1(a)   sound
Fm1(a) sound
 

Semelhante a Get out of my thread (Trabajando en diferido)

Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJAX London
 
2019 PHP Serbia - Boosting your performance with Blackfire
2019 PHP Serbia - Boosting your performance with Blackfire2019 PHP Serbia - Boosting your performance with Blackfire
2019 PHP Serbia - Boosting your performance with BlackfireMarko Mitranić
 
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...Codemotion
 
Gluster the ugly parts with Jeff Darcy
Gluster  the ugly parts with Jeff DarcyGluster  the ugly parts with Jeff Darcy
Gluster the ugly parts with Jeff DarcyGluster.org
 
The Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidThe Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidStanojko Markovik
 
Golang concurrency design
Golang concurrency designGolang concurrency design
Golang concurrency designHyejong
 
All of javascript
All of javascriptAll of javascript
All of javascriptTogakangaroo
 
Making an Exception
Making an ExceptionMaking an Exception
Making an ExceptionKevlin Henney
 
Java Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky ProblemJava Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky ProblemWill Iverson
 
All of Javascript
All of JavascriptAll of Javascript
All of JavascriptTogakangaroo
 
Introduction to Java performance tuning
Introduction to Java performance tuningIntroduction to Java performance tuning
Introduction to Java performance tuningMarouane Gazanayi
 
Short notes of oop with java
Short notes of oop with javaShort notes of oop with java
Short notes of oop with javaMohamed Fathy
 
Operationalizing Clojure Confidently
Operationalizing Clojure ConfidentlyOperationalizing Clojure Confidently
Operationalizing Clojure ConfidentlyPrasanna Gautam
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript PerformanceNoam Kfir
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performancekaven yan
 
How to make fewer errors at the stage of code writing. Part N1.
How to make fewer errors at the stage of code writing. Part N1.How to make fewer errors at the stage of code writing. Part N1.
How to make fewer errors at the stage of code writing. Part N1.PVS-Studio
 
How to make fewer errors at the stage of code writing. Part N1
How to make fewer errors at the stage of code writing. Part N1How to make fewer errors at the stage of code writing. Part N1
How to make fewer errors at the stage of code writing. Part N1Andrey Karpov
 
Shorten Device Boot Time for Automotive IVI and Navigation Systems
Shorten Device Boot Time for Automotive IVI and Navigation SystemsShorten Device Boot Time for Automotive IVI and Navigation Systems
Shorten Device Boot Time for Automotive IVI and Navigation SystemsNational Cheng Kung University
 

Semelhante a Get out of my thread (Trabajando en diferido) (20)

Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
 
2019 PHP Serbia - Boosting your performance with Blackfire
2019 PHP Serbia - Boosting your performance with Blackfire2019 PHP Serbia - Boosting your performance with Blackfire
2019 PHP Serbia - Boosting your performance with Blackfire
 
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...
Mario Fusco - Comparing different concurrency models on the JVM | Codemotion ...
 
Gluster the ugly parts with Jeff Darcy
Gluster  the ugly parts with Jeff DarcyGluster  the ugly parts with Jeff Darcy
Gluster the ugly parts with Jeff Darcy
 
The Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with androidThe Good, the Bad and the Ugly things to do with android
The Good, the Bad and the Ugly things to do with android
 
Golang concurrency design
Golang concurrency designGolang concurrency design
Golang concurrency design
 
All of javascript
All of javascriptAll of javascript
All of javascript
 
Making an Exception
Making an ExceptionMaking an Exception
Making an Exception
 
Java Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky ProblemJava Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky Problem
 
All of Javascript
All of JavascriptAll of Javascript
All of Javascript
 
Introduction to Java performance tuning
Introduction to Java performance tuningIntroduction to Java performance tuning
Introduction to Java performance tuning
 
Short notes of oop with java
Short notes of oop with javaShort notes of oop with java
Short notes of oop with java
 
Operationalizing Clojure Confidently
Operationalizing Clojure ConfidentlyOperationalizing Clojure Confidently
Operationalizing Clojure Confidently
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript Performance
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performance
 
How to make fewer errors at the stage of code writing. Part N1.
How to make fewer errors at the stage of code writing. Part N1.How to make fewer errors at the stage of code writing. Part N1.
How to make fewer errors at the stage of code writing. Part N1.
 
How to make fewer errors at the stage of code writing. Part N1
How to make fewer errors at the stage of code writing. Part N1How to make fewer errors at the stage of code writing. Part N1
How to make fewer errors at the stage of code writing. Part N1
 
Shorten Device Boot Time for Automotive IVI and Navigation Systems
Shorten Device Boot Time for Automotive IVI and Navigation SystemsShorten Device Boot Time for Automotive IVI and Navigation Systems
Shorten Device Boot Time for Automotive IVI and Navigation Systems
 
Introducing Parallel Pixie Dust
Introducing Parallel Pixie DustIntroducing Parallel Pixie Dust
Introducing Parallel Pixie Dust
 
Android antipatterns
Android antipatternsAndroid antipatterns
Android antipatterns
 

Mais de Jorge Barroso

Tensor for android
Tensor for androidTensor for android
Tensor for androidJorge Barroso
 
All you need know about testing
All you need know about testingAll you need know about testing
All you need know about testingJorge Barroso
 
Learning android with AOSP
Learning android with AOSPLearning android with AOSP
Learning android with AOSPJorge Barroso
 
Material for old school
Material for old schoolMaterial for old school
Material for old schoolJorge Barroso
 
Material design basics
Material design basicsMaterial design basics
Material design basicsJorge Barroso
 
Forgetting android
Forgetting androidForgetting android
Forgetting androidJorge Barroso
 

Mais de Jorge Barroso (6)

Tensor for android
Tensor for androidTensor for android
Tensor for android
 
All you need know about testing
All you need know about testingAll you need know about testing
All you need know about testing
 
Learning android with AOSP
Learning android with AOSPLearning android with AOSP
Learning android with AOSP
 
Material for old school
Material for old schoolMaterial for old school
Material for old school
 
Material design basics
Material design basicsMaterial design basics
Material design basics
 
Forgetting android
Forgetting androidForgetting android
Forgetting android
 

Último

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar â‰ŒđŸ” Delhi door step de...
Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar  â‰ŒđŸ” Delhi door step de...Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar  â‰ŒđŸ” Delhi door step de...
Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar â‰ŒđŸ” Delhi door step de...9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxJuliansyahHarahap1
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086anil_gaur
 
Call Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night StandCall Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night Standamitlee9823
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 

Último (20)

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar â‰ŒđŸ” Delhi door step de...
Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar  â‰ŒđŸ” Delhi door step de...Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar  â‰ŒđŸ” Delhi door step de...
Call Now ≜ 9953056974 â‰ŒđŸ” Call Girls In New Ashok Nagar â‰ŒđŸ” Delhi door step de...
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086Minimum and Maximum Modes of microprocessor 8086
Minimum and Maximum Modes of microprocessor 8086
 
Call Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night StandCall Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 đŸ„” Book Your One night Stand
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 

Get out of my thread (Trabajando en diferido)