Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Generators, Wizards and Scrolls

Generators, Wizards and Scrolls

With 1000s of open source options, and too much work to do, we need to be able to try and enjoy new projects as quickly as possible. Generators and wizards are the solution, not readmes. These combine to make App Scrolls.

Dr Nic Williams

April 19, 2012
Tweet

More Decks by Dr Nic Williams

Other Decks in Programming

Transcript

  1. YOUR COMPANY NAME | LONG AND INTERESTING PRESENTATION TITLE |

    VERSION NO. XX | 06 /02/2012 “wearing my twitter shirt” at RailsUnderground, London
  2. 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
  3. 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
  4. ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS app

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

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

    WHY? Why do we use them? Why should you write them?
  7. 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
  8. 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
  9. 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
  10. 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?”
  11. ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS wizards

    1. Question about something 2.Choose some option 3. Confirm something 4. Done
  12. 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
  13. 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?!
  14. 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
  15. ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS the

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

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

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

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

    worker category: worker requires: [redis] run_after: [redis, engineyard_recipes_on_deploy] run_before: [] extra metadata
  20. 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
  21. ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS gem

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

    stages 1. Add gems 2.After bundler, run generators 3. After everything, deploy!
  23. 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
  24. ENGINE YARD | @DRNIC | GENERATORS, WIZARDS AND SCROLLS how

    to make this work?! chef: install & run buildpacks: install procfile: run ??