Github github-github

2,586 views
2,468 views

Published on

Published in: Design, Technology
2 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total views
2,586
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
128
Comments
2
Likes
12
Embeds 0
No embeds

No notes for slide

Github github-github

  1. 1. how uses ild github zach holmanto bu
  2. 2. to how uses build x github
  3. 3. how github uses githubto build github
  4. 4. how uses githubto build
  5. 5. how uses githubto build
  6. 6. how your company uses githubto build your product
  7. 7. @holman
  8. 8. we workasynchronously
  9. 9. WORKING ASYNCHRONOUSLY:YOU CAN DO SHIT WITHOUT NEEDING TOPULL ME OUT OF THE ZONE™.NO MEETINGS • NO DEADLINES • NO MANAGERS
  10. 10. CHATROOMSNO PRESENCE NEEDED LOG ALL THE THINGS EVERYONE ON THE SAME PAGETIME FLEXIBILITYWORK WHEN YOU WANT TO WORK
  11. 11. HOW GITHUB WORKSzachholman.com/posts/how-github-works
  12. 12. OKAY LET’S TALK ABOUTPULL REQUESTS + BRANCHING ISSUES OAUTH AS IDENTITY HOOKS & HUBOT SECRETS
  13. 13. pull requests + branching
  14. 14. Y’all got some weird branches.
  15. 15. master deploy-62 deploy-63 deploy-63b ? deploy-
  16. 16. REPOSITORYʘ‿ʘ ಠ_ಠTRUSTED SHITTYDEVELOPERS DEVELOPERS FORK FORK FORK
  17. 17. Keep your branches simple.
  18. 18. How GitHub does branching:
  19. 19. MASTERBRANCH
  20. 20. Everyone can push, everyone can deploy.
  21. 21. Frees up your time frommicromanaging someone else’s code.
  22. 22. Master is always deployable.
  23. 23. Master is always deployable. We deploy10-40 times a day.
  24. 24. If you’re nervous, deploy to staging.Or deploy a branch. Or deploy to a subsetof our production boxes. TWITTER-DRIVEN DEVELOPMENT CHECK TWITTER, SEE IF YOU BONED A DEPLOY
  25. 25. Keep your branches simple.
  26. 26. ಠ_ಠWhat about code quality?
  27. 27. REQUESTSPULL OOH! FUTUR ISTIC!
  28. 28. Pull Requests are our code review.
  29. 29. DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSDISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSDISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSDISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSDISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUS WHAT ARE PULL REQUESTS?DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSDISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSDISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSDISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUS
  30. 30. CODE DISCUSSION FEATURE DISCUSSION STRATEGY DISCUSSIONA PULL REQUEST IS A DISCUSSION
  31. 31. CODE DISCUSSION FEATURE DISCUSSIONSTRATEGY DISCUSSION
  32. 32. STRATEGY DISCUSSION FEATURE DISCUSSION CODE DISCUSSION REFERENCE ISSUES REVIEW CODE DIFFS WRITE CODE COMMENTS
  33. 33. ALL ON A BRSTRATEGY DISCUSSION FEATURE DISCUSSION CODE DISCUSSION ANC H REFERENCE ISSUES REVIEW CODE DIFFS WRITE CODE COMMENTS
  34. 34. TITLE OF THE PULL REQUESTDESCRIPTIONCOMMIT COMMIT COMMIT COMMIT COMMIT COMMIT COMMITCOMMIT COMMIT COMMIT COMMIT COMMIT COMMIT COMMITCOMMIT COMMIT COMMIT COMMIT COMMIT COMMIT COMMITCOMMIT COMMIT COMMIT COMMIT COMMIT COMMIT COMMIT DISCUSS DISCUSS DISCUSS DISCUSS DISCUSS DISCUSS DISCUSS DISCUSS DISCUSS DISCUSSCOMMIT COMMIT COMMIT COMMIT COMMIT COMMIT COMMIT
  35. 35. talk about changes show all commits show specific code changes
  36. 36. MASTERBRANCH
  37. 37. MASTER PULL REQUESTBRANCH
  38. 38. BIG S ECRE T #1PULL REQUESTS:YOU DON’T NEEDTO FORK ANYTHING.
  39. 39. 4WHY PULL REQUESTS ARE RAD: REASONS
  40. 40. WHY PULL REQUESTS ARE RAD: ASYNCHRONOUS No meetings.
  41. 41. WHY PULL REQUESTS ARE RAD: NOTIFICATIONS Email is your interface.
  42. 42. WHY PULL REQUESTS ARE RAD: ACCESSIBLE Designers can evolve mockups and entire workflows. Non-technical staff can add their two cents.
  43. 43. WHY PULL REQUESTS ARE RAD: HISTORICALPull Requests can be experiments. Try something out, throw it away, retain a history.
  44. 44. GitHub’s Pull Requests
  45. 45. Realtime™ status.github.com real-time polling git (ssh): true git (http): true git (git://): true SUDDENLY, downloads: true pages: true a design svn: true
  46. 46. Realtime™ status.github.com real-time polling MIX YOUR DESIGNERS + DEVELOPERS POST SCREENSHOTS (AND .GIFs!)
  47. 47. CodeMirror syntax highlighting as you type
  48. 48. CodeMirror syntax highlighting as you type PULL REQUESTS ARE CHEAP AS HELL DON’T BE AFRAID TO TOSS IT ALL AWAY
  49. 49. Don’t be afraid totry to (gently) break GitHub. { 8 months, couple hundred commits, dozens of mockups
  50. 50. Pull Requests areabout getting shit donewithout wasting a lot of time.
  51. 51. Can your workflow be improved?Do you really need all that process?
  52. 52. PULL REQU EST RECA PUSE PULL REQUESTS MORESPEND LESS TIME AVOIDING SHIPPING
  53. 53. we have issues
  54. 54. where am i anyway rich media thingsmore priorities priorities wat redundantjust trolling us now estimates deadlines
  55. 55. Can you survive on SIMPLER tools?
  56. 56. Can you work faster on SIMPLER tools?
  57. 57. Can you work better on SIMPLER tools?
  58. 58. Merlin Mann@hotdogsladieson email priorities :
  59. 59. “ A priority is observed, not manufactured or assigned. Otherwise, its necessarily not a priority.
  60. 60. “ Making something a BIG RED TOP TOP BIG HIGHEST #1 PRIORITY changes nothing but text styling. If it were really important, itd already be done. Period.
  61. 61. PRIORITIES ESTIMATESASSIGNEES DEADLINES
  62. 62. Resist adding meta-work. It gets inthe way of doing real work. (The realwork will get done anyway.)
  63. 63. 3We use Issues for three things.
  64. 64. shit, something is broken
  65. 65. hey, this could be cool
  66. 66. todo lists
  67. 67. Do you need more than that?Think about it.Most of the time, you don’t.
  68. 68. ISSU ES R ECAPSIMPLETIME BUILDINGMEANS MORE TOOLSYOUR PRODUCT
  69. 69. oauth as identity
  70. 70. RUBY IS SO FASTFUCK I LOVE IT SO MUCH
  71. 71. ~/Development/SECRETARYOFLABOR was super hammered when I wrote this single LABOR.RB web app self-referential symlink `what`~/Development/unmarked_van an app that stalks people’s locations ~/Development/trace real-time stats graphing
  72. 72. internal ios licensing + haystack 30talk videos provisioning exceptionsinternal app collectddistribution graphs INTERNAL APPScontinuous internal arbitraryintegration twitter data store
  73. 73. Outsiders are not welcome.
  74. 74. GitHub as AuthenticationTEAMS, ORGANIZATIONS, AND USERS
  75. 75. GitHub as AuthenticationUSE OAUTH TO AUTHENTICATE USERS
  76. 76. github.com/atmos/sinatra_auth_github github_organization_access?(github) # => true
  77. 77. GitHub as AuthenticationSECURITY • CONSISTENCY • COOLICTY
  78. 78. OAU TH RE CAPDON’T REINVENT THE WHEELYOUR AUTHENTICATION CAN BE FREE
  79. 79. hooks & hubot
  80. 80. B OT FIR EBOT U M P CAHO UR FR IENDLY
  81. 81. OVER 300 COMMANDS, LIKE...• deploy every GitHub app• run branch-level tests• play music in the office• tell us who is in the office• dynamically build usage graphs• send and receive text messages• mustache every image posted in chat• track who swears each day• rank by twitter followers• ...and way, way more
  82. 82. L J K O not open source. L isHubot github.com/github/hubot
  83. 83. bots github: know your branch status Zach hubot what hasn’t been deployed? Hubot Zach: Heres what hasnt been deployed on master yet: https://github.com/github/github/compare/{sha}...master
  84. 84. bots github: know your branch status Zach hubot what hasn’t been deployed on issues2? Hubot Zach: Heres what hasnt been deployed on issues2 yet: https://github.com/github/github/compare/{sha}...issues2
  85. 85. bots github: know your branch status Zach hubot what hasn’t been deployed on issues2? Hubot Zach: Heres what hasnt been deployed on issues2 yet: https://github.com/github/github/compare/{sha}...issues2
  86. 86. bots github: know your branch status Zach hubot what hasn’t been deployed on issues2? Hubot Zach: Heres what hasnt been deployed on issues2 yet: https://github.com/github/github/compare/{sha}...issues2
  87. 87. bots github: know your branch statushttps://github.com/site/sha#=> 2c8c2e9932d0caceecd3ed8ee2adcda0ece3e564
  88. 88. bots github: using the API Zach hubot what are the pulls on holman/boom? Hubot HTTParty should only be a soft dependency (master...jimmycuadra:soft-dependency) by jimmycuadra https://github.com/holman/boom/pull/46 boom roulette (master...culvr:master) by culvr https://github.com/holman/boom/pull/43
  89. 89. bots github: using the API Zach hubot how many issues did we close today for github/github? Hubot 13 issues closed on github/github in the past 24 hours.
  90. 90. bots githubWhat does your company do over and over again?Can you automate that?
  91. 91. HUB OT R ECAPHUBOT KNOWS WHERE YOU LIVEDO NOT TRUST HIM
  92. 92. everyone has secrets
  93. 93. WE TUCK STUFF AWAY SOMETIMES. OOPS.
  94. 94. EMOJIFOR ACADEMICS, BROWORDS ARE :heart: :+1: :shipit: ...and so much more: http://git.io/dmWZWg
  95. 95. SHORTCUTS ALL SLOW-LIKEQUIT MAKING ME DO THINGS w t ?
  96. 96. IMAGES WITH PIXELSEVERYTHING IS BETTER![title](url)
  97. 97. DIFF+PATCH ME TEXTGOD I HATE PIXELS JUST GIVE .diff + .patch after most URLs
  98. 98. FENCED CODE FENCESIT’S LIKE CODE BUT WITH MORE require redcarpet markdown = Redcarpet.new("Hello World!") puts markdown.to_html
  99. 99. FENCED CODE FENCESIT’S LIKE CODE BUT WITH MORE ```ruby require redcarpet markdown = Redcarpet.new("Hello World!") puts markdown.to_html ```
  100. 100. FENCED CODE FENCESIT’S LIKE CODE BUT WITH MORE require redcarpet markdown = Redcarpet.new("Hello World!") puts markdown.to_html
  101. 101. MENTIONS YOUR WORKGET SOMEONE ELSE TO DO pull requests @username issues commits
  102. 102. WHITESPACEIT SUCKS ?w=1 add to URLs
  103. 103. REPO REFERENCESAROUNDAROUND THE REPO, AROUND THE REPO, user/repo#issue
  104. 104. GIT.IO ANNOUNCEMENTOFFICIAL LAUNCH https://github.com/holman/really- fucking-long-url-wtf-is-u-doing git.io/url
  105. 105. GIT.IO ANNOUNCEMENTOFFICIAL LAUNCHcurl -i http://git.io -F url=#{url} #{code} http://git.io/nxVVig
  106. 106. THE BIG R ECAPSIMPLE BETTER AWESOMETOOLS + PROCESS = PRODUCT
  107. 107. thanks!
  108. 108. zach holmanzachholman.com/talkstwitter+github: @holman

×