SlideShare a Scribd company logo
1 of 18
Download to read offline
The “Transformation
Priority Premise”
Christian Hujer @christianhujer,
CEO/CTO Nelkinda Software Craft Pvt Ltd
Equal Experts at NOTHS 2015-11-25
Aliens?
N = R*
× fp
× ne
× fl
× fi
× fc
× L
R*
average rate of star formation in our galaxy
fp
fraction of stars that have planets
ne
average number of planets per star that can
potentially support life
fl
fraction of planets that actually develop life
fi
fraction of planets that develop intelligent life
fc
fraction of civilizations that develop technology
L length of time for which such civilizations
release detectable signals into space
The Drake equation
Dr. Frank Drake
The Fermi Paradox
Enrico Fermi
“Then where is
everybody?”
Speculation
How do you explain (“solve”) the Fermi
Paradox?
Speculation
● We are the only ones
● Intelligent life destroys itself
● Intelligent life destroys others
● Life is periodically destroyed by nature
● Most universes are (too) young
● Too far scattered
● Too expensive to spread through galaxy
Speculation (continued)
● We’re not around long enough
● We’re not listening properly
● Radio signals only used for brief period
● Civilizations isolate themselves
● They are too alien
● They are non-technological
● Everyone is listening, no one transmitting
Speculation (continued)
● Earth is deliberately not contacted (zoo)
● Earth is purposely isolated (planetarium)
● It is dangerous to communicate
● Self-fulfilling Fermi-Paradox
● They are undetected
● They are unacknowledged
Agenda
● Reprise: TDD - The Three Laws and the
Red-Green-Refactor Cycle
● Reprise: What is Refactoring?
● Definition: What is Transformation?
● The (current) Priority list of Transformations
● Example
Questions to Cover
● What is a Transformation?
● Why do they have Priorities?
● Why is it a Premise?
● How is it related to Refactoring and TDD?
● How can I use it? How does it help me?
The Three Laws of TDD
1. You can’t write any production code until you
first have written a failing unit test.
2. You can’t write more of a unit test than is
sufficient to fail, and not compiling is failing.
3. You can’t write more production code than is
sufficient to pass the currently failing unit
test.
The Red-Green-Refactor Cycle
Red: Write as much of test
as is sufficient to fail.
Green: Write as much of
production code as is
sufficient to pass.
Refactor: Well, refactor!
Refactoring
Refactoring, n:
A change to the structure of source code
without significantly changing its behavior.
Transformation
Transformation, n:
A change to the behavior of source code
without significantly changing its structure.
List of Transformations
● {} → nil
● nil → constant
● constant → constant +
● constant → scalar
● statement → statements
● unconditional → if
● scalar → array
● array → container
● statement → recursion
● if → while
● expression → function
● variable → assignment
How it works
● The first unit test should demand the first
transformation.
● The next unit test should demand the
simplest next transformation possible.
● Apply the simplest transformations that still
satisfy the test.
● And: Red → Green → Refactor
Who invented it?
Robert “Uncle Bob” C. Martin
● Red-Green-Refactor
● Three Laws of TDD
● Transformation Priority Premise
● SOLID Principles
● …
Thank you!
Questions?
Follow me on Twitter: @christianhujer

More Related Content

Viewers also liked (10)

CANTO POPULAR
CANTO POPULARCANTO POPULAR
CANTO POPULAR
 
Satyendra nath bose
Satyendra nath boseSatyendra nath bose
Satyendra nath bose
 
Media cycle
Media cycleMedia cycle
Media cycle
 
Principis pedagògics
Principis pedagògicsPrincipis pedagògics
Principis pedagògics
 
Cartas 1
Cartas 1Cartas 1
Cartas 1
 
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
 
Taller Facebook-ELE BCN 2015
Taller Facebook-ELE BCN 2015Taller Facebook-ELE BCN 2015
Taller Facebook-ELE BCN 2015
 
@LinkingNote annotation in YATSPEC
@LinkingNote annotation in YATSPEC@LinkingNote annotation in YATSPEC
@LinkingNote annotation in YATSPEC
 
2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier
 
Satyendra nath bose
Satyendra nath boseSatyendra nath bose
Satyendra nath bose
 

Similar to The “transformation priority premise”

Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Mustafa Ekim
 
BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2
BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2
BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2Karthik Murugesan
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...
Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...
Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...GeeksLab Odessa
 
Denis Yarats ITEM 2018
Denis Yarats ITEM 2018Denis Yarats ITEM 2018
Denis Yarats ITEM 2018ITEM
 
Models vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of ComplexityModels vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of ComplexityJulian Warszawski
 
Paradigm Shifts are Never Pretty
Paradigm Shifts are Never PrettyParadigm Shifts are Never Pretty
Paradigm Shifts are Never PrettySarah O'Keefe
 
Building a Neural Machine Translation System From Scratch
Building a Neural Machine Translation System From ScratchBuilding a Neural Machine Translation System From Scratch
Building a Neural Machine Translation System From ScratchNatasha Latysheva
 
L06 stemmer and edit distance
L06 stemmer and edit distanceL06 stemmer and edit distance
L06 stemmer and edit distanceananth
 
Painless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by PuppetPainless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by Puppetaedocw
 
LocJAM April 2014
LocJAM April 2014LocJAM April 2014
LocJAM April 2014gloc247
 
NLP using transformers
NLP using transformers NLP using transformers
NLP using transformers Arvind Devaraj
 
Cats And Dogs Living Together: Langsec Is Also About Usability
Cats And Dogs Living Together: Langsec Is Also About UsabilityCats And Dogs Living Together: Langsec Is Also About Usability
Cats And Dogs Living Together: Langsec Is Also About UsabilityMeredith Patterson
 
Effect systems in scala: beyond flatmap
Effect systems in scala: beyond flatmapEffect systems in scala: beyond flatmap
Effect systems in scala: beyond flatmapJoost de Vries
 
Deep Learning for Natural Language Processing
Deep Learning for Natural Language ProcessingDeep Learning for Natural Language Processing
Deep Learning for Natural Language ProcessingWilder Rodrigues
 
DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0
DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0
DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0Plain Concepts
 
Anthiil Inside workshop on NLP
Anthiil Inside workshop on NLPAnthiil Inside workshop on NLP
Anthiil Inside workshop on NLPSatyam Saxena
 
Representation Learning of Text for NLP
Representation Learning of Text for NLPRepresentation Learning of Text for NLP
Representation Learning of Text for NLPAnuj Gupta
 

Similar to The “transformation priority premise” (20)

Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
 
BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2
BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2
BIng NLP Expert - Dl summer-school-2017.-jianfeng-gao.v2
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Dec2018 istanbul-2
Dec2018 istanbul-2Dec2018 istanbul-2
Dec2018 istanbul-2
 
Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...
Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...
Java/Scala Lab 2016. Вадим Кузьменко: От монолита к микросервисам. Как красив...
 
Denis Yarats ITEM 2018
Denis Yarats ITEM 2018Denis Yarats ITEM 2018
Denis Yarats ITEM 2018
 
Models vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of ComplexityModels vs Reality: Quest for the Roots of Complexity
Models vs Reality: Quest for the Roots of Complexity
 
Paradigm Shifts are Never Pretty
Paradigm Shifts are Never PrettyParadigm Shifts are Never Pretty
Paradigm Shifts are Never Pretty
 
Building a Neural Machine Translation System From Scratch
Building a Neural Machine Translation System From ScratchBuilding a Neural Machine Translation System From Scratch
Building a Neural Machine Translation System From Scratch
 
L06 stemmer and edit distance
L06 stemmer and edit distanceL06 stemmer and edit distance
L06 stemmer and edit distance
 
Painless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by PuppetPainless OpenStack Deployments Powered by Puppet
Painless OpenStack Deployments Powered by Puppet
 
LocJAM April 2014
LocJAM April 2014LocJAM April 2014
LocJAM April 2014
 
NLP using transformers
NLP using transformers NLP using transformers
NLP using transformers
 
Cats And Dogs Living Together: Langsec Is Also About Usability
Cats And Dogs Living Together: Langsec Is Also About UsabilityCats And Dogs Living Together: Langsec Is Also About Usability
Cats And Dogs Living Together: Langsec Is Also About Usability
 
Effect systems in scala: beyond flatmap
Effect systems in scala: beyond flatmapEffect systems in scala: beyond flatmap
Effect systems in scala: beyond flatmap
 
Deep Learning for Natural Language Processing
Deep Learning for Natural Language ProcessingDeep Learning for Natural Language Processing
Deep Learning for Natural Language Processing
 
DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0
DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0
DotNet 2019 | Pablo Doval - Recurrent Neural Networks with TF2.0
 
Win#23 it
Win#23 itWin#23 it
Win#23 it
 
Anthiil Inside workshop on NLP
Anthiil Inside workshop on NLPAnthiil Inside workshop on NLP
Anthiil Inside workshop on NLP
 
Representation Learning of Text for NLP
Representation Learning of Text for NLPRepresentation Learning of Text for NLP
Representation Learning of Text for NLP
 

More from Christian Hujer

How to improve your skills and how to apply for a job
How to improve your skills and how to apply for a jobHow to improve your skills and how to apply for a job
How to improve your skills and how to apply for a jobChristian Hujer
 
Vertical vs Horizontal Software Architecture
Vertical vs Horizontal Software ArchitectureVertical vs Horizontal Software Architecture
Vertical vs Horizontal Software ArchitectureChristian Hujer
 
Extreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumExtreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumChristian Hujer
 
2016-04-22: Beyond SOLID: The Package Principles
2016-04-22: Beyond SOLID: The Package Principles2016-04-22: Beyond SOLID: The Package Principles
2016-04-22: Beyond SOLID: The Package PrinciplesChristian Hujer
 
Vertical vs horizontal software architecture ruby conf india 2016
Vertical vs horizontal software architecture ruby conf india 2016Vertical vs horizontal software architecture ruby conf india 2016
Vertical vs horizontal software architecture ruby conf india 2016Christian Hujer
 

More from Christian Hujer (7)

How to improve your skills and how to apply for a job
How to improve your skills and how to apply for a jobHow to improve your skills and how to apply for a job
How to improve your skills and how to apply for a job
 
Vertical vs Horizontal Software Architecture
Vertical vs Horizontal Software ArchitectureVertical vs Horizontal Software Architecture
Vertical vs Horizontal Software Architecture
 
Escaping the matrix
Escaping the matrixEscaping the matrix
Escaping the matrix
 
Extreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond ScrumExtreme Programming 2018 — Agile Beyond Scrum
Extreme Programming 2018 — Agile Beyond Scrum
 
2016-04-22: Beyond SOLID: The Package Principles
2016-04-22: Beyond SOLID: The Package Principles2016-04-22: Beyond SOLID: The Package Principles
2016-04-22: Beyond SOLID: The Package Principles
 
Vertical vs horizontal software architecture ruby conf india 2016
Vertical vs horizontal software architecture ruby conf india 2016Vertical vs horizontal software architecture ruby conf india 2016
Vertical vs horizontal software architecture ruby conf india 2016
 
Functional programming
Functional programmingFunctional programming
Functional programming
 

Recently uploaded

Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 

Recently uploaded (20)

Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 

The “transformation priority premise”

  • 1. The “Transformation Priority Premise” Christian Hujer @christianhujer, CEO/CTO Nelkinda Software Craft Pvt Ltd Equal Experts at NOTHS 2015-11-25
  • 3. N = R* × fp × ne × fl × fi × fc × L R* average rate of star formation in our galaxy fp fraction of stars that have planets ne average number of planets per star that can potentially support life fl fraction of planets that actually develop life fi fraction of planets that develop intelligent life fc fraction of civilizations that develop technology L length of time for which such civilizations release detectable signals into space The Drake equation Dr. Frank Drake
  • 4. The Fermi Paradox Enrico Fermi “Then where is everybody?”
  • 5. Speculation How do you explain (“solve”) the Fermi Paradox?
  • 6. Speculation ● We are the only ones ● Intelligent life destroys itself ● Intelligent life destroys others ● Life is periodically destroyed by nature ● Most universes are (too) young ● Too far scattered ● Too expensive to spread through galaxy
  • 7. Speculation (continued) ● We’re not around long enough ● We’re not listening properly ● Radio signals only used for brief period ● Civilizations isolate themselves ● They are too alien ● They are non-technological ● Everyone is listening, no one transmitting
  • 8. Speculation (continued) ● Earth is deliberately not contacted (zoo) ● Earth is purposely isolated (planetarium) ● It is dangerous to communicate ● Self-fulfilling Fermi-Paradox ● They are undetected ● They are unacknowledged
  • 9. Agenda ● Reprise: TDD - The Three Laws and the Red-Green-Refactor Cycle ● Reprise: What is Refactoring? ● Definition: What is Transformation? ● The (current) Priority list of Transformations ● Example
  • 10. Questions to Cover ● What is a Transformation? ● Why do they have Priorities? ● Why is it a Premise? ● How is it related to Refactoring and TDD? ● How can I use it? How does it help me?
  • 11. The Three Laws of TDD 1. You can’t write any production code until you first have written a failing unit test. 2. You can’t write more of a unit test than is sufficient to fail, and not compiling is failing. 3. You can’t write more production code than is sufficient to pass the currently failing unit test.
  • 12. The Red-Green-Refactor Cycle Red: Write as much of test as is sufficient to fail. Green: Write as much of production code as is sufficient to pass. Refactor: Well, refactor!
  • 13. Refactoring Refactoring, n: A change to the structure of source code without significantly changing its behavior.
  • 14. Transformation Transformation, n: A change to the behavior of source code without significantly changing its structure.
  • 15. List of Transformations ● {} → nil ● nil → constant ● constant → constant + ● constant → scalar ● statement → statements ● unconditional → if ● scalar → array ● array → container ● statement → recursion ● if → while ● expression → function ● variable → assignment
  • 16. How it works ● The first unit test should demand the first transformation. ● The next unit test should demand the simplest next transformation possible. ● Apply the simplest transformations that still satisfy the test. ● And: Red → Green → Refactor
  • 17. Who invented it? Robert “Uncle Bob” C. Martin ● Red-Green-Refactor ● Three Laws of TDD ● Transformation Priority Premise ● SOLID Principles ● …
  • 18. Thank you! Questions? Follow me on Twitter: @christianhujer