Click. Connect. Learn.

All posts in Portland

Portland Education Hackfest

On Saturday, June 2, the team at FunnyMonkey participated in Hack for Portland Schools. The event was designed to brainstorm and, if possible, build, tools that help foster connections between schools and their surrounding communities. Research within Portland shows that nearly 85% of people living in Portland do not have a child in the school system. Despite this, however, many of these people have a strong interest in contributing to their schools.

However, despite the desire of people to help schools, and despite some areas where schools say that they would like community support, there are still ummet needs. These unmet needs are exacerbated now more than ever, as public education has seen several successive years of funding cuts.

Hack for Portland Schools

Our app aims to facilitate connections between schools, the professionals within schools, the students learning alongside these professionals, and people outside schools who are in a position to help.

It's also worth noting that the toolkit we are building can be used equally well by a school, a school district, or a non-profit organization bringing goods and services to schools and communities.

Our app lowers multiple barriers in connecting schools/organizations and volunteers:

  • It allows schools/organizations to define and publicize the areas where they want help;
  • It helps volunteers identify the areas where their expertise or resources will do the most good;
  • It eliminates the need for a third party to hold onto information for a school, and for a school or district to be dependent on a third party system;
  • It creates a mobile-friendly signups that work on any modern mobile device.

Using our app, a school/district/organization can create a mobile version of all signup opportunities. So, when people are doing outreach, they can sign up volunteers on the spot, and immediately get them into their database. This eliminates the gap between a person's desire to contribute, and the inertia that must be overcome to actually follow through and contribute. This also allows the organization seeking volunteers to do more focused outreach, as they can communicate with people who have already expressed an interest to contribute to a specific project.

Ideas for future expansion include:

  • integration with other donor apps via their apis (Kickstarter, Donors Choose, etc);
  • for organizations serving a broader geographical area, the addition of geographic data to allow for mapping of opportunities;
  • iCal integration;
  • in larger install, including more metadata about events to allow for more precise categorization of events
  • [your idea here] - please share any additional ideas in the comments

This app is currently available on Github - for people who just want to get started, the entire codebase is available for download. It runs within Julio, our distribution for schools and districts. This app also leverages the very awesome Registration module made by ThinkShout.

Code Review: It's A Group Thing

Coming up this Wednesday, May 11th, the Portland Drupal Users Group will be devoting the entire meeting to code reviews of full project applications.

The meetup starts at 6:00 PM, and it will be held at TigerLogic, 1532 SW Morrison St, Portland, on the 2nd floor. I have heard rumors of pizza, and possibly beer. Show up to find out if these rumors are true!

I Hate Wires

During the meeting, there are several things we're looking to accomplish:

  • Make a dent in the full project application queue;
  • Make further inroads into defining a clear, replicable process for code reviews, thereby:
    • Making it easier for new developers to get familiar with Drupal;
    • Making the application review process less painful;
    • Beginning to establish code review sprints as a new community norm, like code sprints and documentation sprints.

If you are an experienced developer in Portland, COME ON DOWN! We need you to help answer higher level questions, and review code!

If you are a developer who wants to get more involved, COME ON DOWN! We need you to ask questions, answer questions, and review some code!

If you are a themer, COME ON DOWN! We need you to help review theme applications!

If you don't write code, and don't theme, COME ON DOWN! We need you to help with documentation, as we will also be working on documentation.

We are also fortunate to have Alan Palazzolo and Chacha Sikes joining us to help run the event.

So, on Wednesday, May 11th, at 6:00 PM come on down, review some code, write some docs, and meet some great folks.

Image Credit: "I Hate Wires" taken by Robert Anthony Provost, published under an Attribution license.

Community Development and Code Reviews

All of what follows in this post is based on two core principles:

  1. Teaching and explaining a topic is the best way to master it; and
  2. The ideals of a community are best handed down from individual to indivdual as they work toward a common goal.

Toward that end, on May 11th, the Portland Drupal Users Group will be using our monthly meeting to run code reviews.

As a side note, while this writeup uses Drupal as an example, the general principles will work across projects, or in training/educational contexts outside software development.

Peer review

Benefits

Code reviews can help grow the existing pool of talented Drupal developers by providing a documented, more structured way for developers new to Drupal to begin learning the Drupal codebase, and learning how to work within the community that maintains with that codebase. Code reviews can also help alleviate one of the more consistent bottlenecks for developers looking to contribute more to Drupal: the project review process.

Code reviews reinforce good habits. The process of reviewing someone else's code forces a few things to happen:

  • The reviewer hones their developer chops by seeing how other people have solved problems;
  • By reviewing code for security issues, developers get more familiar with the best practices for writing secure code, and security issues in exiting code can be addressed;
  • By reviewing code for proper and appropriate use of Drupal's APIs, developers get more familiar with Drupal's APIs, existing modules get more stable and less likely to break on upgrades, and more people become familiar with how core works;
  • By testing and reviewing code via the Coder module, and/or using Devel as needed, easy fixes get implemented more quickly;
  • Opportunities for documentation and better test coverage can be highlighted as part of the review, leading to more automated review and better documentation.

But, most importantly: the process of providing a review of someone else's code creates a dialogue within the community. Code review is contribution and connection, and these are key elements to working successfully in the Drupal community.

Additionally, code reviews provide a clear starting point for people asking how to begin in Drupal. Not many people are going to start reading api.drupal.org without a clear context or reason to do so. Code reviews provide that context, and the process of a code review provides a structure for people coming up to speed on Drupal development. So, when someone says, "I want to get started in Drupal, but I don't know where to be begin," we now have a simple answer:

Check out this page for some background on giving code reviews, and then review some code. The process of reviewing projects will get you up to speed on how to develop in Drupal.

To summarize, code reviews:

  1. Help new developers learn Drupal development best practices;
  2. Help new developers make contributions and connections within the community;
  3. Help reduce the bottleneck of getting new projects approved. And, it's worth noting that increasing the visibility of code reviews as a valued contribution within the community will likely increase the pool of reviewers into the future.

Getting Local

There are a large number of local user groups. While a lot of work can be done virtually, the value of face to face meetups should not be overlooked or underestimated. Local user groups provide an opportunity for more exerienced and less experienced developers to get together and share ideas. If user groups dedicated one to two meetings a year to code reviews - where more experienced and less experienced developers worked together on code reviews - the habit of code reviews could start to become a recognized norm. Once a developer has become proficient in code reviews, the practice of reviewing someone else's code can just as easily be applied to reviewing their own code.

Over time, code reviews should be as familiar and as recognized as Code Sprints and Documentation Sprints. These are held at every DrupalCon, and are regular occurrences at local Drupal Camps. Given the value of code reviews in developing new talent, increasing the consistency and quality of contrib, improving collaboration between developers, and strengthening the contributions of local user groups, code reviews have a role to play in helping the Drupal community continue to grow, evolve, and mature.

Getting Started

Fortunately, getting started is the easy part. The queue for project applications is open, and you can sort by date to see the oldest projects first.

The Code Review Group is getting up to speed, and you can indicate on your profile that you are actively reviewing code. This wiki page and this handbook page both provide instructions for diving in to a code review.

And, if you are in Portland this May 11, come to the Users Group meeting and get running with some reviews.

Image Credit: "Crystal peer-reviewing Mike's code" taken by Jason Crane, published under an Attribution Non-Commercial Share Alike license.

Syndicate content