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

PyConZA 2014: "How I Became A Cookie Monster" by Michael Joseph

Pycon ZA
October 03, 2014

PyConZA 2014: "How I Became A Cookie Monster" by Michael Joseph

My journey from a user of the awesome cookiecutter, to a core member of an awesome += 1 community.

I've learned a lot from the modest and multi-talented @audreyr about leading a community, writing clean cross-platform Python code and putting the B in BFDL.

My talk aims to introduce cookiecutter to a wider audience (if you're at a PyCon and you create new projects, you need to use it) and to chart my progress from the outside to the inside of an open source project.

Pycon ZA

October 03, 2014
Tweet

More Decks by Pycon ZA

Other Decks in Programming

Transcript

  1. how me became cookiemonster http://michaeljoseph.github.io/cookiemonster 1 / 74

  2. User to Complainer to Helper to Core 2 / 74

  3. an evolution of contributing to the development of an open

    source software development 3 / 74
  4. me talk about me 4 / 74

  5. polyglot VB 5 / 74

  6. polyglot VB Java 6 / 74

  7. polyglot VB Java PHP 7 / 74

  8. polyglot VB Java PHP C Sharp (thanks Markdown) 8 /

    74
  9. polyglot Python 9 / 74

  10. polyglot Python Ruby (shush) 10 / 74

  11. me live in terminal so... 11 / 74

  12. me CLIs because me automation 12 / 74

  13. 13 / 74

  14. 14 / 74

  15. 15 / 74

  16. 16 / 74

  17. lightning talk ? How me Learned To Stop Worrying And

    Love The CLI 17 / 74
  18. https://github.com/audreyr/cookiecutter 18 / 74

  19. 19 / 74

  20. 20 / 74

  21. 21 / 74

  22. why me cookiecutter as a programming user Starting a new

    project should be as easy as g i t c h e c k o u t - b n e w - f e a t u r e 22 / 74
  23. why me hacking on cookiecutter Python (obvs) 23 / 74

  24. why me hacking on cookiecutter Python (obvs) Command line I/O

    24 / 74
  25. why me cookiecutter as a developer well documented (http://cookiecutter.rtfd.org) 25

    / 74
  26. 26 / 74

  27. we gots you covered 27 / 74

  28. 28 / 74

  29. why me cookiecutter as a programmer enthusiastic and inclusive community

    29 / 74
  30. 30 / 74

  31. 31 / 74

  32. 32 / 74

  33. Philosophy 33 / 74

  34. Philosophy The Unix Way Doing One Thing Well 34 /

    74
  35. Philosophy The Unix Way Doing One Thing Well Onion Programming

    Adding One More Layer Of Abstraction 35 / 74
  36. why me cookiecutter as a programmer 36 / 74

  37. 37 / 74

  38. use case: microservice architectures libraries, services, ui components 38 /

    74
  39. use case: web app installations 39 / 74

  40. my cookiecutter template 40 / 74

  41. cookiecutter demo 41 / 74

  42. 42 / 74

  43. my itches 43 / 74

  44. User to Complainer to Helper to Core 44 / 74

  45. origin story 45 / 74

  46. changes demo 46 / 74

  47. 47 / 74

  48. changes::start 48 / 74

  49. 49 / 74

  50. from cookiecutter.main import cookiecutter 50 / 74

  51. changes:flow 51 / 74

  52. back to the story 52 / 74

  53. 53 / 74

  54. Review 54 / 74

  55. Code small changeset, many pulls 55 / 74

  56. AUTHORS.md a s s e r t ' @ m

    i c h a e l j o s e p h ' i n o p e n ( A U T H O R S . m d ) . r e a d ( ) 56 / 74
  57. 57 / 74

  58. extra context overview 58 / 74

  59. API + CLI (context overrides) 59 / 74

  60. cookiecutter.json (template defaults) 60 / 74

  61. user context (~/.cookiecutterrc) 61 / 74

  62. we need project context (overrides) 62 / 74

  63. extra context PR tour https://github.com/audreyr/cookiecutter/pull/260 63 / 74

  64. lessons don't get carried away 64 / 74

  65. lessons don't get carried away small changes are gentler on

    reviewers (open source context is expensive) 65 / 74
  66. lessons documentation is a first class citizen 66 / 74

  67. lessons documentation is a first class citizen keep focused 67

    / 74
  68. result compromise, pragmatism and followup cherry picking is as fun

    and easy as it sounds 68 / 74
  69. summary use cookiecutter, because everyone loves cookies 69 / 74

  70. summary be open source 70 / 74

  71. summary automate 71 / 74

  72. AMA 72 / 74

  73. AMA 73 / 74

  74. me out 74 / 74