SlideShare una empresa de Scribd logo
1 de 258
Descargar para leer sin conexión
© 2013 IBM Corporation
Holly Cummins
@holly_cummins
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
?
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
I’m from IBM’s Bluemix Garage.
@holly_cummins#automationconfessions
Share yours too.
#automationconfessions
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
My team
@holly_cummins#automationconfessions
…
My team
@holly_cummins#automationconfessions
Can that be
automated?…
My team
@holly_cummins#automationconfessions
Andrew Holly
Last autumn.
@holly_cummins#automationconfessions
Holly, you need to stop
working on automating this
process.
Andrew Holly
Last autumn.
@holly_cummins#automationconfessions
But why?!
Holly, you need to stop
working on automating this
process.
Andrew Holly
Last autumn.
@holly_cummins#automationconfessions
But why?!
Holly, you need to stop
working on automating this
process.
The contract
finished last week.
We’re not working for
that client anymore.
Andrew Holly
Last autumn.
@holly_cummins#automationconfessions
But why?!
Holly, you need to stop
working on automating this
process.
The contract
finished last week.
We’re not working for
that client anymore.
But … there’s
stuff still to automate.
Andrew Holly
Last autumn.
@holly_cummins#automationconfessions
Alasdair
@holly_cummins#automationconfessions
Look at my cool solution!
Alasdair
@holly_cummins#automationconfessions
Look at my cool solution!Holly, I give you all the
worst jobs.
Alasdair
@holly_cummins#automationconfessions
Look at my cool solution!Holly, I give you all the
worst jobs.
?!
Why??
Alasdair
@holly_cummins#automationconfessions
Look at my cool solution!Holly, I give you all the
worst jobs.
I know you’ll automate
them.
?!
Why??
Alasdair
@holly_cummins#automationconfessions
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
1941
Electromechanical Computer
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
1941
Electromechanical Computer
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
1941
Electromechanical Computer
Chef
2012
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
1941
Electromechanical Computer
Chef
2012
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
1941
Electromechanical Computer
Chef
2012
Docker
2014
It’s not just me.
@holly_cummins#automationconfessions
[Human history has been slightly simplified. Timeline is not to scale.]
1764
Spinning Jenny
Washing Machine
1858
1941
Electromechanical Computer
Chef
2012
More and more is
automated.
Docker
2014
It’s not just me.
@holly_cummins#automationconfessions
So are we living the dream?
@holly_cummins#automationconfessions
So are we living the dream?
Well. Not quite.
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
Yes, that’s all the exact same image.
@holly_cummins#automationconfessions
Why automate?
Automate because we are lazy
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
My manager
@holly_cummins#automationconfessions
“Sustainable”
My manager
@holly_cummins#automationconfessions
Automate for sustainability
Automate for efficiency
“Sustainable”
My manager
@holly_cummins#automationconfessions
If it’s boring,
automate it.
@holly_cummins#automationconfessions
Server farms
@holly_cummins#automationconfessions
Server farms
@holly_cummins#automationconfessions
Server farms
Treat your servers like cattle, not like pets.
@holly_cummins#automationconfessions
Scale
The more of you
there are, the more
you need to invest
in automation
@holly_cummins#automationconfessions
Do a task once.
Do it a second time and take notes.
Do it a third time, automate.
@holly_cummins#automationconfessions
Why Automate?
@holly_cummins#automationconfessions
Why Automate?
@holly_cummins#automationconfessions
Automate
because you
care
Why Automate?
@holly_cummins#automationconfessions
If you care about
it, automate it.
@holly_cummins#automationconfessions
Automate
because you
care that it
happens at
all
Why Automate?
@holly_cummins#automationconfessions
Automate
because you
care that it
happens at
all
Why Automate?
@holly_cummins#automationconfessions
Marvin
@holly_cummins#automationconfessions
Marvin
Build breaks (including
test failures) should be
reverted from the stream.
@holly_cummins#automationconfessions
Marvin
Build breaks (including
test failures) should be
reverted from the stream.
No one wanted to be the
one who did it.
@holly_cummins#automationconfessions
Marvin
Build breaks (including
test failures) should be
reverted from the stream.
No one wanted to be the
one who did it.
It didn’t happen.
@holly_cummins#automationconfessions
Marvin
Build breaks (including
test failures) should be
reverted from the stream.
No one wanted to be the
one who did it.
It didn’t happen.
Solution: Automate!
@holly_cummins#automationconfessions
Marvin
Build breaks (including
test failures) should be
reverted from the stream.
No one wanted to be the
one who did it.
It didn’t happen.
Solution: Automate!
@holly_cummins#automationconfessions
End of iteration demos
@holly_cummins#automationconfessions
End of iteration demos
Automatic generation
on story close
Automating to improve
the outcome rather
than to save effort.
Automating to improve
the outcome rather
than to save effort.
• Write the Rational Team Concert plugin
(one-off)
Automating to improve
the outcome rather
than to save effort.
• Write the Rational Team Concert plugin
(one-off)
• Close the demo task (every story)
Automating to improve
the outcome rather
than to save effort.
• Write the Rational Team Concert plugin
(one-off)
• Close the demo task (every story)
• Actually do the demo (every story)
Automating to improve
the outcome rather
than to save effort.
• Write the Rational Team Concert plugin
(one-off)
• Close the demo task (every story)
• Actually do the demo (every story)
• But … we get guaranteed demos now.
@holly_cummins#automationconfessions
Automate
because you
care that it’s
done right
Why Automate?
@holly_cummins#automationconfessions
Automate
because you
care that it’s
done right
Why Automate?
@holly_cummins#automationconfessions
Linting
@holly_cummins#automationconfessions
A computer can notice problems that a human
can’t (like misspelled variable names)
Linting
@holly_cummins#automationconfessions
A computer can notice problems that a human
can’t (like misspelled variable names)
Linting
FindbugsWe
@holly_cummins#automationconfessions
Deployment
@holly_cummins#automationconfessions
Deployment
@holly_cummins#automationconfessions
Deployment
Should be easy, right?
@holly_cummins#automationconfessions
Deployment
Should be easy, right?
Always one step that
gets forgotten …
@holly_cummins#automationconfessions
Swapping a Watson Service
@holly_cummins#automationconfessions
Swapping a Watson Service
{
"name": "nlc-classifiers",
"credentials": {
"classifiers":[
{"classifier_id":"004a12x110-nlc-922","includes":[null],"excludes":null},
{"classifier_id":"e82f62x108-nlc-2895","includes":[null],"excludes":null},
{"classifier_id":"e3ca6dx107-nlc-3412","includes":[null],"excludes":null},
{"classifier_id":"e3ca6dx107-nlc-3413","includes":["AAA"],"excludes":null},
{"classifier_id":"8aff06x106-nlc-11119","includes":["EEE"],"excludes":["BRD","FRP"]},
{"classifier_id":"e82f62x108-nlc-2896","includes":["XYZ","ABC"],"excludes":null},
{"classifier_id":"0877dax111-nlc-558","includes":["WWW","SSS","YYY","FFF"],"excludes":null},
{"classifier_id":"8aff06x106-nlc-11121","includes":["BBB"],"excludes":null}
] }}
@holly_cummins#automationconfessions
Swapping a Watson Service
{
"name": "nlc-classifiers",
"credentials": {
"classifiers":[
{"classifier_id":"004a12x110-nlc-922","includes":[null],"excludes":null},
{"classifier_id":"e82f62x108-nlc-2895","includes":[null],"excludes":null},
{"classifier_id":"e3ca6dx107-nlc-3412","includes":[null],"excludes":null},
{"classifier_id":"e3ca6dx107-nlc-3413","includes":["AAA"],"excludes":null},
{"classifier_id":"8aff06x106-nlc-11119","includes":["EEE"],"excludes":["BRD","FRP"]},
{"classifier_id":"e82f62x108-nlc-2896","includes":["XYZ","ABC"],"excludes":null},
{"classifier_id":"0877dax111-nlc-558","includes":["WWW","SSS","YYY","FFF"],"excludes":null},
{"classifier_id":"8aff06x106-nlc-11121","includes":["BBB"],"excludes":null}
] }}
3 configuration
errors in one
week. Oops.
Why automate?
Why automate?
Automate
because
it’s fun
Why automate?
Why not
automate?
Ross
Why not
automate?
I get so mad at
how much time I
could save if I had
more time.
Ross
Why not
automate?
I get so mad at
how much time I
could save if I had
more time.
Ross
Ross’s bootstraps
Why not
automate?
I get so mad at
how much time I
could save if I had
more time.
The
automation
paradox
Ross
Ross’s bootstraps
@holly_cummins#automationconfessions
Fixing a classpath
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
Fixing 26 classpaths
@holly_cummins#automationconfessions
Fixing 26 classpaths
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
find something | exec something {} + ; ?!
@holly_cummins#automationconfessions
find something | exec something {} + ; ?!
for … then sed something; mv $i.bak $i; …
@holly_cummins#automationconfessions
find something | exec something {} + ; ?!
for … then sed something; mv $i.bak $i; …
sedder.sh and dosed.sh and … ?
@holly_cummins#automationconfessions
find something | exec something {} + ; ?!
for … then sed something; mv $i.bak $i; …
sedder.sh and dosed.sh and … ?
perl … um .. something?
@holly_cummins#automationconfessions
find something | exec something {} + ; ?!
for … then sed something; mv $i.bak $i; …
sedder.sh and dosed.sh and … ?
perl … um .. something?
@holly_cummins#automationconfessions
Me Kate, our new graduate
@holly_cummins#automationconfessions
Kate, could you please fix
these classpaths?
Me Kate, our new graduate
@holly_cummins#automationconfessions
Sure, Holly!
Kate, could you please fix
these classpaths?
Me Kate, our new graduate
@holly_cummins#automationconfessions
Epilogue
perl -pi -w -e 's/SEARCH_FOR/REPLACE_WITH/g;' *.txt
thanks (for everything!), xkcd.com
Why not
automate
The Dream
Super-
helpful
automation
automaton
The Reality
The Reality
The Reality
Think about
support.
The Reality
Think about
support.
Think about
robustness.
@holly_cummins#automationconfessions
Rosie
@holly_cummins#automationconfessions
Rosie
ate the
world.
@holly_cummins#automationconfessions
Rosie
ate the
world.
(Well, my corner of it.)
@holly_cummins#automationconfessions
Give hefty automations
adorable names
@holly_cummins#automationconfessions
Questions to ask before
automating
@holly_cummins#automationconfessions
Questions to ask before
automatingWho can
maintain this
automation?
@holly_cummins#automationconfessions
Questions to ask before
automatingWho can
maintain this
automation?
Who can
manage this
automation?
@holly_cummins#automationconfessions
Questions to ask before
automatingWho can
maintain this
automation?
Who can
manage this
automation?
How much
will it cost?
@holly_cummins#automationconfessions
Questions to ask before
automatingWho can
maintain this
automation?
Who can
manage this
automation?
How much
will it cost?
Will it be
robust? What if
things
change?
@holly_cummins#automationconfessions
Checkpoint during
automation
@holly_cummins#automationconfessions
Checkpoint during
automationHow do I
define
success?
@holly_cummins#automationconfessions
Checkpoint during
automationHow do I
define
success?
Have I got
completion
criteria?
@holly_cummins#automationconfessions
Checkpoint during
automationHow do I
define
success?
Have I got
completion
criteria?
Am I still
saving
time?
@holly_cummins#automationconfessions
Checkpoint during
automationHow do I
define
success?
Have I got
completion
criteria?
Am I still
saving
time?
Is this still
worth it?
@holly_cummins#automationconfessions
Don’t Lose Your
Perspective.
@holly_cummins#automationconfessions
Remember the bus
@holly_cummins#automationconfessions
Remember the bus
A clever automation isn’t so clever if
only one person understands it…
@holly_cummins#automationconfessions
Remember the bus
A clever automation isn’t so clever if
only one person understands it…
@holly_cummins#automationconfessions
Remember the bus
A clever automation isn’t so clever if
only one person understands it…
… and they get hit by a bus.
@holly_cummins#automationconfessions
Why not automate
@holly_cummins#automationconfessions
Why not automate
Should I automate this
process…
@holly_cummins#automationconfessions
Why not automate
Should I automate this
process…
… or should I change it?
The dumbness problem
The dumbness problem
It’s dumb to automate dumb things …
The dumbness problem
It’s dumb to automate dumb things …
… and …
The dumbness problem
It’s dumb to automate dumb things …
… and …
… Automation allows you to do dumb
things at a greater speed
@holly_cummins#automationconfessions
Defect screening
@holly_cummins#automationconfessions
Ask questions before
automatically automating
things which don’t
actually need to be done.
Why not automate
Why not automate
Why not automate
Computers
don’t
always get
it right.
https://www.youtube.com/watch?v=hulnz902gWo
@holly_cummins#automationconfessions
Build monitoring
DevOps
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
What is DevOps?
@holly_cummins#automationconfessions
Old way
@holly_cummins#automationconfessions
Old way
@holly_cummins#automationconfessions
Old way
@holly_cummins#automationconfessions
Old way
@holly_cummins#automationconfessions
Old way
People who break
stuff
@holly_cummins#automationconfessions
Old way
People who break
stuff
“developers”
@holly_cummins#automationconfessions
Old way
People who break
stuff
“developers”
People who deal
with
consequences
@holly_cummins#automationconfessions
Old way
People who break
stuff
“developers”
People who deal
with
consequences
“ops team”
@holly_cummins#automationconfessions
Old way
People who break
stuff
“developers”
People who deal
with
consequences
“ops team”
@holly_cummins#automationconfessions
Old way
People who break
stuff
“developers”
People who deal
with
consequences
“ops team”
@holly_cummins#automationconfessions
Old way
People who break
stuff
“developers”
People who deal
with
consequences
“ops team”
@holly_cummins#automationconfessions
New way
People who break
stuff
“dev
People who deal
with
consequences
“ops team”elopers”
@holly_cummins#automationconfessions
New way
People who break
stuff
“dev
People who deal
with
consequences
“ops team”elopers”
@holly_cummins#automationconfessions
New way
People who break
stuff
“dev
People who deal
with
consequences
ops team”
@holly_cummins#automationconfessions
New way
“dev ops team”
People who break
stuff and deal with
consequences
@holly_cummins#automationconfessions
New way
“dev ops team”
People who break
stuff and deal with
consequences
less
@holly_cummins#automationconfessions
New way
“dev ops team”
People who break
stuff and deal with
consequences
less
What is DevOps?
What is DevOps?
Automation
What is DevOps?
Automation
100%
What DevOps is not
What DevOps is not
A job title
What DevOps is not
A job title for the IT department
What DevOps is not
A job title for the IT department
A criteria for chatting up job candidates on a train
What DevOps is not
A job title for the IT department
The only reason to automate
A criteria for chatting up job candidates on a train
@holly_cummins#automationconfessions
How to automate
@holly_cummins#automationconfessions
How to automate
It depends.
What are you
automating?
What can we automate?
What can we automate?
Delivery pipeline
What can we automate?
Push Test Live
Delivery pipeline
Code
What can we automate?
Push Test Live
Delivery pipeline
Code
What can we automate?
What can we automate?
Infrastructure
What can we automate?
Infrastructure should be code.
What can we automate?
Infrastructure should be code.
What can we automate?
Machine configuration
Infrastructure should be code.
What can we automate?
Machine configuration
Servers
Infrastructure should be code.
What can we automate?
Machine configuration
Servers
Test environments
Infrastructure should be code.
What can we automate?
Machine configuration
Servers
Test environments
….
Infrastructure should be code.
What can we automate?
What can we automate?
Some Tests
What can we automate?
Some Tests
What can we automate?
Some Tests
What can we automate?
What can we automate?
Automatically
generated
What can we automate?
Automatically
generated
What can we automate?
Automatically
generated
What can we automate?
Formatting: the most controversial
thing one can automate.
Automatically
generated
What can we automate?
What can we automate?
Copyright statements
What can we automate?
Copyright statements
Maybe.
(The second most controversial thing one can automate.)
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
Tools
(an incomplete list)
@holly_cummins#automationconfessions
Tools
(an incomplete list)
@holly_cummins#automationconfessions
Tools
(an incomplete list)
Shell scripts
@holly_cummins#automationconfessions
Tools
(an incomplete list)
Shell scripts
sed
@holly_cummins#automationconfessions
Tools
(an incomplete list)
Shell scripts
sed
awk
@holly_cummins#automationconfessions
Scripting
python
ruby
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
#!/usr/bin/env node
const path = require('path');
const fs = require('fs');
const cp = require('cp');
if (process.argv.length < 3) {
console.log("Usage: usefulScript something somethingElse");
process.exit(1);
}
// Do something useful
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Jenkins
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Jenkins
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Jenkins
Travis
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Jenkins
Travis
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Jenkins
Travis
Rational Team Concert
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Jenkins
Travis
Rational Team Concert
Bluemix Build and Deploy
@holly_cummins#automationconfessions
Tools
(yep, still an incomplete list)
@holly_cummins#automationconfessions
Tools
(yep, still an incomplete list)
Chef
@holly_cummins#automationconfessions
Tools
(yep, still an incomplete list)
Chef
Puppet
@holly_cummins#automationconfessions
Tools
(yep, still an incomplete list)
Chef
Puppet
sprout-wrap
@holly_cummins#automationconfessions
Tools
(you’ll never guess - still an incomplete list)
@holly_cummins#automationconfessions
Tools
(you’ll never guess - still an incomplete list)
@holly_cummins#automationconfessions
Tools
(you’ll never guess - still an incomplete list)
Docker, VMWare, and Vagrant images
@holly_cummins#automationconfessions
It doesn’t have to be fancy
@holly_cummins#automationconfessions
It doesn’t have to be fancy
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
An ant.
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
An ant.Not a reindeer.
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
An ant.Not a reindeer.
Ant
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
An ant.Not a reindeer.
Ant
Maven
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
An ant.Not a reindeer.
Ant
Maven
Gradle
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
An ant.Not a reindeer.
Ant
Maven
Gradle
Non-Java build tools I don’t know :)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Plugins
Tasks
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Know your build tool.
Plugins
Tasks
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Know your build tool.
Extend your build tool.
Plugins
Tasks
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Know your build tool.
Extend your build tool.
Plugins
Tasks
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Chat
integrations
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Eclipse plugins
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Apps
@holly_cummins#automationconfessions
Tools
(still an incomplete list)
Apps
(If a UI is involved, proceed with caution)
@holly_cummins#automationconfessions
Rolling your own
@holly_cummins#automationconfessions
Rolling your own
Beware not-invented-here
@holly_cummins#automationconfessions
Rolling your own
Beware not-invented-here
Are you sure no one else has done this?
@holly_cummins#automationconfessions
Rolling your own
Beware not-invented-here
Are you sure no one else has done this?
If not, maybe there’s a good reason?
@holly_cummins#automationconfessions
Rolling your own
Beware not-invented-here
Are you sure no one else has done this?
If not, maybe there’s a good reason?
Beware fun
@holly_cummins#automationconfessions
Rolling your own
Beware not-invented-here
Are you sure no one else has done this?
If not, maybe there’s a good reason?
Beware fun
But do innovate (and have fun)
@holly_cummins#automationconfessions
Finally …
@holly_cummins#automationconfessions
Finally …
Aren’t we lucky to
have careers where
automation is not just
allowed, but
encouraged?
@holly_cummins#automationconfessions
Finally …
Aren’t we lucky to
have careers where
automation is not just
allowed, but
encouraged?
laziness
@holly_cummins#automationconfessions
Finally …
Aren’t we lucky to
have careers where
automation is not just
allowed, but
encouraged?
lazinessfun
@holly_cummins#automationconfessions
@holly_cummins#automationconfessions
Any
Questions?
@holly_cummins
www.bluemix.net
www.wasdev.net

Más contenido relacionado

Más de Holly Cummins

The Importance of Fun in the Workplace (late 2019)
The Importance of Fun in the Workplace (late 2019)The Importance of Fun in the Workplace (late 2019)
The Importance of Fun in the Workplace (late 2019)Holly Cummins
 
People, Planet, Clouds
People, Planet, CloudsPeople, Planet, Clouds
People, Planet, CloudsHolly Cummins
 
Java Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageJava Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageHolly Cummins
 
Tales from the devops transformation trenches
Tales from the devops transformation trenchesTales from the devops transformation trenches
Tales from the devops transformation trenchesHolly Cummins
 
The Importance of Fun in the Workplace (2019)
The Importance of Fun in the Workplace (2019)The Importance of Fun in the Workplace (2019)
The Importance of Fun in the Workplace (2019)Holly Cummins
 
Six Myths and Paradoxes of Garbage Collection
Six Myths and Paradoxes of Garbage Collection Six Myths and Paradoxes of Garbage Collection
Six Myths and Paradoxes of Garbage Collection Holly Cummins
 
Cloudy with a Chance of Meatballs: Cloud Surprises for the Java Developer
Cloudy with a Chance of Meatballs: Cloud Surprises for the Java DeveloperCloudy with a Chance of Meatballs: Cloud Surprises for the Java Developer
Cloudy with a Chance of Meatballs: Cloud Surprises for the Java DeveloperHolly Cummins
 
So You Say You Want a Chatbot Revolution
So You Say You Want a Chatbot RevolutionSo You Say You Want a Chatbot Revolution
So You Say You Want a Chatbot RevolutionHolly Cummins
 
Java performance - not so scary after all
Java performance - not so scary after allJava performance - not so scary after all
Java performance - not so scary after allHolly Cummins
 
OSGi and the Enterprise - A match made in a ... box?
OSGi and the Enterprise - A match made in a ... box?OSGi and the Enterprise - A match made in a ... box?
OSGi and the Enterprise - A match made in a ... box?Holly Cummins
 
Innovation Stories from the Bluemix Garage
Innovation Stories from the Bluemix GarageInnovation Stories from the Bluemix Garage
Innovation Stories from the Bluemix GarageHolly Cummins
 
Thinking Strategically About IoT
Thinking Strategically About IoTThinking Strategically About IoT
Thinking Strategically About IoTHolly Cummins
 
Software Developers Guide to Fun in the Workplace: Euphoria Despite the Despair
Software Developers Guide to Fun in the Workplace: Euphoria Despite the DespairSoftware Developers Guide to Fun in the Workplace: Euphoria Despite the Despair
Software Developers Guide to Fun in the Workplace: Euphoria Despite the DespairHolly Cummins
 
An Arduino, an application, server, and me
An Arduino, an application, server, and meAn Arduino, an application, server, and me
An Arduino, an application, server, and meHolly Cummins
 
Building Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cablesBuilding Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cablesHolly Cummins
 
Microservices: from dream to reality in an hour
Microservices: from dream to reality in an hourMicroservices: from dream to reality in an hour
Microservices: from dream to reality in an hourHolly Cummins
 

Más de Holly Cummins (16)

The Importance of Fun in the Workplace (late 2019)
The Importance of Fun in the Workplace (late 2019)The Importance of Fun in the Workplace (late 2019)
The Importance of Fun in the Workplace (late 2019)
 
People, Planet, Clouds
People, Planet, CloudsPeople, Planet, Clouds
People, Planet, Clouds
 
Java Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM GarageJava Application Modernization Patterns and Stories from the IBM Garage
Java Application Modernization Patterns and Stories from the IBM Garage
 
Tales from the devops transformation trenches
Tales from the devops transformation trenchesTales from the devops transformation trenches
Tales from the devops transformation trenches
 
The Importance of Fun in the Workplace (2019)
The Importance of Fun in the Workplace (2019)The Importance of Fun in the Workplace (2019)
The Importance of Fun in the Workplace (2019)
 
Six Myths and Paradoxes of Garbage Collection
Six Myths and Paradoxes of Garbage Collection Six Myths and Paradoxes of Garbage Collection
Six Myths and Paradoxes of Garbage Collection
 
Cloudy with a Chance of Meatballs: Cloud Surprises for the Java Developer
Cloudy with a Chance of Meatballs: Cloud Surprises for the Java DeveloperCloudy with a Chance of Meatballs: Cloud Surprises for the Java Developer
Cloudy with a Chance of Meatballs: Cloud Surprises for the Java Developer
 
So You Say You Want a Chatbot Revolution
So You Say You Want a Chatbot RevolutionSo You Say You Want a Chatbot Revolution
So You Say You Want a Chatbot Revolution
 
Java performance - not so scary after all
Java performance - not so scary after allJava performance - not so scary after all
Java performance - not so scary after all
 
OSGi and the Enterprise - A match made in a ... box?
OSGi and the Enterprise - A match made in a ... box?OSGi and the Enterprise - A match made in a ... box?
OSGi and the Enterprise - A match made in a ... box?
 
Innovation Stories from the Bluemix Garage
Innovation Stories from the Bluemix GarageInnovation Stories from the Bluemix Garage
Innovation Stories from the Bluemix Garage
 
Thinking Strategically About IoT
Thinking Strategically About IoTThinking Strategically About IoT
Thinking Strategically About IoT
 
Software Developers Guide to Fun in the Workplace: Euphoria Despite the Despair
Software Developers Guide to Fun in the Workplace: Euphoria Despite the DespairSoftware Developers Guide to Fun in the Workplace: Euphoria Despite the Despair
Software Developers Guide to Fun in the Workplace: Euphoria Despite the Despair
 
An Arduino, an application, server, and me
An Arduino, an application, server, and meAn Arduino, an application, server, and me
An Arduino, an application, server, and me
 
Building Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cablesBuilding Stuff for Fun and Profit - confessions from a life in code and cables
Building Stuff for Fun and Profit - confessions from a life in code and cables
 
Microservices: from dream to reality in an hour
Microservices: from dream to reality in an hourMicroservices: from dream to reality in an hour
Microservices: from dream to reality in an hour
 

Último

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 

Último (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 

Confessions of an Automation Addict