Friday, January 1, 2010

Year In Review

See Year In Review at its new home on bradley-holt.com.

Being the first day of 2010, I thought it would be a good time to take a look back at 2009…

Burlington, VT PHP Users Group

2009 was the second full year of the Burlington, VT PHP Users Group. We had some fun meetings and presentations including:

January
Jason Pelletier gave a presentation on CSS for Developers.
February
Aaron Carlino demonstrated SilverStripe, an open source CMS/framework built in PHP.
March
Special guest Paul Reinheimer gave a presentation called "Easy Problems are the Hard Problems" taking an in-depth look at the easy/hard parts of building web applications.
April
Rob Riggen gave a talk on website performance optimization.
May
Rene Churchill gave a presentation on MySQL database optimization.
July
Matthew Weier O'Phinney gave his Play-Doh: Modelling Your Objects presentation.
August
Matthew Weier O'Phinney presented again in August, this time giving a hands-on unit testing crash course [ODP].
September
September's meeting was a casual get-together instead of a formal meeting and presentation—a change of pace from the typical meeting format.
October
I gave a talk geared towards PHP beginners.
November
November's meeting fell on one of Zend Framework's Bug Hunt Days. Held monthly, Bug Hunt Days are designed to encourage the community to help triage and resolve issues in the framework. Matthew Weier O'Phinney guided us through effective bug reporting and taught us how to contribute patches. As part of Bug Hunt Days, my first Zend Framework patch was accepted, a small addition to the documentation.
December
December marked the second birthday of our local PHP Users Group and that month's meeting turned out to be a fun social event.

Our users group also won a free pass to ZendCon '09, and Jase Roberts was the lucky recipient. He joined fellow Vermonters Matthew Weier O'Phinney, John Valance, and me at the annual PHP conference.

The Browser

Jonathan Butler started a program on our local community radio station called The Browser. It's "a show about the people who bring the world wide web to [Burlington, VT]." Jason and I were on the show twice—once in February and again in August.

Town Meeting Day Vermont, ACM-NE, and Tagnabit

The first Tuesday of March was Town Meeting Day here in Vermont. Citizens throughout Vermont gathered together to elect local officers and vote on budgets. As an experiment we put together a website, tmdvt.net/09, to aggregate content from social media sites around Town Meeting Day Vermont '09. If you used the appropriate tags in your tweets, Flickr uploads, blog posts (if indexed by Technorati), YouTube uploads, and bookmarks on Delicious, then your content showed up on the website. I wrote a post recapping some things we learned from the experiment.

As a result of that project, Bill Simmon and Seth Mobley from Vermont Community Access Media (VCAM) approached us about doing something similar for the Alliance for Community Media Northeast Region (ACM-NE) conference they were organizing here in Burlington, VT. We built acmne.net/09 for the conference and it was a big hit. I spoke on a social media panel (which Liz Schlegel moderated) and helped with a social media workshop at the conference. Colin Rhinesmith, who was on the panel with me and also helped with the workshop, posted a good summary of the conference on his blog.

We then took the idea from Town Meeting Day Vermont and ACM-NE a step further, creating Tagnabit—aggregating tweets, photos, blog posts, videos, and bookmarks for any arbitrary tag. Bill Simmon wrote a good blog post on how Tagnabit could be used.

Jelly/Coworking

I was excited to see Jen Mincar open up a coworking space, Office Squared (o²), here in Burlington, VT in 2009. I think it will help bring more cohesiveness to the local technology community since many of her customers work in technology-related industries. As a precursor to its opening, we hosted a Jelly at Found Line in July, inviting entrepreneurs and freelancers to work in our studio for an afternoon. Here are some photos from the Jelly and another one at the Burlington Free Press.

Vermont Code Camp

September saw the first ever Vermont Code Camp, bringing together people from local technology communities around .NET, PHP, Ruby, and Python. The event was a huge success with 85 attendees and 19 sessions. I had a small part in organizing the event but the real credit goes to Rob Hale, Julie Lerman, and everyone else who organized, volunteered, and presented. I also gave a presentation on Resource-Oriented Web Services as part of the code camp.

ZendCon

ZendCon is the biggest conference of the PHP community, and this year's event was my second ZendCon. What can I say? The talks were excellent. The people were even better. I ended up co-presenting at the UnCon with Michelangelo van Dam and Anna Filina on the role of a PHP user group.

Moving On

2009 seemed to be the year for people in the PHP community to change jobs. Following that trend, I made the move to Found Line full time last month, leaving Vermont Oxford Network. As I said before I'm very happy to have more time to focus on our clients' projects and to work with free/open source software and open standards full time.

Work

2009 was a busy year. Some of the work included:

Phew—a lot to say! I hope you had a good 2009, and have an even better 2010.

Wednesday, December 23, 2009

Common Good Vermont

See Common Good Vermont at its new home on bradley-holt.com.

The other day we launched the first iteration of the Common Good Vermont website. From the about page:

Vermont (pop. 621,000) is a small, tightly knit rural state proud of its independent spirit and high levels of civic engagement. Vermont's independent sector (3000+ organizations, $4 billion annual revenue) plays a primary role in the delivery of human and cultural services and in the preservation of the state's cherished natural resources. Most social services—food, shelter, healthcare and education—are delivered within local and regional community settings.

Often separated by geography (mountains, rivers, lakes), Vermont's 251 towns and 14 counties are increasingly knit together by broadband "build-out". Common Good Vermont leverages these electronic networks to bridge the barriers of Vermont's geography and the "beaten paths" of its hyper-local networks. New human and electronic networking activities will support the delivery of information and innovation to the state's community builders: project volunteers and professionals who, by virtue of their civic and nonprofit roles and responsibilities, are the lifeblood of the "green mountain state". Common Good's place-based and community virtual events are designed to improve the capacity of so many "small networks" that, improve Vermont's unique "quality of life".

Common Good Vermont aggregates content for (and from) Vermont independents and nonprofits by pulling in RSS and Atom feeds including blogs, news sources, social bookmarks, and event calendars. The goal is to serve as an information hub encouraging knowledge sharing and increasing cross-organization communication. Content is currently organized by a combination of taxonomy (categories defined by Common Good Vermont staff) and folksonomy (tags from the feeds themselves). Our goal is to eventually remove the taxonomy layer and have all content organized completely by broad and, to a lesser extent, narrow folksonomy. However, the taxonomy layer is there for now to allow a certain amount of curation while we seek out, connect, and aggregate additional sources of information.

Common Good Vermont is built using Zend Framework and hosted on Rackspace Cloud Sites. Components from Zend Framework used include its MVC system, Zend_Application, Zend_Feed_Reader, Zend_Tag_Cloud, Zend_Search_Lucene, Zend_Paginator, Zend_Db, Zend_Date, Zend_Auth, Zend_Acl, and Zend_Form. Stay tuned for future iterations to the website!

Wednesday, December 16, 2009

Moving On

See Moving On at its new home on bradley-holt.com.

Today is my last day at Vermont Oxford Network and I will now be working at Found Line full time. This was not a decision I took lightly. Vermont Oxford Network is a great place to work and they've got an excellent team. For the last four and half years I've been developing software that improves health care for newborn infants. I feel like I've made a contribution beyond just the work. However, it's time to move on to something different.

Jason and I started Found Line almost five years ago and I'm looking forward to helping him and Liz continue to grow the business. We've got some really great clients and I'm very happy to have more time to focus on their projects. I'm also excited about the opportunity to work with free/open source software and open standards full time. So, time to go catch up on some work!

Wednesday, December 2, 2009

RedEye Universal Remote Control

See RedEye Universal Remote Control at its new home on bradley-holt.com.

Today one of our clients, ThinkFlood, launched their RedEye Universal Remote Control for the iPhone and iPod touch. The device and application combination allows you to "use your iPhone or iPod touch to control your TV, stereo, cable box, DVD player, and many other devices that receive standard (infrared) signals." The product launch got some great press coverage including from CrunchGear, Gizmodo, Macworld, iPodNN, Engadget, TUAW, and Wired’s Gadget Lab. Our work with ThinkFlood has included developing their brand identity, packaging, and website.

The latest iteration of the website includes eCommerce functionality allowing ThinkFlood to sell their RedEye device directly to consumers. The eCommerce section includes a shopping cart and an easy-to-use two page checkout process. While the checkout process is simple for end users, there's quite a lot happening behind the scenes with the integration of multiple APIs. The website is built using Zend Framework and thanks to Rackspace Cloud Sites everything has remained running smoothly even with all of the press coverage and associated traffic.

Wednesday, November 18, 2009

Bug Hunting

See Bug Hunting at its new home on bradley-holt.com.

If you are a PHP developer in the Burlington, Vermont area then you should come to tomorrow (11/19) evening's PHP Users Group meeting at the newly opened Office Squared coworking space in downtown Burlington. This month we will be learning how to find and fix bugs in free and open source projects. From the meeting description:

Each third Thursday and Friday of the month, Zend Framework has Bug Hunt Days in which the community helps triage issues and resolve them. These efforts include everything from fixing typos in documentation to creating reproduce cases and capturing them in unit tests to actual creation of patches resolving reported bugs.

Since this month's meeting falls on the third Thursday, Matthew Weier O'Phinney, Project Lead for Zend Framework, thought we could join in on this effort or help contribute to other projects. He will be providing a short presentation on effective bug reporting and triage, after which we will jump into some actual bug hunting on projects you, the attendees, are interested in.

So come with your laptops ready, and let's fix some bugs!

PHP developers of all skill levels are welcome. There are many types of contributions needed to keep free and open source projects moving forward. You will likely have something you can contribute — and you'll learn a lot doing it!

Wednesday, November 11, 2009

Rackspace Cloud Sites

See Rackspace Cloud Sites at its new home on bradley-holt.com.

We've been a Rackspace Cloud Sites (formerly Mosso) customer for about three years. In fact, I signed up as a beta tester when it was originally called "the system beats the machine." I doubt many people that work at Rackspace even know that it once had that rather odd name. Honestly, it was very rocky at the beginning (even after it was officially out of beta) but today it's a very solid platform. I've been a fan of Rackspace for years and would recommend them to anyone who needs dedicated and managed servers, virtual servers, storage delivery, our cloud hosting.

As much as I like Rackspace, the point of this blog post isn't to praise them. They've been making a big marketing push on their cloud offerings lately but I get the impression that Cloud Sites (the service we use) is the, "oh, yeah, we offer that too" service. They seem to be unaware of the potential of one of their own service offerings and push people who need a "serious" solution to Cloud Servers. Cloud Sites is an excellent platform as a service for people running PHP or .NET web applications who have better things to do with their time than manage the hardware or software layers below their PHP or .NET applications. Sure, Cloud Servers takes away the hardware layer management but you still have to manage the software layer (operating system, PHP or .NET, MySQL, etc.) yourself and deploy individual virtual servers if you need more capacity.

Part of this impression comes from Rackspace's recent marketing efforts around their cloud offerings. Some of it also comes from the technology behind Cloud Sites. For example, one of the big pain points (for me) with Cloud Sites is lack of support for features that would make application deployments easier. I understand why ssh isn't supported since there is no single machine to remote into. They do support sshfs which is useful and solves part of that problem. However, support for public key authentication and symlinks (symlinks work but aren't officially supported) would go a long way towards making application deployments less painful. It's my impression that features like these aren't included in Cloud Sites because Rackspace thinks that people who want them should use Cloud Servers instead. If that is what they think, then they're missing the point of how dead simple and awesome an application platform Cloud Sites could be.

Beginner PHP Code Examples

See Beginner PHP Code Examples at its new home on bradley-holt.com.

At last month's Burlington, VT PHP Users Group meeting I presented a session on beginner PHP. The code examples can be downloaded (or forked) from GitHub. The talk was geared towards complete beginners and covered the basic structure of a PHP script, variables, comments, data types, arrays (enumerative, associative and multi-dimensional), operators, conditionals, iterative constructs, functions, scope, web forms and database access. I've licensed the code examples under the New BSD license in case anyone wants to use and/or modify them for their own beginner PHP talk.