Check out Cook Inletkeeper’s awesome new “Weather & Tides” feature

At the end of last week, we pulled the trigger on the new for our friends at Cook Inletkeeper in Homer, Alaska.   It’s almost certainly the last major website I’ll launch as a staffer at Groundwire, and while it’s definitely a little bittersweet, I couldn’t be more proud of the results here.  In many ways, it’s a pretty typical “state of the art” website for a small conservation organization.  Plone makes that pretty easy these days.  But the trick I’m most proud of, both strategically and technically, is the “Weather & Tides” feature.

The staff at Cook Inkeeper dreamed up this “engagement superpower” in the course of living and working in, on and around the waters of Cook Inlet.  In Alaska, the weather is big, just like everything else.  And so are the tides.  And while there’s a ton of information about the weather and tides available online, it’s pretty scattered across different sites, and there’s no “single source” that pulls together all of the “must have” information for Cook Inlet residents.  That’s where we came in.

Inletkeeper staffer Michael Sharp, himself an avid sailor and surfer (when he’s not rocking campaign & communications strategy), identified the various sources for terrestrial and marine weather forecasts and current conditions data, and showed us a really cool iPhone app for generating tide predictions.   We took a look at the data sources–yep, all easy-to-parse RSS and XML.  And even better, it turned out that the tide prediction software underneath the iPhone app was open-source!

A few hours of development time later, my colleagues Matt Yoder and Ryan Foster had a slick, open-source and open-data powered “Weather and Tides” page for the new  Then Cook Inletkeeper asked “Hey, can you make it work great on the iPhone, too?”  Matt got his mobile-fu on, and managed to “mobilize” the page with a few clever bits of CSS and Javascript.  No custom app required, this is all straight-up HTML.  I particularly like the way you can “swipe” to move between panels.  It’s hard to tell this isn’t a native iPhone app.

A few other nice details we managed to work in:

  • The tide graph also includes a perpetual tide table, formatted to look just like Cook Inletkeeeper’s popular print tide tables booklet.
  • Cook Inletkeeper staff can point-and-click to edit the list of weather and tide stations shown.
  • The page uses cookies to automatically remember your customized settings.
  • Cook Inletkeeper staff can automatically “hot-link” to custom settings, great for customized email marketing outreach.
  • “Recommend on Facebook” button

One of the things I will miss most about Groundwire is the thrill of being able to help conceive and create fun, effective tools like that help environmental groups engage their audiences.

Migrating WordPress from Apache to Cherokee

[Sorry, this is gonna be a geeky one.  You’ve been warned.]

For the past couple of years, I’ve had this blog on a 256MB VPS slice at Rackspace Cloud, which, overall, has been a very nice ~$12/month experience.  But I’ve chafed a bit at having to restart my Apache web server instance every so often, because it has run out of RAM.  I’m just running a personal blog, goshdarnit.  How can that burn up 256MB of RAM!?!? Turns out the culprit is Apache.  Or, more accurately, the combination of Apache + PHP.  PHP prevents Apache from running in its more memory-efficient “worker” configuration, and the result is that even a site with almost no traffic can easily run out of memory.  Worse, tuning Apache to keep memory usage low means that it starts to perform really poorly.  Bottom line: it’s actually really hard to run a simple WordPress (or other PHP apps) behind Apache on a virtual private server with limited memory.

I’d been casting about for a solution, and had almost settled on using Ngnix, the increasingly popular open-source web server that lots of my friends in the Plone community really love.  But, truth be told, I was a bit intimidated by configuring it to work with PHP, even though it’s far simpler than Apache (which I also barely understand).

Then, David Bain turned me on to Cherokee.  Cherokee is a new-ish open-source web server that is designed to combine the speed of Ngnix with insane ease of configuration + deployment via a user-friendly point-and-click web administration panel.  And, sure enough, it didn’t disappoint.  In about an hour, I was able to install Cherokee, configure PHP, point Cherokee at my WordPress instance, and migrate a few rewrite rules to handle my WordPress shortlinks.

My site is now cranking out over 100 pages/second while RAM usage is well under the maximum and we’re never swapping into virtual memory. Suddenly, the WordPress editing interface feels reasonably responsive.  Vroom!

Looking into the future, I’m pretty excited about the potential to easily deploy Plone behind Cherokee.  Cherokee has built-in, easy-to-configure uWSGI support, which means that we’ll be able to start messing with Plone 4.1 + Cherokee.  (Plone 4.1 will ship with Zope 2.13, which is the first Zope 2 release to ship with unofficial WSGI support.)  This will remain “experimental” for a release or two, until the community’s had time to explore & document best practices.

Popup Forms for Plone

Shortly before dashing out the door for Pycon 2010, David Glick pushed out a 1.0 release of Popup Forms for Plone, which he and Steve McMahon built on top of Steve’s excellent Pipbox and PloneFormGen products.

Popup Forms for Plone makes it point-and-click easy to create timer-driven javascript popup forms anywhere in your Plone site.   You can see a simple example in action at Washington Conservation Voters.   It’s amazingly simple: just build your form in PloneFormGen.  (If you just want to popup a static HTML page or an image, you can use PloneFormGen’s “Form Prologue” and skip adding any form fields!)  Then, you use Plone’s portlets mechanism to assign the form to a page or folder on your site, and to configure an optional time-delay.  That’s it!  No programming, no javascript, no fuss, no bother.

Popup Forms are great for email capture forms, action alerts, user surveys, and many other calls-to-action.  If that’s what you need in your Plone site, I encourage you to check it out!

Wireframes first

Here’s a pattern I’ve observed. Many website design clients, especially those who have never been responsible for a website project before, expect to a process that goes roughly like this:

1) Talk about requirements

2) Do a complete graphic design

3) Fully implement the design in the site

4) Then move on to building out the functional elements of the site and the content.

Unfortunately, modern web development processes don’t usually work that way.

The process usually needs to go more like this:

1) Identify requirements

2) Do sitemaps and wireframe mockups to get the functional elements and information architecture right

3) Implement the technical bits

4) Do a design to make it pretty

Lots of missed expectations can easily ensue. Educating clients to the point where they can understand a wireframe can be a big — and costly — challenge.

Sightline Daily Launches

My amazing colleagues here at ONE/Northwest just launched Sightline Daily, a project we’ve been working on for the past few months for our downstairs neighbors at Sightline Institute.  (Big props to our friends at Web Collective, too, who contributed a bunch of heavy behind-the-scenes technical lifting, including some last-minute bug fixing!)

Sightline Daily covers sustainability news for the Pacific Northwest bioregion.  Originally named Tidepool, it was started over 10 years ago by Ecotrust and was acquired by Sightline Institute last year.  Each morning, Sightline Daily’s editorial team, led by the indefatigable Kristin Kolb, wakes up before dawn to scan the region’s news headlines and find the critical stories about climate, energy, fisheries, forests and more.  In addition, Sightline’s team of researchers contribute a daily dose of policy insight and wonkery through their blog, The Daily Score, which just moved over from Sightline’s main website to its new home at Sightline Daily.

The result: Cascadia’s leading source of sustainability news and analysis.  It’s an indispensable resource for anyone working to make our region more sustainable.

It’s one of the more elegant and ambitious projects we’ve worked on, and I’m really proud of it.

There’s a lot of cool strategy to share, as well as some neat behind-the-scenes technology.   I’ll have to explore both more in the near future, but the thing that thrills me the most right now is how much faster we managed to make the process of entering and categorizing 20-30 news stories per day.

We started with a close observation of the actual daily editorial process, through which Sightline Daily editors find, clip, categorize and arrange the day’s sustainability news.   Thanks to a javascript bookmarklet, an innovative custom batch editing view and some clever techniques for automatically finding related articles, we’ve created a system that cuts the daily news clipping process down from a few minutes per article to a few seconds.  (I still need to get out my stopwatch and time both systems for an exact comparison!)  This helps Sightline Daily deliver against an unforgiving daily publishing cycle (on your desk by 10AM!) and frees up time for them to do even more in-depth analysis and commentary.

And yes, it’s powered by Plone.  🙂