Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Metaphors We Compute By

Metaphors We Compute By

We think in words, we talk with words, we understand the world thanks to words. Metaphors take words to the next level explaining concepts that were escaping our understanding before. In 1980 George Lakoff revolutionised the Linguistic and Philosophic worlds when he studied how metaphors affect our thinking, how they influence our actions and even shape who we are. What happens with the metaphors that we use in the Software Industry?

In this talk we are going to review the importance that metaphors have in our code quality, in the algorithms we choose, and the products we ship.

As a practical example we are going to see why Microservices and Containers have been so successful in the past couple of years. We’ll try to understand why they have redefined how we package and ship products in our industry.

B3eb24dc767e178a2c7d67f1ee1af11f?s=128

Alvaro Videla

January 27, 2017
Tweet

Transcript

  1. METAPHORS WE COMPUTE BY ALVARO VIDELA - @old_sound

  2. THE YEAR IS 1980

  3. METAPHORS WE LIVE BY GEORGE LAKOFF & MARK JOHNSON

  4. METAPHOR ISN’T JUST A MATTER OF POETRY AND RHETORICAL FLOURISH

  5. METAPHORS PERMEATE ALL AREAS OF OUR LIVES METAPHORS DICTATE

  6. METAPHORS PERMEATE ALL AREAS OF OUR LIVES METAPHORS DICTATE ▸

    How we think
  7. METAPHORS PERMEATE ALL AREAS OF OUR LIVES METAPHORS DICTATE ▸

    How we think ▸ How we behave
  8. METAPHORS PERMEATE ALL AREAS OF OUR LIVES METAPHORS DICTATE ▸

    How we think ▸ How we behave ▸ How we perceive
  9. METAPHORS PERMEATE ALL AREAS OF OUR LIVES METAPHORS DICTATE ▸

    How we think ▸ How we behave ▸ How we perceive ▸ How our conceptual system is built
  10. ARGUMENT IS WAR

  11. METAPHORS IN EVERYDAY EXPRESSIONS ARGUMENT IS WAR

  12. METAPHORS IN EVERYDAY EXPRESSIONS ARGUMENT IS WAR ▸ Your claims

    are indefensible
  13. METAPHORS IN EVERYDAY EXPRESSIONS ARGUMENT IS WAR ▸ Your claims

    are indefensible ▸ He attacked every weak point in my argument
  14. METAPHORS IN EVERYDAY EXPRESSIONS ARGUMENT IS WAR ▸ Your claims

    are indefensible ▸ He attacked every weak point in my argument ▸ I demolished his argument
  15. METAPHORS IN EVERYDAY EXPRESSIONS ARGUMENT IS WAR ▸ Your claims

    are indefensible ▸ He attacked every weak point in my argument ▸ I demolished his argument ▸ I never won an argument with him
  16. METAPHORS IN EVERYDAY EXPRESSIONS ARGUMENT IS WAR ▸ Your claims

    are indefensible ▸ He attacked every weak point in my argument ▸ I demolished his argument ▸ I never won an argument with him ▸ His criticisms were right on target
  17. WHAT IF ARGUMENT IS A DANCE?

  18. I’M NOT CONVINCED

  19. LET’S TALK ABOUT POLITICS

  20. I’M STILL NOT CONVINCED

  21. HUMAN RESOURCE MANAGEMENT

  22. PEOPLE ARE NOT RESOURCES

  23. TRIGGER WARNING

  24. GIVING A PLATFORM TO RACISTS

  25. “WRESTLING WITH INCLUSION AT XYZCONF”

  26. “WRESTLING WITH INCLUSION AT XYZCONF”

  27. LET’S TALK ABOUT COMPUTERS

  28. None
  29. COMPUTERS

  30. METAPHORS ENABLE UNDERSTANDING

  31. JULIET IS LIKE THE SUN

  32. JULIET GAVE ME SKIN CANCER

  33. METAPHORS OBSCURE UNDERSTANDING

  34. TELE-GRAPH

  35. “SOMETIMES OUR TOOLS DO WHAT WE TELL THEM TO. OTHER

    TIMES, WE ADAPT OURSELVES TO OUR TOOLS' REQUIREMENTS” Nicholas Carr THE SHALLOWS
  36. METAPHORS ARE THE TOOLS OF THOUGHT

  37. METAPHORS AND CODE

  38. None
  39. BEST UNKNOWN PAPER

  40. “TO PROGRAM IS TO WRITE TO ANOTHER PROGRAMMER ABOUT OUR

    SOLUTION TO A PROBLEM” Charles Baker A PROGRAMER’S ROLE
  41. “NO ONE HAS SEEN A PROGRAM WHICH THE MACHINE COULD

    NOT COMPREHEND BUT WHICH HUMANS DID” Charles Baker A PROGRAMER’S ROLE
  42. TYPES ARE THE CHARACTERS THAT TELL THE STORY OF OUR

    PROGRAMS
  43. PROGRAMMING WITH ABSTRACT DATA TYPES

  44. WITHOUT TYPES WE JUST HAVE OPERATIONS ON STREAM OF BYTES

  45. CHOOSING THE RIGHT DATA STRUCTURE

  46. CHOOSE THE RIGHT DATA STRUCTURE

  47. CHOOSE THE RIGHT DATA STRUCTURE ▸ Array

  48. CHOOSE THE RIGHT DATA STRUCTURE ▸ Array ▸ Set

  49. CHOOSE THE RIGHT DATA STRUCTURE ▸ Array ▸ Set ▸

    LinkedList
  50. CHOOSE THE RIGHT DATA STRUCTURE ▸ Array ▸ Set ▸

    LinkedList ▸ Queue
  51. CHOOSE THE RIGHT DATA STRUCTURE ▸ Array ▸ Set ▸

    LinkedList ▸ Queue ▸ Stack
  52. A PROGRAM’S EXPLANATORY POWER IS THE MEASURE OF ITS OWN

    ELEGANCE
  53. DATA STRUCTURES HAVE EXPLANATORY POWER

  54. COGNITIVE LEAPS

  55. TASK SCHEDULING

  56. QUEUEING THEORY TASK SCHEDULING

  57. ROUTE PLANNING

  58. GRAPH THEORY ROUTE PLANNING

  59. DATABASE REPLICATION

  60. RUMOUR MONGERING DATABASE REPLICATION

  61. EPIDEMICS DATABASE REPLICATION

  62. SO EVERYTHING IS A METAPHOR?

  63. I DON’T BELIEVE YOU

  64. Whenever nodes need to agree on a common value, we

    start a consensus algorithm to decide on a value. There's usually a leader process that takes care of making the final decision based on the votes it has received from its peers. SEVEN METAPHORS DISTRIBUTED SYSTEMS METAPHORS
  65. SEVEN METAPHORS DISTRIBUTED SYSTEMS METAPHORS Nodes communicate sending messages over

    a channel, which might get congested due to too much traffic. This could create an information bottleneck, with queues at each end of the channels backing up.
  66. FOUR METAPHORS DISTRIBUTED SYSTEMS METAPHORS These bottlenecks might render one

    or more nodes unresponsive, causing network partitions. Is the process that's taking too long to respond dead? We won't know unless we set a timeout…
  67. INTERMEZZO

  68. PACKAGING

  69. None
  70. BUILDING GHC

  71. None
  72. CONTAINERS ▸ Standard ▸ Ship Anywhere ▸ Train, Ships, Trucks

    ▸ Stackable ▸ Reusable
  73. None
  74. MICROSERVICES

  75. MICROSERVICES ▸ Decentralised Governance ▸ Monolith vs. Microservice ▸ Isolation

    ▸ Collaboration ▸ Small is better - Big is cumbersome ▸ David vs. Goliath
  76. BRING POWER BACK TO THE DEVELOPER AND THE DEVELOPER WILL

    MAKE YOU A KING
  77. ERLANG ANYONE?

  78. “IN ANOTHER DIRECTION, ONE COULD ARGUE THAT MICROSERVICES ARE THE

    SAME THING AS THE ERLANG PROGRAMMING MODEL, BUT APPLIED TO AN ENTERPRISE APPLICATION CONTEXT”
  79. WHAT’S ERLANG’S ELEVATOR PITCH?

  80. MASTER THE ART OF METAPHOR SELECTION

  81. FIRST GET PEOPLE TO UNDERSTAND THINGS

  82. THEN EXPLAIN HOW THINGS ACTUALLY WORK

  83. RABBITMQ A JOB SERVER?

  84. MASTER THE ART OF MEANING AMPLIFICATION

  85. OUR PROGRAM IS THE METAPHOR FOR THE SOLUTION WE FOUND

  86. REFERENCES ▸ Lakoff, George, and Mark Johnson. “Metaphors We Live

    By” ▸ Gleick, James. “The Information: A History, a Theory, a Flood” ▸ Geary, James. “I Is an Other: The Secret Life of Metaphor and How It Shapes the Way We See the World” ▸ Demers, Alan, Dan Greene, Carl Hauser, Wes Irish, and John Larson. “Epidemic Algorithms for Replicated Database Maintenance”
  87. CREDITS - CC BY-NC-ND ▸ Office Workers: https://flic.kr/p/5WwpeV ▸ Sun:

    https://flic.kr/p/9Q6SY1 ▸ Queue: https://flic.kr/p/8AqWW7 ▸ Consensus: https://flic.kr/p/aws7dH ▸ Bottlenecks: https://flic.kr/p/EJ5Q3 ▸ Gossip: https://flic.kr/p/4bCDr2 ▸ Containers: https://flic.kr/p/nWLQxE
  88. @old_sound THANK YOU!