Wednesday, October 28, 2009

The PHP Community

See The PHP Community at its new home on

Last week I was at ZendCon, the largest yearly event of the PHP community. One thing that I've been thinking about lately, and something that many other people have talked about, is how unique the PHP community is. People are generally friendly and welcoming. Rarely do you run into someone who thinks he or she is somehow better than anyone else. Sure, you'll get the occasional RTFM on a mailing list but ask anyone who's interacted with the PHP community and they'll probably have something nice to say.

I'm relatively new to the PHP community myself. Sure, I've been a PHP developer for about eight years but I hadn't really been involved in the community until I started our local PHP users group two years ago. There I met many talented local PHP developers including Matthew Weier O'Phinney, now project lead for Zend Framework. I had actually started using Zend Framework a little while before I met Matthew not realizing that one of the developers lived here in Vermont. I then went to ZendCon '08 which was my introduction to the international PHP community.

I think one of the things that makes the PHP community so strong is that we've had to build the community ourselves (my part in building the PHP community has been relatively tiny). Having had some involvement in other technology communities, I've seen the kind of support that companies like Microsoft can provide to strengthen their respective communities. During the "Meet the Zend Team" session at this year's ZendCon, Keith Casey asked what Zend was going to do to further support user groups. I was very happy to hear this question asked.

I'd like to see Zend do more to support user groups — although I don't have any room to talk with Matthew being a regular attendee and presenter at our local user group. In fact, as a response to Keith's question Matthew reiterated his offer to present at other user groups if he was in the area (which, frankly, was a much better answer than the rest of the Zend team gave). Chris Cornutt published a blog post today asking what role should companies take in the developer community ecosystem. I don't think it's any one company or organization's job to support the PHP community. Help is most certainly welcome but I think our strength is in doing it ourselves.

Thursday, October 15, 2009

Beginner PHP

See Beginner PHP at its new home on

The Burlington, VT PHP Users group has been going strong for almost two years now. We've had lots of great presentations and some really experienced PHP developers at the meetings. However, I've been concerned that we might scare away PHP beginners with many of the meetings being on advanced topics. So, our next meeting topic will be Beginner PHP:

Have you recently started using PHP? Don't use PHP but want to learn more about it? The topic of this month's Burlington, VT PHP Users Group meeting will be, "Beginner PHP." Learn the basics and some tips and tricks from experienced PHP developers. Are you an experienced PHP developer? Then come to the meeting and help out some beginners! We were all beginners at some point.

Refreshments will be provided, and you'll have the chance to network and connect with fellow PHP developers. Meetings are open to the public via RSVP.

Monday, October 12, 2009

ZendCon Tips

See ZendCon Tips at its new home on

Last year was my first ZendCon experience and I'm happy to say that I'll be going again this year. Here are some tips based on my experience at last year's conference. These tips are meant for newcomers, but may be useful to alumni as well.

Participate in the backchannel. Last year's conference attendees generated over 1,500 tweets using the #zendcon hashtag and reached the top 5 trending topics on Twitter three days in a row. Over 2,200 photos were posted to Flickr using the zendcon08 tag as people traveled to, attended, and departed from the conference. There were also many blog posts and the #zendcon IRC channel on freenode was quite active. You can participate by using the Twitterslurp of ZendCon 2009 or using (I'm the co-creator of tagnabit).

Attend at least one ZendCon UnCon session. The unconference is, "a community-driven event focused on interesting topics of the moment, and engages everyone at whatever level they can." No paid speakers, no ridged structure, just sessions of interest to the community by community members. Keith Casey did an awesome job organizing last year's unconference and I suspect this year's unconference will be just as interesting!

Attend a few sessions outside of your normal topics of interest. There were a few sessions I didn't go to last year that, retrospectively, I wish I had attended. One that comes to mind was Ben Ramsey's Distribution and Publication With Atom Web Services talk. At the time I didn't know a lot about the Atom Publishing Protocol but now it's a topic that I'm very interested in. You never know what you'll learn if you introduce yourself to some topics you're not currently familiar with.

Spend some time in the "Hallway Track." ZendCon isn't just about attending sessions by some of the most respected people in the PHP community, it's also about meeting many of these same people and others from the PHP community. The PHP community tends to be very friendly, so don't be shy! In fact, you will probably have already "met" some of these people in the backchannel. If you see someone who you've talked to on Twitter or in IRC, don't be afraid to say, "Hey, I know you from Twitter/IRC!"

While I was writing this blog post, Keith Casey published a great post with some dos and dont's for your first conference. Definitely check it out before packing for ZendCon!

Tuesday, October 6, 2009

Project Retrospective

See Project Retrospective at its new home on

When Peak Organic Brewing Company started in 2005 they asked us create their website (yes, it's a table-based layout — this was 2005, get over it). When it launched the website included (and still includes as of this writing) the ability for you to "share your peak experience" with other users of the website by uploading a photo and a brief description of your experience. Other users could then view and rate these "peak experiences" and each newsletter sent would include a recent top rated "peak experience." User submissions were even selected occasionally for use on the product's packaging.

With around 500 submissions and 15,000 ratings this "share your peak experience" aspect of their website allowed Peak Organic to learn about the people who drank their beer. Even better, it allowed their customers to learn a little bit about each other. It also gave people an opportunity to contribute, quite literally, to the Peak Organic brand with the chance of having their photographs and experiences incorporated into the product's packaging and displayed on store shelves throughout the country. I liked to call this "user-generated brand," a form of user-generated content. All brands are influenced by their users but this was user-driven brand evolution made tangible. This content was also a factor in helping them reach the number one position on Google for the search term "organic beer" — sorry Vermont's own Wolaver's!

In addition to Peak Organic's website, we also created their brand identity, developed materials for their event marketing, designed their packaging, made point of sale materials, and created sell sheets. We worked with Peak Organic for several years but we no longer work with them today. I'd like to explore some things we'd do differently today knowing what we know now four years later and with the tools available today. I wouldn't suggest anyone simply try the same things we did with Peak Organic. This worked because it fit in with their brand. However, there are some things you may be able to learn from our experience (no pun intended).

First, I would "unlock" the user generated content from the website. This could be done simply through a feed of recent "peak experiences" with links back to individual experiences. This would allow people to easily access this content from outside the website. If they're engaging with the brand, why does it matter if it they're on the brand's website or not?

An alternative approach would be to have users submit their "peak experiences" to Flickr and aggregate these photographs with a tag and possibly a group (Flickr was still in beta when we first launched the Peak Organic website). The website would then consume these aggregated photos like anyone else would and could even add a metadata layer on top for implementing the rating system. This would potentially give the community more control of this content and give Peak Organic the possibility of tapping into existing communities on Flickr.

When we first launched the Peak Organic website online photo sharing was still relatively new. Since then sites like Flickr have grown exponentially and many people are at least familiar with sites like Flickr, if not sharing photos online themselves. Today, microblogging (e.g. Twitter) is relatively new but growing very quickly. This leads to the second thing I'd do differently today — experiment with tagging beyond Flickr. I'd try tweeting from various events using an event hashtag and/or a brand-specific hashtag. Relatively speaking, not many people are on Twitter yet. However, the momentum is there and mixed in with the all those tweets must be a few "peak experiences" ready to be shared. Coincidentally, the maximum length for a "peak experience" description was 150 characters, 10 more than Twitter's 140 character limit.