Appable Plugins

I gave a presentation in May 2007 to the Philly on Rails Folks. It was a lot of fun, and my friend, Nat, bought me some tall boys. He also took a couple good pictures.

Would you like to peer into my inner being? Yes? Here are my notes.

>> Creating Product Lines With Appable Plugins
    * Appable Plugins was made by http://pluginaweek.org.
    * Plugins Plus
    * It allows you to build large functional  chunks of functionality that can be moved between products.  
    * Really Simple to use

>> JAVA
    * Java is not reflective enough to properly decouple components

>> Rails Engines
    * Allows separate MVC, but still not decoupled

>> Appable Plugins
    * Separate MVC
    * Code Mixing
    * Migrations
    * Dependencies
    * Deployable as Gems

>> Users
    * Want to write a plugin that encapsulates user logic
      * DB Models
      * Login Page
      * Profile Page
      !!! Create User App !!!
      !!! Giver her a whirl !!!

>> Beer
    * We want our app to use beer
      !!! Write in Beer plugin !!!

>> Users + Beer
    * Our app is about users having beer, so tie to the two together down at the core
    !!! Users habtm beers !!!

>> A Hypothetical Interruption by DHH
    DHH: I thought you said the components were loosely coupled.
    ME:  Yeah
    DHH: Well, now you've explicitly tied beers and users together.  Hardly sounds decoupled.
    ME:  Well not really.  We've defined two pieces of code that encapsulate their logic quite well, And only defined how the two interact in our core project.
    ME:  So, instead of defining our product as a bunch of pages, models, and controllers, we're defining our product by how big chunks tie together.
    DHH:
    DHH: Fuck You

>> Plugin Dependencies
    * We want to reusable code that depends on other reusable code
    !!! Hack up Blog...? !!!