Slide 1

Slide 1 text

Pluginize ALL the things Thursday, March 21, 13

Slide 2

Slide 2 text

n Developer and Operations at seatgeek.com n Cake Core - Plugins Site and IRC Troll n Open Source Contributor (github.com/josegonzalez) about Thursday, March 21, 13

Slide 3

Slide 3 text

Finding Code Thursday, March 21, 13

Slide 4

Slide 4 text

popular sites n plugins.cakephp.org Thursday, March 21, 13

Slide 5

Slide 5 text

popular sites n plugins.cakephp.org n github.com Thursday, March 21, 13

Slide 6

Slide 6 text

alternative methods n google alerts Thursday, March 21, 13

Slide 7

Slide 7 text

alternative methods n google alerts n twitter #cakephp Thursday, March 21, 13

Slide 8

Slide 8 text

alternative methods n google alerts n twitter #cakephp n IRC releases Thursday, March 21, 13

Slide 9

Slide 9 text

alternative methods n google alerts n twitter #cakephp n IRC releases n online guides Thursday, March 21, 13

Slide 10

Slide 10 text

Plugin Requirements Thursday, March 21, 13

Slide 11

Slide 11 text

DOES IT WORK? Thursday, March 21, 13

Slide 12

Slide 12 text

does it work? n Does it do what I need? Thursday, March 21, 13

Slide 13

Slide 13 text

does it work? n Does it do what I need? n Does it break often? Thursday, March 21, 13

Slide 14

Slide 14 text

does it work? n Does it do what I need? n Does it break often? n If it’s broken, don’t fix it Thursday, March 21, 13

Slide 15

Slide 15 text

CODEBASE Thursday, March 21, 13

Slide 16

Slide 16 text

codebase n Standard Syntax usage Thursday, March 21, 13

Slide 17

Slide 17 text

codebase n Standard Syntax usage n Proper Implementation of something Thursday, March 21, 13

Slide 18

Slide 18 text

codebase n Standard Syntax usage n Proper Implementation of something n Single install, few dependencies Thursday, March 21, 13

Slide 19

Slide 19 text

USERBASE Thursday, March 21, 13

Slide 20

Slide 20 text

userbase n Forks/Watches Thursday, March 21, 13

Slide 21

Slide 21 text

userbase n Forks/Watches n Issues promptly responded to Thursday, March 21, 13

Slide 22

Slide 22 text

userbase n Forks/Watches n Issues promptly responded to n Positive feedback Thursday, March 21, 13

Slide 23

Slide 23 text

DOCUMENTATION Thursday, March 21, 13

Slide 24

Slide 24 text

documentation n Wikis make a poor readme Thursday, March 21, 13

Slide 25

Slide 25 text

n Wikis make a poor readme n Provides explicit usage docs documentation Thursday, March 21, 13

Slide 26

Slide 26 text

n Wikis make a poor readme n Provides explicit usage docs n Well formatted, easy to read documentation Thursday, March 21, 13

Slide 27

Slide 27 text

DEVELOPMENT Thursday, March 21, 13

Slide 28

Slide 28 text

development n Few or decreasing issues Thursday, March 21, 13

Slide 29

Slide 29 text

n Few or decreasing issues n Recent commits development Thursday, March 21, 13

Slide 30

Slide 30 text

n Few or decreasing issues n Recent commits n Developer easy to reach development Thursday, March 21, 13

Slide 31

Slide 31 text

Review Thursday, March 21, 13

Slide 32

Slide 32 text

n Readme is weak, no wiki n Last commit was 9 months ago n Codebase is largely spaghetti code n No downloadable release josegonzalez/git-php Thursday, March 21, 13

Slide 33

Slide 33 text

n Readme is weak, no wiki n Last commit was 9 months ago n Codebase is largely spaghetti code n No downloadable release josegonzalez/git-php FAIL Thursday, March 21, 13

Slide 34

Slide 34 text

n Readme points to wiki n Actively updated n Strong developers, Core Contributors n Pulls and issues actively closed cakephp/debug_kit Thursday, March 21, 13

Slide 35

Slide 35 text

n Readme points to wiki n Actively updated n Strong developers, Core Contributors n Pulls and issues actively closed cakephp/debug_kit wIN Thursday, March 21, 13

Slide 36

Slide 36 text

Contributing Thursday, March 21, 13

Slide 37

Slide 37 text

pull requests are IGNORED Thursday, March 21, 13

Slide 38

Slide 38 text

we have dayjobs too! Thursday, March 21, 13

Slide 39

Slide 39 text

test ALL the things Thursday, March 21, 13

Slide 40

Slide 40 text

Don’t forget documentation Thursday, March 21, 13

Slide 41

Slide 41 text

fire, but don’t FORGET Thursday, March 21, 13

Slide 42

Slide 42 text

Releasing Thursday, March 21, 13

Slide 43

Slide 43 text

USE GITHUB Thursday, March 21, 13

Slide 44

Slide 44 text

include a README Thursday, March 21, 13

Slide 45

Slide 45 text

have at least ONE test Thursday, March 21, 13

Slide 46

Slide 46 text

use COMPOSER for releases Thursday, March 21, 13

Slide 47

Slide 47 text

submit it to plugins.cakephp.org Thursday, March 21, 13

Slide 48

Slide 48 text

Awesome Plugins Thursday, March 21, 13

Slide 49

Slide 49 text

n OAuth in a few lines of code n Handles multiple providers using strategies n Lots of documentation online uzyn/cakephp-opauth Thursday, March 21, 13

Slide 50

Slide 50 text

n public $actsAs = array(‘Upload’) n Large set of tests n Little or no automagic josegonzalez/upload Thursday, March 21, 13

Slide 51

Slide 51 text

n Resque::enqueue('default', 'SomeJob', array('work', $id) n Redis-backed, easy setup n Jobs are just CakeShells kamisama/cake-resque Thursday, March 21, 13

Slide 52

Slide 52 text

n $this->AssetCompress->script(‘bundle_name’) n Handles CSS and JS, pluggable backends n Possible to integrate with CDNs n Very extensible and Cake-Aware markstory/asset_compress Thursday, March 21, 13

Slide 53

Slide 53 text

n Console/cake Migrations.migration run n Easy to add migration callbacks n Lots of easy to understand documentation n Recommended over SchemaShell cakedc/migrations Thursday, March 21, 13

Slide 54

Slide 54 text

n Clean integration with ElasticSearch n Provides data migration into/out of ES n Supports most ES features; Conforms to CakePHP standards dkullman/elastic-search Thursday, March 21, 13

Slide 55

Slide 55 text

n localhost/posts/view/1.pdf n PDF Generation in a pinch n Supports multiple backends ceeram/cakepdf Thursday, March 21, 13

Slide 56

Slide 56 text

Questions? Thursday, March 21, 13