Friday, August 29, 2008

Last Night's PHP UG Meeting

See Last Night's PHP UG Meeting at its new home on

Thanks everyone who came out to last night's PHP Users Group meeting - we had the best turnout so far! Lee Brimelow, Platform Evangelist with Adobe, gave a great presentation on Flash, Flex, AMFPHP, and the upcoming Zend_Amf. I thought his presentation was refreshingly straightforward and honest. I have several reservations with using Flash myself and he addressed those issues early on in his presentation. Those issues are primarily search engine issues, accessibility, and "breaking the web model." However, Adobe has not fully answered those questions so I still won't be using Flash except for very specific situations such as video and audio. Regardless, it was an informative presentation and interesting discussion.

Saturday, August 23, 2008

Northeast Pools & Spas Website Launch

See Northeast Pools & Spas Website Launch at its new home on

We just launched the new Northeast Pools & Spas website. I think Dave and Jason did a great job on the visual design and Liz did a fabulous job on organizing and helping to write the content! I worked primarily on the functionality for the construction and portfolio pages. The site is implemented using semantic XHTML, CSS, jQuery, and Zend Framework.

The cool thing about the construction and portfolio pages is that they use progressive enhancement. What this means is that users without JavaScript (i.e. search engine robots & screen readers) can navigate the content by fully reloading the page on each click. You can try this out yourself by disabling JavaScript in your browser. For users with JavaScript, each click on "next" or "previous" (on the construction page) or each portfolio feature (on the portfolio page) will cause their browsers to load the appropriate content dynamically into the right spot on the page without needing a full page reload.

One of the common problems with this type of JavaScript navigation is that you often break the browser's back and forward navigation capabilities. Another common problem is that you can't bookmark the page or send the link to a friend and have the same content loaded. Because these pages update the browser's "hash" we get the browser's back and forward capabilities as well as bookmarkability. The "hash" is the part of the URL that starts with the "#" character. For example, assuming you have JavaScript enabled you should be able to navigate right to the waterfall photo using the following link:

Critiques are welcome!

Friday, August 22, 2008

PHP Users Group Meeting

See PHP Users Group Meeting at its new home on

The next meeting of the Burlington, VT PHP Users Group will be Thursday, August 28th, 2008 at 6pm. Special guest Lee Brimelow, a Platform Evangelist with Adobe and an award-winning interactive designer, will discuss the various ways in which you can integrate PHP with Flash and Flex to create Rich Internet Applications. We will start by covering simple XML exchange and then move on to more high-performance options like AMFPHP. The new proposed support for Adobe's AMF in the Zend Framework will also be discussed. Free software will also be raffled off.

Tuesday, August 12, 2008

Social Media Manifesto

See Social Media Manifesto at its new home on

At Found Line, we often have people ask us about using social media as a marketing tool. Unfortunately many try to approach social media as just another marketing avenue or, even worse, as a form of advertising. Here are a few key rules you must follow or you will fail miserably.

It's not about you. It's about your users/ customers/ readers/ viewers. What are you providing that's valuable? Where is the overlap between your users' needs and wants and what you have to say?

You are not the center of your network. You are just part of a larger network. Be a good citizen. Provide something of value. Connect with other networks; grow your network.

Whatever you do, do not try to control how or what is communicated. For employees, set clear boundaries as to what is OK to publish and what isn't and don't punish employees if they say something you don't like within those boundaries. Encourage everyone (inside and out) to speak their minds. If they have something bad to say, it's an opportunity to improve your product/service. If they have something good to say then great!

Social media is not one-way. It is a conversation, not a broadcast. Don't start a conversation if you're not willing to listen. No one will listen to you if you don't listen to them.

For some interesting reading on how companies are using social media, see The New Robert Scobles: Seven Leading Corporate Social Media Evangelists Today and Zappos Shows How Social Media Is Done.

Sunday, August 3, 2008

Draft Zend_Container Proposal

See Draft Zend_Container Proposal at its new home on

Wow, my draft Zend_Container proposal got a lot more interest than I expected. I want to clarify a few things about this proposal. First, this proposal is still very much a draft. I've made a few updates this weekend, so I'd love to hear any feedback you have but keep in mind the proposal is certainly not complete. Second, this proposal is in no way endorsed by anyone at Zend although I've gotten a small amount of feedback from some Zenders in public blog comments. Third, I'm not entirely convinced that a dependency injection component fits in with Zend Framework's balance of simplicity and power. However, I believe that if Zend Framework is to have a dependency injection component that this component should be as simple as possible and designed to solve a limited set of use cases. This is why I'm working on this proposal, to provide the option of a dead-simple dependency injection component in Zend Framework.

Thanks again for all the feedback I've gotten so far!