Blog Pile

Five Card Photo Story (a super crude prototype…)

Wow are my PHP coding pencils dull, but I’ve had some fun last 2 nights getting them back (we’ll see how sharp they really). I have a really crude, ugly, unformatted demo of a tool I want to use later this month for a session at the Learning 2.008 conference. So I am asking (a) for feedback on the idea I think is brilliant may not be; (b) contribution of some content by simple tagging.

This blog post will wander a bit on concept and sometimes take a nose dive into code but may surface again.

I’ve been ultra interested in the idea of telling stories in pictures. Ever since I saw Ruben Puentadora‘s workshop on web comics back in 2007 (and later at the 2008 NMC Summer Conference) a little idea has been brewing. Ruben does this fantastic group activity based on work from Scott McCloud, that makes creative work, from all things, of old Nancy cartoons. Using the Five-Card Nancy web version of Scott’s original card game, Ruben conducts an exercise in visual story weaving.

Basically, you get a shuffled deck of five panels from different Nancy cartoons, and you have to pick one at a time to, in five steps, produce a coherent story, or at least die laughing trying. The point is to make connections and discuss the reasons for the choice.

The idea that has been brewing is to create a web tool that works the same, but rather than drawing from a pool of Nancy cartoons (no offense to the Nancy-holics), draw from a pool of images, say in flickr– this is different slightly from the Flickr Tell a Story in 5 Frames, but presents another way of facing the challenge of telling a story in images only.

Right now, I have about 95 photos (all mine) tagged 5cardflickr. I have a really simple demo interface for trying this activity; you get dealt 5 photos, click the one you want, and then you get another draw of 5 new ones.

The pool, of course, is pretty limited (for now), but at the end, you should have a 5 photo story, and then I made it so you can save it, add a title, and some commentary. All of this is stored in the database to have links to stories, etc.

A really crude example (hey I am just testing) here is called Phone a Friend:

so each story has its own URL,

Now I have the pieces in place, and can in the next few days, put a prettier face on it.

Getting the images from flickr was more roundabout than I thought. What I was dreaming was something that allowed my code to ffetch a random image with a given tag. At first I thought this was a job for phpFlickr (which I did set up and tinker with like 2 years ago), but as far as I could see, there were no flickr API hooks for doing that (but it is just as likely I missed it).

So I did find some code that sort of does what I was looking for using RSS feeds from flickr and the old magpieRSS parser, which I knew well from my Feed2JS work. The sample code was kind of wonky, but I cleaned it up and got it working for the feed on my tag.

But this is hardly random; what you are getting is a random photo from the last 20 that have been tagged, since RSS feeds just track that much.

My idea then was to rig up a regular run script that would check the feed for new photos, and when found, would populate my database with a link to the flickr page, the photographers flickr name, and the tricky part, parsing out a link to the small sized version of the image.

Argh, but I had already gone and tagged like a 100 photos, so for those, I had to manually populate the database.

So here is the thing I ask- to tag some photos with the 5cardflickr tag; however, they must be newer than a few days ago, as otherwise, they wont bubble to the top of the feed. And don’t go hog wild, since with feed caching and not zinging the feed a gazillion times, I am only going to get the 20 newest every hour.

Forget this! New code allows any photo, new or old, to make it into the mix!

To create some parameters for pictures to work in this context, my suggestion is to look for photos that fit one of my themes:

  • a single person alone
  • 2 or more people interacting
  • an expression of emotion
  • a mode of transportation
  • a public place
  • an everyday object
  • an animal

And of course, these should be images you release under creative commons; my script will grab the link to the original and provide attribution when it is displayed.

I’ve set this up in a generalized way so I could create, say another, site that works the same but for a different tag.

But there’s more.

I knew ahead of time that in Shanghai for the Learning 2.008 conference, I could not rely on flickr being seen through the not so great walls of firewall. So from the outset, I knew I would need a different approach to collect the images. My Grand Idea was that before the conference, I could get some of the registered participants to share photos that fit the same categories.

As the conference site is done in ning, this would mean people attending should have accounts. So created a ning group within the conference site, the Telling Stories with Pictures Pool— and within that group I made a discussion area for each of my listed photo categories (see above), and asked people to upload or provide links to pictures.

Response has been okay and picking up. As the conference’s online portions are open, I can see no reason why people not going to Shanghai could not join the site (yes, another #^&$ing ning site).

As the way pictures are attached is not neatly suited for RSS, I’ll likely do some manual harvesting for the images (basically just need a URL for the image and a person to credit).

But the cool part is the way I set this up, I can create a new site that works the same, but just hits a different database table for the ning images.

Yep, this is crude, but I am hoping it achieves a goal of generating an activity to help people explore their visual skills of creativity. If not, oh well, its generated an activity for me to sharpen up my rusty PHP code skills.

Of course, if this idea is any good, what it really needs is a slick Ruby On Rails underbelly, a sprinkling of Ajax, and publishing final stories as flash… an exercise I will leave for the reader 😉

If this kind of stuff has value, please support me by tossing a one time PayPal kibble or monthly on Patreon
Become a patron at Patreon!
Profile Picture for CogDog The Blog
An early 90s builder of web stuff and blogging Alan Levine barks at on web storytelling (#ds106 #4life), photography, bending WordPress, and serendipity in the infinite internet river. He thinks it's weird to write about himself in the third person. And he is 100% into the Fediverse (or tells himself so) Tooting as


  1. Alan,

    I worked with the flickr api quite a bit implementing my upload to flikr function on my Customer-ized Mug Maker which allows you to mock BlackBoard then upload it directly to your flickr account. I can whip up a “get a random image from flickr tagged with my tag” script if you like. Of course it would be gratis. Email me if you would like me to do it.


Leave a Reply

Your email address will not be published. Required fields are marked *