Slide 1

Slide 1 text

GENERATORS WIZARDS & SCROLLS @drnic @ RubyIreland 2012-4-17 ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS

Slide 2

Slide 2 text

YOUR COMPANY NAME | LONG AND INTERESTING PRESENTATION TITLE | VERSION NO. XX | 06 /02/2012 “wearing my twitter shirt” at RailsUnderground, London

Slide 3

Slide 3 text

YOUR COMPANY NAME | LONG AND INTERESTING PRESENTATION TITLE | VERSION NO. XX | 06 /02/2012 Tony Stark at NordicRuby, Gothenburg “wearing my twitter shirt” at RailsUnderground, London

Slide 4

Slide 4 text

YOUR COMPANY NAME | LONG AND INTERESTING PRESENTATION TITLE | VERSION NO. XX | 06 /02/2012 Tony Stark at NordicRuby, Gothenburg Tinker Bell at CodeConf, San Francisco “wearing my twitter shirt” at RailsUnderground, London

Slide 5

Slide 5 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS WHAT You know a generator when you see it

Slide 6

Slide 6 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS APPLICATION GENERATORS Let’s make a new app

Slide 7

Slide 7 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS xCode

Slide 8

Slide 8 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS visual studio

Slide 9

Slide 9 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS rails

Slide 10

Slide 10 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS app generators • All this code is needed but… • “Just start editing here” • Prepopulated defaults

Slide 11

Slide 11 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS COMPONENT GENERATORS Add something to an app

Slide 12

Slide 12 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS rails

Slide 13

Slide 13 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS plugins

Slide 14

Slide 14 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS component generators • Encourage best practise • “This ‘test’ folder must be important”

Slide 15

Slide 15 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS BUT WHY? Why do we use them? Why should you write them?

Slide 16

Slide 16 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS buy once read never

Slide 17

Slide 17 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS learn in 10 mins or less

Slide 18

Slide 18 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS development and production different

Slide 19

Slide 19 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS old path to adoption • Microsoft releases something • Microsoft Press sells a book • Read the book • Buy the Microsoft thing • Use the Microsoft thing

Slide 20

Slide 20 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS because i say so

Slide 21

Slide 21 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS 1000s of options

Slide 22

Slide 22 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS how to choose?

Slide 23

Slide 23 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS try them all?!

Slide 24

Slide 24 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS

Slide 25

Slide 25 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS because i say so

Slide 26

Slide 26 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS because of tweets

Slide 27

Slide 27 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS new path to adoption • Heard about something • Try it - generators/scrolls • Advocate it - “this is great” • Learn about it

Slide 28

Slide 28 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS alternate new path to adoption • Heard about something • Advocate it “this looks great" • Try it • Learn about it

Slide 29

Slide 29 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS TRY IT How fast can you be successful?

Slide 30

Slide 30 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS succeed fast

Slide 31

Slide 31 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS also great

Slide 32

Slide 32 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS try this. ha! oh no!

Slide 33

Slide 33 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS Much better!

Slide 34

Slide 34 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS barriers to adoption • “How do I try it?” • “How do I add it to my app?” • “How do I know if I’m doing it right?”

Slide 35

Slide 35 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS WIZARDS Help me. For the love of God.

Slide 36

Slide 36 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS wizards 1. Question about something 2.Choose some option 3. Confirm something 4. Done

Slide 37

Slide 37 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS without a wizard resource_pools: - name: common network: default size: 3 stemcell: name: bosh-stemcell version: 0.5.1 cloud_properties: instance_type: m1.small availability_zone: key_name: jobs: - name: nginx template: nginx instances: 1 resource_pool: common networks: - name: default default: [dns, gateway] - name: nginx static_ips: - 23.23.247.237

Slide 38

Slide 38 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS without a wizard resource_pools: - name: common network: default size: 3 stemcell: name: bosh-stemcell version: 0.5.1 cloud_properties: instance_type: m1.small availability_zone: key_name: jobs: - name: nginx template: nginx instances: 1 resource_pool: common networks: - name: default default: [dns, gateway] - name: nginx static_ips: - 23.23.247.237 is this correct?! how do I change it?!

Slide 39

Slide 39 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS so far... • I can’t love it until I can try it • Generators are good • Wizards are good

Slide 40

Slide 40 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS SCROLLS Magically transform applications

Slide 41

Slide 41 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS the problem existing App new App Add new thing super App

Slide 42

Slide 42 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS the goal existing App new App apply scroll super App

Slide 43

Slide 43 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS install it store it deploy it new APp

Slide 44

Slide 44 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS install it existing APp proposal

Slide 45

Slide 45 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS scroll gem 'sidekiq' __END__ name: Sidekiq description: Background work author: drnic website:

Slide 46

Slide 46 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS scroll gem 'sidekiq' __END__ name: Sidekiq description: Background work author: drnic website: script metadata

Slide 47

Slide 47 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS exclusive: worker category: worker requires: [redis] run_after: [redis, engineyard_recipes_on_deploy] run_before: [] extra metadata

Slide 48

Slide 48 text

YOUR COMPANY NAME | LONG AND INTERESTING PRESENTATION TITLE | VERSION NO. XX | 06 /02/2012 dependencies scrolls new myapp -s resque engineyard => redis, resque, git, github, engineyard_recipes_on_deploy, engineyard

Slide 49

Slide 49 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS gem 'cucumber-rails' after_bundler do generate 'cucumber:install' end after_everything do end three stages

Slide 50

Slide 50 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS three stages 1. Add gems 2.After bundler, run generators 3. After everything, deploy!

Slide 51

Slide 51 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS SCROLLS USE GENERATORS

Slide 52

Slide 52 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS easy peasy

Slide 53

Slide 53 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS powered by thor

Slide 54

Slide 54 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS Deploying

Slide 55

Slide 55 text

YOUR COMPANY NAME | LONG AND INTERESTING PRESENTATION TITLE | VERSION NO. XX | 06 /02/2012 deploying scrolls new myapp -s engineyard scrolls new myapp -s heroku scrolls new myapp -s cloudfoundry

Slide 56

Slide 56 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS how to make this work?! chef: install & run buildpacks: install procfile: run ??

Slide 57

Slide 57 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS engineyard

Slide 58

Slide 58 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS engineyard chef in rubygems

Slide 59

Slide 59 text

ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS SCROLLS Magically transform applications