github github-github

112
github how uses to build zach holman

Upload: fusion2011

Post on 07-May-2015

2.190 views

Category:

Design


2 download

TRANSCRIPT

Page 1: Github github-github

githubhowuses

to build zach holman

Page 2: Github github-github

githubhowuses

to build x

Page 3: Github github-github

githubhowuses

to buildgithubgithub

Page 4: Github github-github

howuses

to buildgithub

Page 5: Github github-github

howuses

to buildgithub

Page 6: Github github-github

howuses

to buildgithubyour company

your product

Page 7: Github github-github

@holman

Page 8: Github github-github
Page 9: Github github-github

we workasynchronously

Page 10: Github github-github

WORKING ASYNCHRONOUSLY:YOU CAN DO SHIT WITHOUT NEEDING TO PULL ME OUT OF THE ZONE™.

NO MEETINGS • NO DEADLINES • NO MANAGERS

Page 11: Github github-github

CHATROOMSNO PRESENCE NEEDED

LOG ALL THE THINGSEVERYONE ON THE SAME PAGE

TIME FLEXIBILITYWORK WHEN YOU WANT TO WORK

Page 12: Github github-github

HOW GITHUB WORKSzachholman.com/posts/how-github-works

Page 13: Github github-github

PULL REQUESTS + BRANCHING ISSUES

OAUTH AS IDENTITYHOOKS & HUBOT

SECRETS

OKAY LET’S TALK ABOUT

Page 14: Github github-github

+pull requestsbranching

Page 15: Github github-github

Y’all got some weird branches.

Page 16: Github github-github

master

deploy-62

deploy-63

deploy-63b

deploy-64?

Page 17: Github github-github

REPOSITORY

TRUSTEDDEVELOPERS

FORK FORK FORK

SHITTYDEVELOPERS

ʘ‿ʘ ಠ_ಠ

Page 18: Github github-github

Keep your branches simple.

Page 19: Github github-github

How GitHub does branching:

Page 20: Github github-github

MASTER

BRANCH

Page 21: Github github-github

Everyone can push, everyone can deploy.

Page 22: Github github-github

Frees up your time frommicromanaging someone else’s code.

Page 23: Github github-github

Master is always deployable.

Page 24: Github github-github

Master is always deployable. We deploy 10-40 times a day.

Page 25: Github github-github

If you’re nervous, deploy to staging.Or deploy a branch. Or deploy to a subsetof our production boxes.

TWITTER-DRIVEN DEVELOPMENTCHECK TWITTER, SEE IF YOU BONED A DEPLOY

Page 26: Github github-github

Keep your branches simple.

Page 27: Github github-github

What about code quality?

ಠ_ಠ

Page 28: Github github-github

REQUESTSPULL

OOH! FUTURISTIC!

Page 29: Github github-github

Pull Requests are our code review.

Page 30: Github github-github

DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS

DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS DISCUSSIONS

WHATPULL REQUESTS?ARE

Page 31: Github github-github

A PULL REQUEST IS A DISCUSSION

CODE DISCUSSIONFEATURE DISCUSSION

STRATEGY DISCUSSION

Page 32: Github github-github

CODE DISCUSSIONFEATURE DISCUSSION

STRATEGY DISCUSSION

Page 33: Github github-github

REFERENCE ISSUESREVIEW CODE DIFFSWRITE CODE COMMENTS

CODE DISCUSSIONFEATURE DISCUSSION

STRATEGY DISCUSSION

Page 34: Github github-github

REFERENCE ISSUESREVIEW CODE DIFFSWRITE CODE COMMENTS

CODE DISCUSSIONFEATURE DISCUSSION

STRATEGY DISCUSSION

ALL ON A BRANCH

Page 35: Github github-github
Page 36: Github github-github

TITLE OF THE PULL REQUEST

D E S C R I P T I O NCOMMIT 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 DISCUSSDISCUSS DISCUSS DISCUSS DISCUSS DISCUSS

COMMIT COMMIT COMMIT COMMIT COMMIT COMMIT COMMIT

Page 37: Github github-github

talk about changes

show all commits

show specific code changes

Page 38: Github github-github

MASTER

BRANCH

Page 39: Github github-github

MASTER

BRANCH

PULL REQUEST

Page 40: Github github-github

BIG SECRET #1PULL REQUESTS:YOU DON’T NEEDTO FORK ANYTHING.

Page 41: Github github-github

WHY PULL REQUESTS ARE RAD:

REASONS4

Page 42: Github github-github

WHY PULL REQUESTS ARE RAD: ASYNCHRONOUS

No meetings.

Page 43: Github github-github

WHY PULL REQUESTS ARE RAD: NOTIFICATIONS

Email is your interface.

Page 44: Github github-github

WHY PULL REQUESTS ARE RAD: ACCESSIBLE

Designers can evolve mockups and entire workflows.

Non-technical staff can add their two cents.

Page 45: Github github-github

WHY PULL REQUESTS ARE RAD: HISTORICAL

Pull Requests can be experiments.

Try something out, throw it away, retain a history.

Page 46: Github github-github

GitHub’s Pull Requests

Page 47: Github github-github

Realtime™ status.github.com real-time polling

git (ssh): truegit (http): truegit (git://): truedownloads: truepages: truesvn: true

SUDDENLY,a design

Page 48: Github github-github

Realtime™ status.github.com real-time polling

POST SCREENSHOTSMIX YOUR DESIGNERS + DEVELOPERS

(AND .GIFs!)

Page 49: Github github-github

CodeMirror syntax highlighting as you type

Page 50: Github github-github

CodeMirror syntax highlighting as you type

PULL REQUESTS ARE CHEAP AS HELLDON’T BE AFRAID TO TOSS IT ALL AWAY

Page 51: Github github-github

Don’t be afraid totry to (gently) break GitHub.

8 months,couple hundred commits,dozens of mockups{

Page 52: Github github-github

Pull Requests areabout getting shit donewithout wasting a lot of time.

Page 53: Github github-github

Can your workflow be improved?Do you really need all that process?

Page 54: Github github-github

USE PULL REQUESTS MORESPEND LESS TIME AVOIDING SHIPPING

PULL REQUEST RECAP

Page 55: Github github-github

issueswe have

Page 56: Github github-github

priorities

estimates

rich media things

deadlines

redundantwatmore priorities

just trolling us now

where am i anyway

Page 57: Github github-github
Page 58: Github github-github

Can you survive on

tools?SIMPLER

Page 59: Github github-github

Can you work faster on

tools?SIMPLER

Page 60: Github github-github

Can you work better on

tools?SIMPLER

Page 61: Github github-github

Merlin Mann@hotdogsladieson email priorities :

Page 62: Github github-github

A priority is observed, not manufactured or assigned.

Otherwise, it's necessarily not a priority.

Page 63: Github github-github

Making something a BIG RED TOP TOP BIG HIGHEST #1 PRIORITY changes nothing but text styling.

If it were really important, it'd already be done. Period.

Page 64: Github github-github

PRIORITIESDEADLINESASSIGNEESESTIMATES

Page 65: Github github-github

Resist adding meta-work. It gets in the way of doing real work. (The real work will get done anyway.)

Page 66: Github github-github

3We use Issues for three things.

Page 67: Github github-github

shit, something is broken

Page 68: Github github-github

hey, this could be cool

Page 69: Github github-github

todo lists

Page 70: Github github-github

Do you need more than that?Think about it.

Most of the time, you don’t.

Page 71: Github github-github

MEANS MORE TIME BUILDING

YOUR PRODUCT

ISSUES RECAP

SIMPLE TOOLS

Page 72: Github github-github

oauth as identity

Page 73: Github github-github

RUBY IS SO FAST

FUCKI LOVE IT

SO MUCH♥

Page 74: Github github-github

~/Development/SECRETARYOFLABOR

self-referential symlink `what`single LABOR.RB web app

was super hammered when I wrote this

~/Development/unmarked_vanan app that stalks people’s locations

~/Development/tracereal-time stats graphing

Page 75: Github github-github

continuousintegration

internal appdistribution

collectdgraphs

internaltalk videos

30INTERNAL APPS

arbitrary data store

internaltwitter

ios licensing + provisioning

haystackexceptions

Page 76: Github github-github

Outsiders are not welcome.

Page 77: Github github-github

GitHub as AuthenticationTEAMS, ORGANIZATIONS, AND USERS

Page 78: Github github-github

GitHub as AuthenticationUSE OAUTH TO AUTHENTICATE USERS

Page 79: Github github-github
Page 80: Github github-github

github.com/atmos/sinatra_auth_github

github_organization_access?('github')# => true

Page 81: Github github-github

GitHub as AuthenticationSECURITY • CONSISTENCY • COOLICTY

Page 82: Github github-github

DON’T REINVENT THE WHEELYOUR AUTHENTICATION CAN BE FREE

OAUTH RECAP

Page 83: Github github-github

hooks & hubot

Page 84: Github github-github

HUBOTOUR FRIENDLY CAMPFIRE BOT

Page 85: Github github-github

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

Page 86: Github github-github

github.com/github/hubotHubot is not open source.LOL JK

Page 87: Github github-github

bots ♥ github: know your branch status

hubot what hasn’t been deployed?Zach

HubotZach: Here's what hasn't been deployed on master yet: https://github.com/github/github/compare/{sha}...master

Page 88: Github github-github

bots ♥ github: know your branch status

hubot what hasn’t been deployed on issues2?Zach

HubotZach: Here's what hasn't been deployed on issues2 yet: https://github.com/github/github/compare/{sha}...issues2

Page 89: Github github-github

bots ♥ github: know your branch status

hubot what hasn’t been deployed on issues2?Zach

HubotZach: Here's what hasn't been deployed on issues2 yet: https://github.com/github/github/compare/{sha}...issues2

Page 90: Github github-github

bots ♥ github: know your branch status

hubot what hasn’t been deployed on issues2?Zach

HubotZach: Here's what hasn't been deployed on issues2 yet: https://github.com/github/github/compare/{sha}...issues2

Page 91: Github github-github

https://github.com/site/sha

bots ♥ github: know your branch status

#=> 2c8c2e9932d0caceecd3ed8ee2adcda0ece3e564

Page 92: Github github-github

bots ♥ github: using the API

hubot what are the pulls on holman/boom?Zach

HubotHTTParty 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 culvrhttps://github.com/holman/boom/pull/43

Page 93: Github github-github

bots ♥ github: using the API

hubot how many issues did we close today for github/github?Zach

Hubot13 issues closed on github/github in the past 24 hours.

Page 94: Github github-github

bots ♥ github

What does your company do over and over again?Can you automate that?

Page 95: Github github-github

HUBOT RECAP

HUBOT KNOWS WHERE YOU LIVEDO NOT TRUST HIM

Page 96: Github github-github

secretseveryone has

Page 97: Github github-github

WE TUCK STUFF AWAY SOMETIMES. OOPS.

Page 98: Github github-github

EMOJI

:heart:

WORDS ARE FOR ACADEMICS, BRO

:+1: :shipit:

http://git.io/dmWZWg...and so much more:

Page 99: Github github-github

SHORTCUTSQUIT MAKING ME DO THINGS ALL SLOW-LIKE

w t ?

Page 100: Github github-github

IMAGESEVERYTHING IS BETTER WITH PIXELS

![title](url)

Page 101: Github github-github

DIFF+PATCHGOD I HATE PIXELS JUST GIVE ME TEXT

.diff + .patchafter most URLs

Page 102: Github github-github

require 'redcarpet'markdown = Redcarpet.new("Hello World!")puts markdown.to_html

FENCED CODEIT’S LIKE CODE BUT WITH MORE FENCES

Page 103: Github github-github

```rubyrequire 'redcarpet'markdown = Redcarpet.new("Hello World!")puts markdown.to_html```

FENCED CODEIT’S LIKE CODE BUT WITH MORE FENCES

Page 104: Github github-github

FENCED CODEIT’S LIKE CODE BUT WITH MORE FENCES

require 'redcarpet'markdown = Redcarpet.new("Hello World!")puts markdown.to_html

Page 105: Github github-github

MENTIONSGET SOMEONE ELSE TO DO YOUR WORK

@username

pull requests

issues

commits

Page 106: Github github-github

WHITESPACEIT SUCKS

add?w=1to URLs

Page 107: Github github-github

REPO REFERENCESAROUND THE REPO, AROUND THE REPO, AROUND

user/repo#issue

Page 109: Github github-github

GIT.IOOFFICIAL LAUNCH ANNOUNCEMENT

http://git.io/nxVVigcurl -i http://git.io -F 'url=#{url}' #{code}

Page 110: Github github-github

TOOLS + PROCESS = PRODUCTSIMPLE BETTER AWESOME

THE BIG RECAP

Page 111: Github github-github

thanks!

Page 112: Github github-github

zach holman zachholman.com /talks

@holmantwitter+github: