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

  3. Rhetoric

    View Slide

  4. Rhetorical
    Situation

    View Slide

  5. I have an agenda

    View Slide

  6. I think Rhetoric is
    something you should
    know

    View Slide

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

    View Slide

  8. View Slide

  9. Greeks
    Aristotle

    View Slide

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

    View Slide

  11. Code wins arguments

    View Slide

  12. Communication
    Code wins arguments

    View Slide



  13. <% 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 Slide

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

    View Slide

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

    View Slide

  16. View Slide

  17. The art of
    rhetoric
    Marcus Tullius Cicero

    View Slide

  18. character
    Argument by
    Argument by
    Argument by
    logic
    emotion

    View Slide

  19. Pathos Logos Ethos
    Logic Character
    Emotion

    View Slide

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

    View Slide

  21. 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 Slide

  22. 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 Slide

  23. 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 Slide

  24. 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 Slide

  25. View Slide

  26. Spotlight

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  31. Logic is not enough
    Know all the arguments

    View Slide

  32. Emotion
    Metaphor
    Story telling
    Passion in the
    delivery

    View Slide

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

    View Slide

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

    View Slide

  35. View Slide

  36. View Slide

  37. “Test all the fucking time”

    View Slide

  38. 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 Slide

  39. 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 Slide

  40. /**
    * 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 Slide

  41. /**
    * 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 Slide

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

    View Slide

  43. Character
    Credibility
    Authority

    View Slide

  44. Virtue
    Practical Wisdom
    Selflessness or disinterest

    View Slide

  45. Matz

    View Slide

  46. Code Grooming

    View Slide

  47. forensic
    epideictic
    deliberative

    View Slide

  48. past
    present
    future
    forensic
    epideictic
    deliberative

    View Slide

  49. Blame
    Values
    Choice
    past
    present
    future

    View Slide

  50. punishment
    bonding
    payoff
    past
    present
    future
    separating

    View Slide

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

    View Slide

  52. medium

    View Slide

  53. View Slide

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

    View Slide

  55. 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 Slide

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

    View Slide

  57. persuasive

    View Slide

  58. is easy
    Being
    wrong

    View Slide

  59. View Slide

  60. Be wrong
    in the
    right way

    View Slide

  61. Joseph Wilk

    View Slide