$30 off During Our Annual Pro Sale. View Details »

Turks, Aliens and Thinking

Z
September 08, 2016

Turks, Aliens and Thinking

Z

September 08, 2016
Tweet

More Decks by Z

Other Decks in Technology

Transcript

  1. TURKS, ALIENS
    and
    THINKING
    Z (@zdne)
    apiary.io

    View Slide

  2. TWO CHALLENGES
    1 APIs aren’t the endgame
    2 Documentation isn’t what you think

    View Slide

  3. PART I
    APIs AREN’T ENDGAME

    View Slide

  4. THE TURK
    ~1770~

    View Slide

  5. Wolfgang von Kempelen

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. ALIENS
    ~1963~

    View Slide

  10. Joseph Carl Robnett Licklider

    View Slide

  11. COMMUNICATING WITH
    ALIENS PROBLEM

    View Slide

  12. Memorandum For Members and Affiliates
    of the Intergalactic Computer Network
    Consider the situation in which several different centers are
    netted together, each center being highly individualistic and
    having its own special language and its own special way of doing
    things. Is it not desirable, or even necessary for all the centers to
    agree upon some language or, at least, upon some conventions
    for asking such questions as “What language do you speak?” At
    this extreme, the problem is essentially the one discussed by
    science fiction writers: “how do you get communications
    started among totally uncorrelated 'sapient' beings?.”

    View Slide

  13. INTERGALACTIC COMPUTER
    NETWORK


    How would completely unrelated beings communicate?

    View Slide

  14. THEY WOULD HAVE TO
    FIGURE OUT

    View Slide

  15. PROBE TO BUILD SHARED
    VOCABULARY

    View Slide

  16. RISE
    OF
    TURKS
    ~1999~

    View Slide

  17. PLANETARY COMPUTER
    NETWORK
    How would distributed components communicate?


    View Slide

  18. THEY WOULD HAVE TO
    FIGURE OUT

    View Slide

  19. OR?

    View Slide

  20. HAVE SOME A PRIORI
    UNDERSTANDING

    View Slide

  21. SHARED UNDERSTANDING
    AHEAD OF TIME
    1 A component exposes an interface

    View Slide

  22. SHARED UNDERSTANDING
    AHEAD OF TIME
    1 A component exposes an interface
    2 Some humans write a lot of text to document it

    View Slide

  23. SHARED UNDERSTANDING
    AHEAD OF TIME
    1 A component exposes an interface
    2 Some humans write a lot of text to document it
    3 Some other humans read it

    View Slide

  24. SHARED UNDERSTANDING
    AHEAD OF TIME
    1 A component exposes an interface
    2 Some humans write a lot of text to document it
    3 Some other humans read it
    4 And program another component to use the interface

    View Slide

  25. API

    View Slide

  26. Roy Fielding

    View Slide

  27. REST
    ARCHITECTURAL STYLE

    View Slide

  28. SHARED UNDERSTANDING
    AHEAD OF TIME
    1
    EX
    PO
    SE
    IN
    TERFAC
    E
    W
    RITE
    D
    O
    C
    S
    REA
    D
    D
    O
    C
    S
    PRO
    G
    RA
    M
    C
    LIEN
    T
    2 3 4

    View Slide

  29. SHARED UNDERSTANDING
    AHEAD OF TIME
    1
    EX
    PO
    SE
    IN
    TERFAC
    E
    W
    RITE
    D
    O
    C
    S
    REA
    D
    D
    O
    C
    S
    PRO
    G
    RA
    M
    C
    LIEN
    T
    2 3
    4

    View Slide

  30. GOLDEN AGE
    OF
    TURKS
    ~2016~

    View Slide

  31. All of us

    View Slide

  32. SHARED UNDERSTANDING
    AHEAD OF TIME
    1
    EX
    PO
    SE
    IN
    TERFAC
    E
    W
    RITE
    D
    O
    C
    S
    REA
    D
    D
    O
    C
    S
    PRO
    G
    RA
    M
    C
    LIEN
    T
    2 3
    4
    what happens when one of these changes?

    View Slide

  33. PROBLEMS OF SHARED
    UNDERSTANDING AHEAD OF TIME
    • Error-prone
    • Brittle system
    • Tight-coupling, prohibits changes
    • Requires couple of iterations to get it right
    • Does not scale
    humans do errors
    versioning anyone?
    heard about broken clients?
    did clients use your
    API as expected?
    hire more programmers to
    write more docs

    View Slide

  34. WE CAN PREVENT OR
    MITIGATE MOST OF THESE

    View Slide

  35. 1
    PREPA
    RATIO
    N
    API FLOW
    D
    ESIG
    N
    &
    PRO
    TO
    TYPE
    D
    EVELO
    PM
    EN
    T
    D
    ELIVERY
    C
    O
    N
    SU
    M
    PTIO
    N
    A
    N
    A
    LYSIS
    2 3 4 5 6

    View Slide

  36. View Slide

  37. apiary.io/how-to-build-api

    View Slide

  38. MECHANICAL TURK NO
    MORE
    ~1996/7~

    View Slide

  39. IBM DEEP BLUE

    View Slide

  40. 227 YEARS
    AFTER THE FIRST TURK

    View Slide

  41. PART II
    DOCUMENTATION ISN’T
    WHAT YOU THINK

    View Slide

  42. WHAT IS
    DOCUMENTATION?

    View Slide

  43. MARKETING TOOL
    DRIVING ADOPTION

    View Slide

  44. MOVE FAST AND BREAK
    THINGS WORLD

    View Slide

  45. THAT’S WHY WE HAVE SO
    MANY BROKEN THINGS

    View Slide

  46. MIND SHIFT

    View Slide

  47. DOCUMENTATION
    IS
    THINKING TOOL

    View Slide

  48. WHY IS NOT
    DOCUMENTATION TODAY A
    THINKING TOOL?

    View Slide

  49. OBFUSCATING WHAT
    MATTERS

    View Slide

  50. DOCUMENTATION ANATOMY
    • PROTOCOL DETAILS
    • AUTHENTICATION
    • PAGINATION
    • RATE LIMITING
    • HOW TO CONTACT LAWYERS
    • WHAT YOU THINK I WANT TO DO WITH YOUR API
    • DATA
    • WHAT CAN BE DONE WITH DATA

    View Slide

  51. LET’S LOOK AT GITHUB
    EXAMPLE
    https://developer.github.com/v3/

    View Slide

  52. HOW TO DOCUMENT
    SYSTEM

    View Slide

  53. DOCUMENT WHAT
    NOT HOW

    View Slide

  54. DOCUMENT YOUR DATA

    View Slide

  55. DOCUMENT WHAT YOU
    CAN DO WITH THE DATA

    View Slide

  56. CONTROLLED
    VOCABULARY

    View Slide

  57. DESCRIBE YOUR DOMAIN
    SEMANTICS

    View Slide

  58. CLEAR THINKING
    leads to
    GOOD DESIGN

    View Slide

  59. LONGEVITY
    SCALEABILITY

    View Slide

  60. MACHINE INTEROPERABILITY

    View Slide

  61. UNTHINKABLE THOUGHTS
    ~1980~

    View Slide

  62. Richard Hamming

    View Slide

  63. The Unreasonable Effectiveness
    of Mathematics
    Just as there are odors that dogs can smell and we
    cannot, as well as sounds that dogs can hear and we
    cannot, so too there are wavelengths of light we cannot
    see and flavors we cannot taste. Why then, given our
    brains wired the way they are, does the remark,
    "Perhaps there are thoughts we cannot think,"
    surprise you?

    View Slide

  64. DOCUMENTATION
    TO
    ENCOURAGE
    THINKING

    View Slide

  65. THANK YOU

    View Slide

  66. REFERENCE
    • apiary.io/how-to-build-api
    • http://goodapi.co/
    • https://en.wikipedia.org/wiki/The_Turk
    • http://amundsen.com/blog/archives/1146
    • http://www.kurzweilai.net/memorandum-for-
    members-and-affiliates-of-the-intergalactic-computer-
    network
    • https://en.wikipedia.org/wiki/Richard_Hamming

    View Slide