jyee's blog

  • Drupalcon Portland 2013: Thinking about community in new ways

    Jan 07, 2013

    Drupal has an amazingly diverse, yet cohesive and welcoming community which has prompted the phrase, "Come for the code, stay for the community" to become the unofficial Drupal motto. Like past Drupalcons, Drupalcon Portland will not only be full of knowledge sharing and skill honing, but community building. But the term "community" is a bit misleading. While regional user groups, camps and summits are most commonly thought of when referring to community, a large part of participating in the Drupal community is contributing code. In short, Community is code!

    With that in mind, I'd like to invite you to submit a Drupalcon session for the community track. We're still accepting sessions focusing on better ways to start and run local meetups and camps, but let's start thinking about sessions that rock the boat and shake things up.

    • How have you connected Drupal users in new and innovative ways?
    • What are ways that we can better encourage contributors or mentor users?
    • How can the community be more welcoming or streamline the contributor process?
    • The Drupal 8 code freeze is coming! How can new contributors help with your initiative or project?

    More information about the Drupalcon Community Track is available on the Drupalcon Portland site. The call for papers closes February 15, so submit your session soon!

  • June 2012 Portland Drupal Meetup

    Jun 19, 2012

    The June Portland Drupal meetup was all about framework demos!

    Sean Larkin of ThinkShout started the meetup with a presentation on RedHen CRM. Up until recently, CiviCRM has been the defacto CRM of choice for Drupal sites, due in part to the lack of drupal modules that provided core CRM functionality and the fact that CiviCRM provides a lot of functionality out-of-the-box. Unfortunately, CiviCRM is often too prescriptive for many organizations and the more an organization needs to deviate from the prescribed CiviCRM way of accomplishing a task, the more CiviCRM turns from a solution into a detriment.

    There have been a few native Drupal CRM projects released since Drupal 7 was released. The Party module is part of a larger Drupal CRM movement that is working to fill in the missing CRM functionality gaps between existing Drupal modules. CRM Core strives to be a more out-of-the-box Drupal CRM solution. The distinguishing aspect of RedHen CRM is that it's a framework. Similar to how Drupal Commerce has been abstracted to accommodate infinite variations of online stores, RedHen was designed to flexibly adapt to how organizations manage their constituents.

    To keep everything flexible, RedHen leverages the Entity API, which allows users to create custom contact types. RedHen also leverages the Relation module to associate contacts in a flexible way. This allows RedHen to provide advanced functionality, like defining primary contacts for organizational contacts and propagating organizational roles to individual contacts.

    RedHen is currently released under the "development" status, but Sean clarified that it is stable and usable for core CRM functionality.

    Following the RedHen presentation, Philippe Blanc presented on BIG, an application platform that he's developing. BIG is a collection of modules (yet to be released on drupal.org), that help create partitioned user application containers. BIG accomplishes this in a streamlined way by simplifying the login and registration system. With BIG, Drupal user ids are simply the user's email address. This allows the login and registration pages to be combined into one page. When a user enters their email address, the BIG system performs and ajax lookup. If the user exists, they receive a password field. If the user does not exist, the system can either automatically create an account or prompt the user to register.

    Once a user has an account, BIG allows users to set a custom domain or subdomain that will point to their application container. While this has been possible with Drupal's multisite system, Philippe has created a solution that allows this to work on a single site install with a set of shared files and single database. The shared files allow for easier administration, as updating a module applies to all sites in the system.

    BIG has a number of interesting goals that it hopes to address and we look forward to watching it progress and grow.

    Following the demos, general announcements were made. Every third Thursday of the month, the Portland Front End user group meets at the Funny Monkey offices. There will also be a globally coordinated drupal.org sprint on July 14 and 15th, where Portland Drupalers can help move drupal.org to Drupal 7 in conjunction with sprints in the UK, Sweden, Peru and elsewhere around the globe. We will also have a Drupal presence at OSCon 2012 and are looking for people to help promote Drupal at the booth. More information about upcoming events and opportunities can be found at the Portland Drupal group page.

  • May 2012 Portland Drupal Meetup

    May 14, 2012

    The May Portland Drupal meetup kicked off with a round of introductions and some brief sharing about cool things attendees are doing with Drupal. More than a few people mentioned working on Apache Solr integration and Drupal Commerce. Others mentioned helping with the Drupal.org upgrade to Drupal 7 (the site currently runs on Drupal 6).

    Part of the Drupal.org upgrade process has been a shift to Behavior Driven Development (BDD). Melissa and Jonathan have been contributing to that effort and presented on BDD.

    Many developers are familiar with Test-driven Development and BDD is an extension of that and a response to its perceived problems. One common complaint about Test-driven Development is that the unit tests, or granular pieces of functionality, can often drive the larger test and lead to overall tests that are misguided. BDD focuses on the end user behavior so that the overall test can drive smaller unit tests.

    To do this, BDD starts with a "feature" that explains a basic business or functional need in a single, structured sentence. A basic example of a feature is: "In order to read this blog post, as a visitor to the OpenSourcery website, you need to view this page."

    Following the feature is a "scenario" presented in a "Given," "When," "Then" format. Given that you are on the OpenSourcery website homepage, when you click the Blog link and click the "May 2012 Portland Drupal Meetup" link, then you will see the "May 2012 Portland Drupal Meetup" page. Since the behavior is first defined in the feature, it's easy to see how you could have multiple scenarios to accomplish the feature (e.g. clicking a link from the Blog's RSS feed or from the Drupal Planet).

    Drupal.org has adopted Behat, a popular and growing BDD framework for PHP. Once you have a scenario written, Behat will generate a scaffold of test code based on your scenario. You can then fill in the scaffold with your actual test code.

    You can find more information about the BDD work on Drupal.org by visiting the Doobie project. There's also a Behat project that you can use to apply BDD to your own site. Information about BDD and where it fits into current Drupal testing was presented by Moshe Weitzman at DrupalCon Denver.

    Following the presentation, the meetup broke into smaller groups and began writing features and contributing them in the Doobie issue queue, so that others could continue working to write scenarios and tests.

    Feeling productive from our feature contributions, we headed over to The Lucky Lab Beer Hall for food, drinks and continued discussions. More information about future Portland area meetups (including the newly formed Drupal Front End meetup and DrupalCon Portland volunteer meetings) can be found on the Portland Drupal Groups page.