Slide 1

Slide 1 text

BOXEN

Slide 2

Slide 2 text

WFARR

Slide 3

Slide 3 text

JBARNETTE

Slide 4

Slide 4 text

! "

Slide 5

Slide 5 text

INVENTING ON PRINCIPLE

Slide 6

Slide 6 text

WHAT IN THE HELL IS MY PRINCIPLE?

Slide 7

Slide 7 text

SOFTWARE IS TERRIBLE

Slide 8

Slide 8 text

DEVELOPING SOFTWARE IS HARD

Slide 9

Slide 9 text

INTERACTING WITH SOFTWARE IS PAINFUL

Slide 10

Slide 10 text

PAINFUL SOFTWARE CREATES FRICTION

Slide 11

Slide 11 text

FRICTION GETS BETWEEN PEOPLE AND PRODUCT

Slide 12

Slide 12 text

SOFTWARE SHOULD FEEL EASY TO EVERYONE

Slide 13

Slide 13 text

SOFTWARE SHOULD GET OUT OF THE WAY

Slide 14

Slide 14 text

“Help people design, build, and ship software better, together.” "

Slide 15

Slide 15 text

“Help people more easily design, build, and ship things, with software.”

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

WE'RE GOING TO NEED MORE PORCELAIN TO ENABLE PEOPLE TO SHIP

Slide 18

Slide 18 text

SHIPPING ISN'T JUST FOR SOFTWARE, YO

Slide 19

Slide 19 text

EVERYONE IN YOUR ORGANIZATION SHIPS; HOW DOES YOUR CULTURE ENCOURAGE THAT?

Slide 20

Slide 20 text

ENABLE #

Slide 21

Slide 21 text

HOW?

Slide 22

Slide 22 text

WE NEED A MISSION STATEMENT

Slide 23

Slide 23 text

TATFT

Slide 24

Slide 24 text

T E S T A L L T H E F & % $ I N G T I M E

Slide 25

Slide 25 text

“Whatever you do, make sure you are testing, because if you aren’t, all you are doing is making it harder for yourself when you revisit the code, and making it even harder for the next developer who will inevitably have to maintain what you just wrote.” - Bryan Liles

Slide 26

Slide 26 text

$

Slide 27

Slide 27 text

“Whatever you do, make sure you are automating, because if you aren’t, all you are doing is making it harder for yourself when you revisit the problem, and making it even harder for the next person who will inevitably have to reproduce your solution.”

Slide 28

Slide 28 text

“Whatever you do, make sure you are automating, because if you aren’t, all you are doing is making it harder for yourself when you revisit the problem, and making it even harder for the next person who will inevitably have to reproduce your solution.”

Slide 29

Slide 29 text

AUTOMATE PROBLEM REPRODUCE SOLUTION

Slide 30

Slide 30 text

AUTOMATING SOLUTIONS TO PROBLEMS LEADS TO REPRODUCIBLE SOLUTIONS

Slide 31

Slide 31 text

AUTOMATING SOLUTIONS TO PROBLEMS LEADS TO REPRODUCIBLE SOLUTIONS WHICH ARE EASIER THAN SOLVING PROBLEMS UNIQUELY EACH TIME

Slide 32

Slide 32 text

AUTOMATING SOLUTIONS TO PROBLEMS LEADS TO REPRODUCIBLE SOLUTIONS WHICH ARE EASIER THAN SOLVING PROBLEMS UNIQUELY EACH TIME FOR EVERYONE

Slide 33

Slide 33 text

A U T O M A T E A L L T H E F & % $ I N G T H I N G S

Slide 34

Slide 34 text

# WORK IN ENVIRONMENTS

Slide 35

Slide 35 text

% &

Slide 36

Slide 36 text

' (

Slide 37

Slide 37 text

)

Slide 38

Slide 38 text

*

Slide 39

Slide 39 text

class github::environment { include clojure include go include mysql include nodejs include postgresql include ruby $gems = [ 'bundler', 'rails' ] ruby::gem { $gems: } }

Slide 40

Slide 40 text

class github::environment::rails { include mysql include nodejs # asset pipeline :( include ruby $gems = [ 'bundler', 'rails' ] ruby::gem { $gems: } }

Slide 41

Slide 41 text

class github::environment::webscale { include mongodb include nodejs include redis }

Slide 42

Slide 42 text

class github::environment::hipsterstack { include funding::series_a # FIXME: include business_model }

Slide 43

Slide 43 text

class github::environment::design { include photoshop # ??? }

Slide 44

Slide 44 text

class github::environment::legal { include microsoft_word # ??? }

Slide 45

Slide 45 text

class github::environment::hr { include hugs # ??? }

Slide 46

Slide 46 text

WE KNOW A THING OR TWO ABOUT DEVELOPMENT ENVIRONMENTS

Slide 47

Slide 47 text

BUT WE ARE COMPLETELY CLUELESS WHEN IT COMES TO EMPOWERING PEOPLE OUTSIDE DEVELOPER-SPACE

Slide 48

Slide 48 text

WE NEED TO UNDERSTAND DIFFERENT KINDS OF ENVIRONMENTS AND THEN MAKE THEM BETTER WITH AUTOMATION

Slide 49

Slide 49 text

TELLING THEM THEY HAVE TO USE OUR TOOLING TO AUTOMATE AWAY PAIN IS A COP-OUT

Slide 50

Slide 50 text

# WORK ON PROJECTS

Slide 51

Slide 51 text

+ github/github

Slide 52

Slide 52 text

class projects::github { github::project { 'github': mysql => true, redis => true, ruby => '2.1', } }

Slide 53

Slide 53 text

$ boxen github

Slide 54

Slide 54 text

Slide 55

Slide 55 text

AND NOW JILL DEVELOPER CAN WORK ON GITHUB

Slide 56

Slide 56 text

BUT WHAT ABOUT THOSE FOLKS IN FINANCE?

Slide 57

Slide 57 text

class projects::quarterly_taxes { # ??? }

Slide 58

Slide 58 text

class projects::financial_audit { # ??? }

Slide 59

Slide 59 text

# NEED DIFFERENT THINGS

Slide 60

Slide 60 text

# DESERVE TO BE HAPPY

Slide 61

Slide 61 text

# REALLY LIKE ,

Slide 62

Slide 62 text

OS X 10.9 "MAVERICKS" SUPPORT

Slide 63

Slide 63 text

NO MANUAL XCODE INSTALL REQUIRED

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

HIERA EVERYWHERE

Slide 66

Slide 66 text

UPDATING MODULES TO GET A NEW VERSION OF X SUCKS

Slide 67

Slide 67 text

TRYING TO RUN A SERVICE ON A DIFFERENT PORT SUCKS

Slide 68

Slide 68 text

HIERA FIXES THESE THINGS WITHOUT UGLY HACKS

Slide 69

Slide 69 text

HIERA FIXES THESE THINGS WITHOUT FORKING MODULES

Slide 70

Slide 70 text

YAML CHANGES ARE MORE APPROACHABLE THAN PUPPET

Slide 71

Slide 71 text

HINTS OF LINUX SUPPORT

Slide 72

Slide 72 text

REALLY SUBTLE HINTS

Slide 73

Slide 73 text

# grep boxen github/puppet/Puppetfile mod "nodejs", "3.2.5", :github_tarball => "boxen/puppet-nodejs" mod "phantomjs", "2.0.1", :github_tarball => "boxen/puppet-phantomjs" mod "repository", "2.2.0", :github_tarball => "boxen/puppet-repository"

Slide 74

Slide 74 text

MORE CORE MODULES WILL GET SUPPORT OVER TIME

Slide 75

Slide 75 text

PUPPETMASTER SUPPORT

Slide 76

Slide 76 text

I ACTUALLY WASN'T INVOLVED IN THIS

Slide 77

Slide 77 text

SOMEONE TOLD ME THEY HAD DONE IT YESTERDAY

Slide 78

Slide 78 text

GOOD ON YA

Slide 79

Slide 79 text

I NEED TO BUY YOU A BEER

Slide 80

Slide 80 text

MENUBAR APP

Slide 81

Slide 81 text

LAST YEAR I HAD A TERRIBLE PROOF-OF-CONCEPT

Slide 82

Slide 82 text

THIS YEAR I HAVE THE SAME PROOF-OF-CONCEPT

Slide 83

Slide 83 text

BUT GOOD NEWS

Slide 84

Slide 84 text

MY ROOMMATE IS A GITHUB FOR MAC DEVELOPER

Slide 85

Slide 85 text

THIS THING IS FINALLY GOING TO HAPPEN

Slide 86

Slide 86 text

HENSON

Slide 87

Slide 87 text

LIBRARIAN-PUPPET "WORKS"

Slide 88

Slide 88 text

LIBRARIAN-PUPPET "WORKS"-ISH

Slide 89

Slide 89 text

YOUR SOFTWARE IS BAD AND YOU SHOULD FEEL BAD

Slide 90

Slide 90 text

HENSON IS NOT A DEAD PROJECT

Slide 91

Slide 91 text

SOME OTHER PRIORITIES NEEDED OUR ATTENTION FIRST

Slide 92

Slide 92 text

CLOSING THOUGHTS

Slide 93

Slide 93 text

BOXEN IS NOT PERFECT

Slide 94

Slide 94 text

IT'S SOFTWARE

Slide 95

Slide 95 text

IT HAS MADE OUR LIVES A LOT EASIER AT GITHUB

Slide 96

Slide 96 text

IT MIGHT MAKE YOUR LIFE EASIER

Slide 97

Slide 97 text

DON'T USE IT BECAUSE THERE'S A BIG NAME ATTACHED

Slide 98

Slide 98 text

F&%$ THIS GUY

Slide 99

Slide 99 text

DO IT FOR YOU

Slide 100

Slide 100 text

HEeeeLLO BEAUTIFUL

Slide 101

Slide 101 text

THANKS