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

Someone is wrong

Joseph Wilk
September 08, 2012

Someone is wrong

Joseph Wilk

September 08, 2012
Tweet

More Decks by Joseph Wilk

Other Decks in Programming

Transcript

  1. Someone
    is wrong
    mocks suck BDD vs TDD
    Ruby vs Node Not REST SCaling
    Garbige
    collectionMeta programming
    Rails
    ghetto
    outsourcing
    outsourcing
    outsou
    SCALE
    Ruby does
    not Scale
    not scale
    not scale
    No to TDD i!
    Rails mess
    Rails ghetto
    Ruby slow
    Rails ghetto
    JS Future
    Ruby is A Toy
    Enterpise
    Ready
    Lean vs
    Agile
    Big Data
    Magic
    Big Data
    More Agile
    Ruiby too dynamic
    BDD vs TD
    Stubs suck
    Big Data
    Big Data
    craftmanship
    sucks
    Ruby vs Node
    Rails ghetto
    Big Data
    Joseph Wilk
    Patterns
    Node jumped SHARK
    Mud
    Use PHP
    GOO

    View full-size slide

  2. Rhetoric
    for
    programmers
    mocks suck BDD vs TDD
    Ruby vs Node Not REST SCaling
    Garbige
    collectionMeta programming
    Rails
    ghetto
    outsourcing
    outsourcing
    outsou
    SCALE
    Ruby does
    not Scale
    not scale
    not scale
    No to TDD i!
    Rails mess
    Rails ghetto
    Ruby slow
    Rails ghetto
    JS Future
    Ruby is A Toy
    Use PHP
    Enterpise
    Ready
    Lean vs
    Agile
    Big Data
    Magic
    Big Data
    More Agile
    Ruiby too dynamic
    BDD vs TD
    Stubs suck
    Big Data
    Big Data
    craftmanship
    sucks
    Ruby vs Node
    Rails ghetto
    Big Data
    Joseph Wilk
    Patterns
    Node jumped SHARK
    Mud
    GOO

    View full-size slide

  3. Rhetorical
    Situation

    View full-size slide

  4. I have an agenda

    View full-size slide

  5. I think Rhetoric is
    something you should
    know

    View full-size slide

  6. I think knowing
    Rhetoric will
    help make you
    a better programmer

    View full-size slide

  7. Greeks
    Aristotle

    View full-size slide

  8. programming
    tech choices
    retrospectives
    Pair
    Tweets
    conferences
    blogs
    open source

    View full-size slide

  9. Code wins arguments

    View full-size slide

  10. Communication
    Code wins arguments

    View full-size slide



  11. <% unless @subscription.active? %>
    Renew your Subscription
    Sorry it looks like your trial or subscription has expired.
    Signup for a subscription to create projects.
    <% else %>
    Projects

    <%= flash[:notice] %>


    <% if @subscription.exceeded_project_limit?(current_user) %>
    Sorry you have reached your maximum number of projects.
    Please upgrade your subscription to create more projects
    <% elsif [email protected]? %>
    Renew your Subscription
    Sorry your subscription has expired.
    Please upgrade your subscription to create more projects
    <% else %>



    Project name





    Who can access this project?



    <% if @subscription.on_trial? && @subscription.active? %>
    Trial accounts are limited to public projects only. Signup for a subscription to creat
    private projects.

      Only me (Private)
    <% else %>

      Only me
    <% end %>

    Code
    and
    Rhetoric

    View full-size slide

  12. HEllo world
    http://www.mzlabs.com/JMPubs/HelloWorld.pdf

    View full-size slide

  13. HEllo world
    http://www.mzlabs.com/JMPubs/HelloWorld.pdf
    10 PRINT "MY HUMAN UNDERSTANDS ME."

    View full-size slide

  14. The art of
    rhetoric
    Marcus Tullius Cicero

    View full-size slide

  15. character
    Argument by
    Argument by
    Argument by
    logic
    emotion

    View full-size slide

  16. Pathos Logos Ethos
    Logic Character
    Emotion

    View full-size slide

  17. Logic
    “a ground"
    "a plea"
    "an opinion"
    "an expectation"
    "word”
    "speech”
    “account”
    “reason”
    Argument's logical appeal
    “Facts”

    View full-size slide

  18. Logical Fallacies
    Appeal to the mind Appeal to emotions
    Faulty Deduction
    Garbled Cause & Effect
    Manipulating Content
    On The Attack
    Fallacies of Relevance
    Component Fallacies
    Fallacies of Ambiguity
    Fallacies of Omission

    View full-size slide

  19. It's Fucking JavaScript
    This is probably the worst thing any server-side framework can do: be written
    in JavaScript.
    if (typeof my_var !== "undefined" && my_var !== null)
    {
    // you idiots put Rasmus Lerdorf to shame
    }
    What is this I don't even...
    http://teddziuba.com/2011/10/node-js-is-cancer.html

    View full-size slide

  20. It's Fucking JavaScript
    This is probably the worst thing any server-side framework can do: be written
    in JavaScript.
    if (typeof my_var !== "undefined" && my_var !== null)
    {
    // you idiots put Rasmus Lerdorf to shame
    }
    What is this I don't even...
    http://teddziuba.com/2011/10/node-js-is-cancer.html
    straw man

    View full-size slide

  21. It's Fucking JavaScript
    This is probably the worst thing any server-side framework can do: be written
    in JavaScript.
    if (typeof my_var !== "undefined" && my_var !== null)
    {
    // you idiots put Rasmus Lerdorf to shame
    }
    What is this I don't even...
    http://teddziuba.com/2011/10/node-js-is-cancer.html
    Misleading vividness

    View full-size slide

  22. Well Joseph gave a talk on
    Rhetoric so it must be
    useful...

    View full-size slide

  23. Well Joseph gave a talk on
    Rhetoric so it must be
    useful...
    Appeal to Authority

    View full-size slide

  24. We’ve invested so much in this project
    its too late to turn back

    View full-size slide

  25. We’ve invested so much in this project
    its too late to turn back
    Sunk cost fallacy

    View full-size slide

  26. Logic is not enough
    Know all the arguments

    View full-size slide

  27. Emotion
    Metaphor
    Story telling
    Passion in the
    delivery

    View full-size slide

  28. http://www.laputan.org/mud/

    View full-size slide

  29. Jim Weirich
    https://github.com/jimweirich/polite_programmer_presentation

    View full-size slide

  30. “Test all the fucking time”

    View full-size slide

  31. Basically XML is just another way
    of writing S-expr or Trees or
    whatever you want to call it.
    They are not identical.
    The aspects you are willing to ignore are
    more important than the aspects you are willing to
    accept. Robbery is not just another way of making a
    living, rape is not just another way of satisfying
    basic human needs, torture is not just another way of
    interrogation. And XML is not just another way of
    writing S-exps. There are some things in life that
    you do not do if you want to be a moral being and
    feel proud of what you have accomplished.
    Erik Naggum
    http://www.schnada.de/quotes/contempt.html

    View full-size slide

  32. They are not identical.
    The aspects you are willing to ignore are
    more important than the aspects you are willing to
    accept. Robbery is not just another way of making a
    living, rape is not just another way of satisfying
    basic human needs, torture is not just another way of
    interrogation. And XML is not just another way of
    writing S-exps. There are some things in life that
    you do not do if you want to be a moral being and
    feel proud of what you have accomplished.
    Basically XML is just another way
    of writing S-expr or Trees or
    whatever you want to call it.
    Erik Naggum
    http://www.schnada.de/quotes/contempt.html

    View full-size slide

  33. /**
    * FOR CLASS INTERNAL USE ONLY
    */
    public void someMethod() {
    ... some code...
    }
    /* Project : XYZ (Please somebody shoot me!)
    *
    * File : $Id: defs.h,v 1.1 $
    *
    * Purpose : Create havoc rather than peace among many
    nations
    *
    * History : Back-ported changes that were not in CVS.
    Please somebody,
    * shoot us and put us all out of our misery.
    */
    if not cannot_undisable
    result = not true

    View full-size slide

  34. /**
    * FOR CLASS INTERNAL USE ONLY
    */
    public void someMethod() {
    ... some code...
    }
    /* Project : XYZ (Please somebody shoot me!)
    *
    * File : $Id: defs.h,v 1.1 $
    *
    * Purpose : Create havoc rather than peace among many
    nations
    *
    * History : Back-ported changes that were not in CVS.
    Please somebody,
    * shoot us and put us all out of our misery.
    */
    if not cannot_undisable
    result = not true

    View full-size slide

  35. “Even if you persuade me,
    you won't persuade me.”
    Aristophanes

    View full-size slide

  36. Character
    Credibility
    Authority

    View full-size slide

  37. Virtue
    Practical Wisdom
    Selflessness or disinterest

    View full-size slide

  38. Code Grooming

    View full-size slide

  39. forensic
    epideictic
    deliberative

    View full-size slide

  40. past
    present
    future
    forensic
    epideictic
    deliberative

    View full-size slide

  41. Blame
    Values
    Choice
    past
    present
    future

    View full-size slide

  42. punishment
    bonding
    payoff
    past
    present
    future
    separating

    View full-size slide

  43. Concede on an small issue
    Make your point
    Provide evidence

    View full-size slide

  44. All we have are the words on a computer
    and how we hear those words in our head

    View full-size slide

  45. Someone
    is wrong
    mocks suck BDD vs TDD
    Ruby vs Node Not REST SCaling
    Garbige
    collectionMeta programming
    Rails
    ghetto
    outsourcing
    outsourcing
    outsou
    SCALE
    Ruby does
    not Scale
    not scale
    not scale
    No to TDD i!
    Rails mess
    Rails ghetto
    Ruby slow
    Rails ghetto
    JS Future
    Ruby is A Toy
    Use PHP
    Enterpise
    Ready
    Lean vs
    Agile
    Big Data
    Magic
    Big Data
    More Agile
    Ruiby too dynamic
    BDD vs TD
    Stubs suck
    Big Data
    Big Data
    craftmanship
    sucks
    Ruby vs Node
    Rails ghetto
    Big Data
    Patterns
    Node jumped SHARK
    GOO

    View full-size slide

  46. Goals
    argument tense
    Emotion,
    Character,
    logic
    Time and medium

    View full-size slide

  47. is easy
    Being
    wrong

    View full-size slide

  48. Be wrong
    in the
    right way

    View full-size slide