SlideShare une entreprise Scribd logo
1  sur  258
Télécharger pour lire hors ligne
© 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

Contenu connexe

Similaire à Confessions of an Automation Addict

Similaire à Confessions of an Automation Addict (7)

Tales from the devops transformation trenches
Tales from the devops transformation trenchesTales from the devops transformation trenches
Tales from the devops transformation trenches
 
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
 
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)
 
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
 
Thinking Strategically About IoT
Thinking Strategically About IoTThinking Strategically About IoT
Thinking Strategically About IoT
 
Humpty Dumpty: A Story of DevOps Gone Wrong
Humpty Dumpty: A Story of DevOps Gone WrongHumpty Dumpty: A Story of DevOps Gone Wrong
Humpty Dumpty: A Story of DevOps Gone Wrong
 
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)
 

Plus de 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
 

Plus de Holly Cummins (10)

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
 
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
 
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
 
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
 
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
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Dernier (20)

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
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...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
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
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 

Confessions of an Automation Addict