SlideShare a Scribd company logo
1 of 70
Download to read offline
Lambdas:
Myths and
Mistakes
by Richard Warburton
the critical design tool for software
development is a mind well educated in
design principles. It is not ... technology.
Craig Larman
Who am I?
Currently work at jClarity
Focus on Performance Tuning
Adopt a JSR (Date and Time + Lambdas)
Impending O'Reilly book on Lambda
Expressions in Java 8.
Talk Structure
Why am I talking about this?
Intro to Lambda Expressions
Beyond the Myths
Functional Thinking
Why am I
talking about
this?
Lambda Expressions are
coming in Java 8!
lots of discussion/debate
How can we help?
Adopt-a-JSR
Adopt-a-JSR?
More community driven standards
Hackdays
Serve on Expert Groups
Some discussion
unimportant
Concrete Examples focus discussion
Intro to
Lambda
Expressions
Overview of Lambdas
Goal: Better Libraries
Example: Collections with Data
Parallelism
Approach: Allow Code as Data
Action Listener
bto.dAtoLsee(e AtoLsee( {
utnadcinitnrnw cinitnr)
pbi vi atoPromdAtoEeteet {
ulc od cinefre(cinvn vn)
Sse.u.rnl(bto cikd)
ytmotpitn"utn lce";
}
};
)
Code as Data
bto.dAtoLsee(
utnadcinitnr
?
)
;
Need a parameter
bto.dAtoLsee(vn
utnadcinitnreet
)
;
Lambda Example
bto.dAtoLsee(vn utnadcinitnreet >
Sse.u.rnl(bto cikd)
ytmotpitn"utn lce"
)
;
No parameters
Rnal hlool =
unbe elWrd
( - Sse.u.rnl(HloWrd)
) > ytmotpitn"el ol";
Variable Capture
Srn nm =gtsrae)
tig ae
eUeNm(;
bto.dAtoLsee(vn utnadcinitnreet >
Sse.u.rnl(h "+nm)
ytmotpitn"i
ae
)
;
Functional Interfaces
Everything in Java has a type
Problem: Need types to represent
Functions
Solution: Use interfaces
Functional Interfaces
pbi itraeAtoLsee etnsEetitnr{
ulc nefc cinitnr xed vnLsee
pbi vi atoPromdAtoEeteet;
ulc od cinefre(cinvn vn)
}
Streams
Support automated data parallelism
Build computation pipelines
Iterator with inversion of control
External Iteration
itcut=0
n on
;
fr(ritats :atss {
o Ats rit
rit)
i (ritiFo(Lno"){
f ats.srm"odn)
cut+
on+;
}
}
Internal Iteration
atsssra(
rit.tem)
.itrats - ats.srm"odn)
fle(rit > ritiFo(Lno")
.on(;
cut)
map
map
Ls<tig cletd=Sra.f"" "" "el"
itSrn> olce
temo(a, b, hlo)
.a(tig- srn.opeCs()
mpsrn > tigtUprae)
.olc(oit);
clettLs()
asrEul(sit"" "" "EL",cletd;
setqasaLs(A, B, HLO) olce)
reduce
reduce
itsm=Sra.f1 2 3 4
n u
temo(, , , )
.eue0 (c,x - ac+x;
rdc(, ac ) > c
)
asrEul(0 sm;
setqas1, u)
filter
filter
Ls<tig bgnigihubr =
itSrn> einnWtNmes
Sra.f"" "ac,"b1)
temo(a, 1b" ac"
.itrvle- iDgtvlecaA())
fle(au > sii(au.hrt0)
.olc(oit);
clettLs()
asrEul(sit"ac) bgnigihubr)
setqasaLs(1b", einnWtNmes;
Putting it all together
for a given an album, find the nationality of every band
playing on that album
Putting it all together (2)
1. transform an album into its artists
2. figure out which artists are bands
3. find the nationalities of each band
Putting it all together (3)
Ls<tig oiis=
itSrn> rgn
abmgtuiin(
lu.eMscas)
.itrats - ats.eNm(.trsih"h")
fle(rit > ritgtae)satWt(Te)
.a(rit- ats.eNtoaiy)
mpats > ritgtainlt()
.olc(oit);
clettLs()
Method References
sr- srlnt
t > t.egh
Srn:lnt
tig:egh
x- fobrx
> o.a()
fo:a
o:br
sr- nwNm(t)
t > e aesr
Nm:nw
ae:e
Beyond the
Myths
Claim: Syntax is the most
important thing about
Lambda Expressions
Yeah, I liked the # syntax proposal better,
too. One less character to type! :)
Have you considered 'default null'? It will
save a keyword
How about a single punctuation mark,
currently unused, as syntax sugar for "()>".
(_, _) -> _ + _
This is starting to look like risque ASCII art
:)
Its a Myth!
Claim: Syntax is irrelevant
/ Oiial ivld
/ rgnly nai
Sra.f1 2 3
temo(, , )
.oEc( - Sse.u.rnl();
frahx > ytmotpitnx)
/ Rqie eta;
/ eurd xr
Sra.f1 2 3
temo(, , )
.oEc( - Sse.u.rnl())
frahx > ytmotpitnx;;
Difference between
expectations
Many language features stolen! adapted
Missing Features
Stronger Type System
Tuples
List construction syntax
Framing Effect
Different reactions depending on whether something is
presented as a loss or a gain.
Recall our earlier example
Ls<tig oiis=
itSrn> rgn
abmgtuiin(
lu.eMscas)
.itrats - ats.eNm(.trsih"h")
fle(rit > ritgtae)satWt(Te)
.a(rit- ats.eNtoaiy)
mpats > ritgtainlt()
.olc(oit);
clettLs()
Eager vs Lazy (2)
abmgtuiin(
lu.eMscas)
.itrats - ats.eNm(.trsih"h")
fle(rit > ritgtae)satWt(Te)
.a(rit- ats.eNtoaiy)
mpats > ritgtainlt()
/ Wa' hpee?
/ hts apnd
.olc(oit);
clettLs()
Very little Testing
Maybe ...

a reflection on popularity of TDD
spikes are good for learning
unfamiliarity with testing lambdas
How do I test this?
ls.tem)
itsra(
.a( - 10/Mt.el1+Mt.o()+Mt.tn(,x)
mpx > .
ahci(
ahpwx
ahaa2y ))
.olc(oit);
clettLs()
Approach 1: Test
surrounding method
Don't test the lambda
Test the method its surrounded by
Works well for simple lambdas
Approach 2: Extract
Method
dul cmlxucindul x {
obe opeFnto(obe )
rtr 10/Mt.el1+Mt.o()+Mt.tn(,x)
eun .
ahci(
ahpwx
ahaa20 );
}
ls.tem)
itsra(
.a(hs:opeFnto)
mpti:cmlxucin
.olc(oit);
clettLs()
Mistake: debugging
/ Sras
/ tem
ls.tem)
itsra(
.itrfleigucin
fle(itrnFnto)
.a(apnFnto)
mpmpigucin
.olc(oit);
clettLs()
/ Y od frlo
/ e le o op
Ls<a>br =nwAryit>)
itBr as
e raLs<(;
fr(o eeet:ls){
o Fo lmn
it
i (itrnFnto(lmn){
f fleigucineeet
Brrsl =mpigucineeet;
a eut
apnFnto(lmn)
br.d(eut;
asadrsl)
}
}
peek
ls.tem)
itsra(
.itrfleigucin
fle(itrnFnto)
.eke- Sse.u.rnl(Flee vle "+e)
pe( > ytmotpitn"itrd au:
);
.a(apnFnto)
mpmpigucin
.a( - e;
mpe > )
.olc(oit);
clettLs()
Compiler Error Messages
Comparators
Cmaao<tig cmaao =cmaigSrn:lnt)
oprtrSrn> oprtr
oprn(tig:egh;
Cmaao<tig cmaao =cmaigsr- srlnt)
oprtrSrn> oprtr
oprn(t > t.egh;
Compiler Error
jv:rfrnet cmaigi abgosbt
aa eeec o oprn s miuu oh
mto
ehd
<>oprn(aaui.ucinTItucin ?sprT)
Tcmaigjv.tlfnto.onFnto<
ue >
i jv.tlCmaao admto
n aaui.oprtr n ehd
<,>oprn(aaui.ucinFnto<?sprT?etnsU)
TUcmaigjv.tlfnto.ucin
ue , xed >
i jv.tlCmaao mth
n aaui.oprtr ac
What happened?
/ Gnrcojc vrat
/ eei bet ain
pbi sai <,UetnsCmaal<?sprU>
ulc ttc T
xed oprbe
ue >
Cmaao<>
oprtrT
cmaigFnto<?sprT ?etnsU kyxrco)
oprn(ucin
ue ,
xed > eEtatr
/ Seilsdpiiievrat
/ pcaie rmtv ain
pbi sai <>
ulc ttc T
Cmaao<>
oprtrT
cmaigTItucin ?sprT kyxrco)
oprn(onFnto<
ue > eEtatr
Summary
Syntax important, but not in the way
people think
New approaches for debugging and
testing
Take care of overloads and compiler
error messages
Functional
Thinking
Functional
Thinking?

Thinking in terms of the input to output relationship and
not a sequence of steps
First code that people
write
Ls<nee>nmes=Ary.sit1 2 3;
itItgr ubr
rasaLs(, , )
nmesfrahx- {
ubr.oEc( >
Sse.u.rnl()
ytmotpitnx;
};
)
Non-idiomatic Proposals
Eg: capture non-final local variables
Example Problem
Count the number of instances of each word in a
document.
Ideal Solution
rae.ie(
edrlns)
.lta( - ssltstem"")
faMps > .piASra( )
.olc(ruigys- s
cletgopnB( > ,
cutn();
onig))
Ideal Solution (then)
rae.ie(
edrlns)
.lta( - Sra.fsslt"")
faMps > temo(.pi( ))
.olc(ruigys- s
cletgopnB( > ,
rdcn( - 1 Itgr:u))
euigs > , nee:sm);
/ Mpetisfr"a"
/ a nre o dd
/ ["a" "a" "a"]= [,1 1 = 3
/
dd, dd, dd
> 1 , ] >
Bad Solution (Part 1)
MpSrn,Ls<tig>iiil
a<tig itSrn> nta
=b.ie(
rlns)
.lta( - Ary.temsslt"")
faMps > rassra(.pi( ))
.olc(ruigys- s)
cletgopnB( > );
MpMpEtySrn,Itgr,Itgr fe1=iiil
a<a.nr<tig nee> nee> rq
nta
.nrSt)sra(
etye(.tem)
.a(nr - nwAsrcMpSmlImtbenr<tig
mpety > e btata.ipemualEtySrn,
Itgr(nr.eKy) etygtau(.ie))
nee>etygte(, nr.eVle)sz()
.olc(olcostMpety- etygtau();
cletCletr.oa(nr > nr.eVle))
Bad Solution (Part 2)
Sple<aha<tig Itgr>sple =( - nw
upirHsMpSrn, nee> upir
) > e
HsMpSrn,Itgr(;
aha<tig nee>)
BCnue<aha<tig Itgr,MpEtySrn,Itgr>acm=
iosmrHsMpSrn, nee> a.nr<tig nee> cu
(aha<tig Itgr rsl,MpEtySrn,Itgr
HsMpSrn, nee> eut a.nr<tig nee>
ety - rsl.u(nr.eKy) etygtau()
nr) > eutptetygte(, nr.eVle);
BCnue<aha<tig Itgr,HsMpSrn,Itgr>
iosmrHsMpSrn, nee> aha<tig nee>
mre =HsMp:uAl
egr
aha:ptl;
MpSrn,Itgr fe2=iiiletye(.tem)
a<tig nee> rq
nta.nrSt)sra(
.a(nr - nwAsrcMpSmlImtbenr<tig
mpety > e btata.ipemualEtySrn,
Itgr(nr.eKy) etygtau(.ie))
nee>etygte(, nr.eVle)sz()
.olc(upir acm mre)
cletsple, cu, egr;
This takes thought
Summary
Idioms are vital
Not Java specific at all
Requires Practise
Conclusions
Gone through a bunch of examples of
specific issues
‘Functional Thinking’: Not necessary to
start learning.
Try before you buy
Questions?
@RichardWarburto
http://jclarity.com
http://insightfullogic.com
https://github.com/RichardWarburton/

More Related Content

Viewers also liked

Legal and ethical considerations redone
Legal and ethical considerations   redoneLegal and ethical considerations   redone
Legal and ethical considerations redone
Nicole174
 
45 second video proposal
45 second video proposal45 second video proposal
45 second video proposal
Nicole174
 
Interactive media applications
Interactive media applicationsInteractive media applications
Interactive media applications
Nicole174
 

Viewers also liked (20)

Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
 
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)
Real-world polyglot programming on the JVM  - Ben Summers (ONEIS)Real-world polyglot programming on the JVM  - Ben Summers (ONEIS)
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)
 
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
 
Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)
 
Legal and ethical considerations redone
Legal and ethical considerations   redoneLegal and ethical considerations   redone
Legal and ethical considerations redone
 
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
 
Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)
 
Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
 
What You Need to Know About Lambdas - Jamie Allen (Typesafe)
What You Need to Know About Lambdas - Jamie Allen (Typesafe)What You Need to Know About Lambdas - Jamie Allen (Typesafe)
What You Need to Know About Lambdas - Jamie Allen (Typesafe)
 
How Windows 10 will change the way we use devices
How Windows 10 will change the way we use devicesHow Windows 10 will change the way we use devices
How Windows 10 will change the way we use devices
 
Bringing your app to the web with Dart - Chris Buckett (Entity Group)
Bringing your app to the web with Dart - Chris Buckett (Entity Group)Bringing your app to the web with Dart - Chris Buckett (Entity Group)
Bringing your app to the web with Dart - Chris Buckett (Entity Group)
 
45 second video proposal
45 second video proposal45 second video proposal
45 second video proposal
 
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
 
Streams and Things - Darach Ennis (Ubiquiti Networks)
Streams and Things - Darach Ennis (Ubiquiti Networks)Streams and Things - Darach Ennis (Ubiquiti Networks)
Streams and Things - Darach Ennis (Ubiquiti Networks)
 
Practical Performance: Understand the Performance of Your Application - Chris...
Practical Performance: Understand the Performance of Your Application - Chris...Practical Performance: Understand the Performance of Your Application - Chris...
Practical Performance: Understand the Performance of Your Application - Chris...
 
Big data from the LHC commissioning: practical lessons from big science - Sim...
Big data from the LHC commissioning: practical lessons from big science - Sim...Big data from the LHC commissioning: practical lessons from big science - Sim...
Big data from the LHC commissioning: practical lessons from big science - Sim...
 
The state of the art biorepository at ILRI
The state of the art biorepository at ILRIThe state of the art biorepository at ILRI
The state of the art biorepository at ILRI
 
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
 
Interactive media applications
Interactive media applicationsInteractive media applications
Interactive media applications
 
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
What makes Groovy Groovy  - Guillaume Laforge (Pivotal)What makes Groovy Groovy  - Guillaume Laforge (Pivotal)
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
 

Similar to Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)

NOSQL and Cassandra
NOSQL and CassandraNOSQL and Cassandra
NOSQL and Cassandra
rantav
 
Patterns for organic architecture codedive
Patterns for organic architecture codedivePatterns for organic architecture codedive
Patterns for organic architecture codedive
magda3695
 
Testing Fuse Fabric with Pax Exam
Testing Fuse Fabric with Pax ExamTesting Fuse Fabric with Pax Exam
Testing Fuse Fabric with Pax Exam
Henryk Konsek
 

Similar to Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity) (20)

Lambdas: Myths and Mistakes
Lambdas: Myths and MistakesLambdas: Myths and Mistakes
Lambdas: Myths and Mistakes
 
nescala 2013
nescala 2013nescala 2013
nescala 2013
 
JavaFX, because you're worth it
JavaFX, because you're worth itJavaFX, because you're worth it
JavaFX, because you're worth it
 
Java 8 - project lambda
Java 8 - project lambdaJava 8 - project lambda
Java 8 - project lambda
 
Clojurescript up and running
Clojurescript up and runningClojurescript up and running
Clojurescript up and running
 
Beginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at GoogleBeginner workshop to angularjs presentation at Google
Beginner workshop to angularjs presentation at Google
 
Introduction to Algorithms
Introduction to AlgorithmsIntroduction to Algorithms
Introduction to Algorithms
 
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail ScienceSQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
SQL is Dead; Long Live SQL: Lightweight Query Services for Long Tail Science
 
Hazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGridHazelcast - In-Memory DataGrid
Hazelcast - In-Memory DataGrid
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
 
NOSQL and Cassandra
NOSQL and CassandraNOSQL and Cassandra
NOSQL and Cassandra
 
The Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldThe Need for Async @ ScalaWorld
The Need for Async @ ScalaWorld
 
basic knowledge abot html
basic knowledge abot htmlbasic knowledge abot html
basic knowledge abot html
 
Patterns for organic architecture codedive
Patterns for organic architecture codedivePatterns for organic architecture codedive
Patterns for organic architecture codedive
 
Testing Fuse Fabric with Pax Exam
Testing Fuse Fabric with Pax ExamTesting Fuse Fabric with Pax Exam
Testing Fuse Fabric with Pax Exam
 
Learn Frontend Testing
Learn Frontend TestingLearn Frontend Testing
Learn Frontend Testing
 
Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)
 
Architecting Android Apps: Marko Gargenta
Architecting Android Apps: Marko GargentaArchitecting Android Apps: Marko Gargenta
Architecting Android Apps: Marko Gargenta
 
An Introduction to CSS Preprocessors
An Introduction to CSS PreprocessorsAn Introduction to CSS Preprocessors
An Introduction to CSS Preprocessors
 
JavaScript Design Patterns
JavaScript Design PatternsJavaScript Design Patterns
JavaScript Design Patterns
 

More from jaxLondonConference

More from jaxLondonConference (17)

Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
 
Databases and agile development - Dwight Merriman (MongoDB)
Databases and agile development - Dwight Merriman (MongoDB)Databases and agile development - Dwight Merriman (MongoDB)
Databases and agile development - Dwight Merriman (MongoDB)
 
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
 
How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)					How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)
 
Java Testing With Spock - Ken Sipe (Trexin Consulting)
Java Testing With Spock - Ken Sipe (Trexin Consulting)Java Testing With Spock - Ken Sipe (Trexin Consulting)
Java Testing With Spock - Ken Sipe (Trexin Consulting)
 
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
 
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
 
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)
 
TDD at scale - Mash Badar (UBS)
TDD at scale - Mash Badar (UBS)TDD at scale - Mash Badar (UBS)
TDD at scale - Mash Badar (UBS)
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
 
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
 
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
 
Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...
 
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
 

Recently uploaded

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)