Remember Traffic Light Bird? Absent for most of last year, I’m happy to report that it’s back this spring:

Traffic Light Bird Returns!

We’re in the middle of the second year of online bidding for the Prince Street School Silent Auction and it seems like a good time to peel off a little more of the wrapping and talk about the technical side of the process so that others can do the same thing (I took a first stab at this last year with just the basics).

The Silent Auction is run through a slightly-modified Drupal website: the modifications that support the auction are not dramatic, and should be within the realm of anyone with some basic Drupal savvy.  Here’s what I did.

Install some Drupal Modules

Set up some ImageCache Presets

I created two ImageCache presets:

  1. displayscale to width 500 pixels
  2. thumbnailscale to height 150 pixels

I’ll use the display preset when I want to display the full-sized image and the thumbnail preset when I’m displaying a list of items with thumbnail images.

Create a Silent Auction Item Content Type

We need to keep track of a few additional items for each auction item in addition to the title and description that a standard Drupal node supports. So I installed the CCK module and created a new content type called Silent Auction Item.

I set up the content type with comments turned on, newest comments displayed first, allowed anonymous comments (but checked Anonymous posters must leave their contact information) and set comments to display Display below post or comments.

Next I added three new fields to the Silent Auction Item content type:

  • Item Number – field_itemnumber – Integer
  • Donated By – field_donatedby – Text
  • Estimated Value – field_value – Formatted decimal
  • Photo – field_photo – File

The result looks like this:

Finally, I set the Display Fields settings for the new content type so that:

  • Item Number field is excluded – we use this for internal purposes only.
  • Donated By and Estimated Value have their labels displayed in-line.
  • Photo is displayed as thumbnail image linked to node for the Teaser and as display image for the Full Node.

Create a Silent Auction Categories Taxonomy

To allow auction items to be categorized, I created a new Silent Auction Categories taxonomy, and added some terms:

I set this new Taxonomy to apply to the Silent Auction Item content type I created earlier.

Add some Silent Auction Items

Next I was ready to add some actual content to the site, so I started adding Silent Auction items using the regular Drupal Create Content mechanism. For each item I entered the Item Number (assigned manually when the item was received at the school), the title of the item (“Goalie Stick”), a category (“Sports”), a description (if I was given one), who the item was donated by, and its estimated value. I then uploaded a file (taken by the school secretary and sent to me as a JPEG) and saved the new item.

The result was something like this:

Turn “Comments” into “Bids”

With the content pretty well taken care of, now I turned my attention to setting up a way for people to bid on the items. I decided that rather than building out a more complicated dedicated Drupal module for this, I’d simply harness the already-in-place Drupal comments system and turn it into a “bids” system.

First I made some entries in the String Overrides module’s settings, changing appearances of the “comments” terminology to “bids.” I made the following entries:

  • Add new comment became Place a bid
  • Comments became Bids
  • New comments became New bids
  • Post new comment became Place a bid

Setup reCAPTCHA

To reduce the possibility of “spam bids” – not that this was a huge concern, but why create extra work for ourselves – I set up the CAPTCHA and reCAPTCHA modules (the latter required setting up a free account at recaptcha.net) so that a CAPTCHA would appear on the form with form_id of comment_form:

Hack the Comment Form

To customize the comment form itself, I created a module called customsite and in it I used the hook_form_alter to change the form:

function customsite_form_comment_form_alter(&$form, &$form_state) {
  unset($form['_author']);
  unset($form['homepage']);

  $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Your full name'),
    '#maxlength' => 60,
    '#size' => 30,
    '#default_value' => '',
    '#required' => TRUE,
    );

  $form['comment_filter']['comment'] = array(
    '#type' => 'textfield',
    '#size' => '10',
    '#title' => t('Your bid for this item.'),
    '#default_value' => '$',
    '#required' => TRUE,
  );

    $form['comment_filter']['format'][$i]['#value'] = '';
}

This had the effect of making the comment form look like this:

Create some Views

With the display of items and the handling of bidding completed, my final step was to create a couple of Views to display items and bids.

I created a view with a Page display called auction items that drives this page of the auction website; it displays all of the auction items, sorted by item number, showing the category, donated by, estimated value, and number of bids (which is just the “comment count”).

I also modified the stock node_comments view a little to customize the Recent Bids block that I display in the left-hand sidebar of the site; it shows the 5 most recent bids, with the item name, bid amount and bidding time.

Add Polish

That’s essentially it: a CCK content type holds auction item information; comments become bids. With the addition of some stock Drupal polish – menus pointing to each taxonomy item page to allow browsing by category, for example – the only additional tweak was to create an additional block in the customsite module to show how much we’d raised so far (the total of the high bids for all items):

function customsite_totalraised() {
   
    $result = db_query("select nid,max(comment) as maxbid
                            from {comments} group by nid");
   
    $total = '';
    while ($onerow = db_fetch_object($result)) {
        $bid = str_replace("$","",$onerow->maxbid);
        $total = $total + $bid ;
      }
    $block .= "<p>So far we've raised <b>\$" .
                        number_format($total,2) .
                        "</b>. Thank you (and keep bidding!)</p>";

    return $block;
}

Questions or Suggestions?

This solution has worked well over two years, but there’s always room for improvements. If you’d like to try something like this for your own silent auction and run into any stumbling blocks, feel free to ask questions here.

I’ve just added an additional 40 items to the Prince Street School Silent Auction. Online bidding is open until this Thursday at Noon.

Longtime readers may recall that back in the spring of 2006 I was called in at the last minute to prepare a so-called Pecha Kucha talk at the reboot conference. The result was Making Public Data Public[er], the story of which is here.

The essential idea of a Pecha Kucha talk – they’re also call micropresentations or lightning talks – is that each speaker presents 20 slides for 20 seconds each, making for a focused 6-minute presentation about one thing.

As such these talks are unlike you’re more traditional “one speaker drones on and one about something” that we’re all used to (a format that, when it works well, can change your life, but when it doesn’t, which is more often than not, can make for a prison-like experience).

Even if a Pecha Kucha talk is boring, at least it’s over quickly!

This spring my friends Bruce and Rob got interested in the format, and we three decided to organize an evening here in Prince Edward Island. Coincident with this I got a note from my friend-of-the-blog Valerie who lives in Vermont but summers on the Island; she’s been using Pecha Kucha in her college teaching. So we recruited her into the fold.

So, on Thursday, June 17, 2010 at the Prince Edward Island Preserve Company in New Glasgow we’re organizing PEI’s first Pecha Kucha night. We’ve got the following speakers lined up:

True to the format, each will spend 20 seconds talking about each of 20 slides on a topic of their choosing. We’ll have finger foods for snacking and a cash bar; it should be a great night, in a beautiful location.

There’s no admission to attend, and everyone is welcome, but we’d appreciate it if you would RSVP in advance at http://ruk.ca/rsvp as we need to limit attendance to 75 people.

To help us get the word out, please print and post this handy poster.

Apologies for the more gentile readers for this niche technical post, but I’m hoping to solve my technical brothers and sisters some frustrations with Trac, the excellent open source issue tracking system (we’ve been using it for more than 2 years to manage our work with Yankee Publishing, and it’s been truly transformational).

If you’re upgrading from Trac 0.11 to Trac 0.12 and you’re using Trac with Apache and mod_python you might find that after you upgrade you either get a “500 Internal Server Error” form Apache when you visit Trac or, if you have mod_python debugging on (or if you look in your Apache error log), an error message ImportError: No module named trac.

And yet you think that Trac actually is there: you can use trac-admin from the command line, and if you look where you think Trac should be (say, perhaps, in /usr/lib/python2.4/site-packages), you find that it is indeed there.

What’s going on?

It seems that Trac 0.12, at least when I installed it, installs itself as a “zipped egg.” I realized this was true when, after I did:

easy_install Trac-0.12b1.zip

I ended up with a file (not a directory) in /usr/lib/python2.4/site-packages. My earlier versions of Trac were directories, not files. This, and this helpful post that says, in part:

mod_python 3.x is still unable to import modules from .zipped .egg-files. Command-line python (even older version 2.4 which is included into RHEL5/CentOS5) imports modules from zipped eggs without any problem, but not mod_python for the same version because it overrides the standard importer in its own special way.

So, in other words, Trac is there, it’s just that mod_python can’t see it because it’s zipped. Once I knew this, the solution was easy:

easy_install --always-unzip Trac-0.12b1.zip

Installing this way ensures that the resulting egg isn’t zipped, and once I did this Trac 0.12 ran without issue.

I first met Reg Porter on Christmas Day many many years ago. We’d decided not to travel up to Ontario for the holidays, and Catherine Hennessey kindly took us in for Christmas Dinner. Sharing the table with us were David Weale, Darren Peters and Reg.

Needless to say it was an interesting meal.

I’d not laid eyes on Reg Porter again until last night when I was in the audience for the third installment of The College of Reg: The Architectural Heritage of PEI.

I’m not usually a big fan of the “bunch of heritagey people gather in the Carriage House at Beaconsfield to listen to someone talk about finials” kind of event. I’ve got nothing against heritage, nor against finials, I’m simply averse to so much listening. Especially when the subject matter is so earnest.

I’m happy to report that The College of Reg proved the exception to this.

Yes, there was a lot of listening to be done – Reg held forth, without interruption, for almost 90 minutes.

And finials reared their head a few times – I think there might have even been a suggestion that certain finials could “make your heart soar.”

The tone was indeed earnest (albeit with a certain amount of irreverence, especially in matters of church and cats).

Heading out the door when it was all done, I wouldn’t have said my life had been transformed, nor even, particularly, that I’d had a good time.

The College of Reg

But then, this morning, walking through the city on my way from dropping Oliver off at school, I passed the Paton house at 241 Prince Street and realized that something was different about my eyes.

I’d walked by that property a thousand times over the years, and suddenly I was looking at it in a different way. I noticed the “window in the chimney” and that the entrances had been covered-over, the dark-light-dark pattern of the curve over the entrance that mirrored the pattern in a French cathedral, and the many varieties of stone near the peak of the roof.

Somehow Reg Porter, without me noticing, had inserted an interest in the buildings of my everyday life into my head. And my eyes, previously blinded to all this interesting detail, were now open.

I continued down Fitzroy Street (past the “place where a church tore down a lovely house”) to Queen, past the City Hall (with its tower in which to hang hoses so they wouldn’t rot) and realized that the city will never seem the same to me.

Perhaps The College of Reg is the greatest kind of education of all, education that you don’t notice happening until it’s too late. And for that I’m truly thankful.

The final session of the college for this spring is June 7 at 7:30 p.m. at Beaconsfield. Admission is $5.00 and you don’t need to register in advance; just show up at the door. Recommended.

At long last all the bits I needed to gather together to run a real job through my Adana Eight Five press were in place on this holiday Monday: I picked up a couple of “one pound or assorted card stock” packs at DeSerres on Barrington Street in Halifax, my ink and tympan paper arrived from NA Graphics in Colorado last week, and I picked up some low-odour Varsol this morning at Canadian Tire to clean everything up when finished.

As I’d been experimenting with a Pecha Kucha poster and had its type set up in the chase, I started off with that. After a lot of thrashing around with bed and platen adjustments, amount of ink, and the press packing, the best I could pull off was this:

Pecha Kucha Poster

Rather than continue my thrashing about with such a physically large job, I decided to back off and try something more modest. The most complete typeface I have (especially when it comes to numbers-and-punctuation) is a one labelled 14 pt. Temple, so, despite my aversion to script-style faces, I decided to use that. I left the black ink on the press, and used some tiny orange card stock from my new pack, and ended up with this:

My First Letterpress Job

I’m not completely happy with it: the left-hand side, especially the capital “P” and the lower-case letter “e”, are too dark and both letter e are over-inked and slightly filled in. I expect that with a more deliberate make-ready I could achieve better results.

I noticed a few photos on the wall near the canteen on the MV Holiday Island ferry yesterday that showed the boat in dry dock and pointed out its propellor, which is probably not what you think: it’s outfitted with a Voith Schneider Propeller, in which:

“…a rotor casing which ends flush with the ship’s bottom is fitted with a number of axially parallel blades and rotates about a vertical axis. To generate thrust, each of the propeller blades performs an oscillating motion about its own axis. This is superimposed on the uniform rotary motion.”

Who knew?

For the second year in a row we’re offering online bidding for the Prince Street School Silent Auction. All you need to bid is your name and email address and your generosity. All funds raised go to support the work of the Prince Street Home and School Association.

There’s a great photo on the cover of today’s Charlottetown Guardian taken by Heather Taweel from the top of the Homburg Crane on Grafton Street:

Our house at [[100 Prince Street]] is just out of view; it’s behind the tree on the left-hand side about half-way down the photo.

You can order a reprint of the photo if you’d like a copy for yourself.

About This Blog

Photo of Peter RukavinaI am . I am a writer, letterpress printer, and a curious person.

To learn more about me, read my /nowlook at my bio, read presentations and speeches I’ve written, or get in touch (peter@rukavina.net is the quickest way). You can subscribe to an RSS feed of posts, an RSS feed of comments, or receive a daily digests of posts by email.

Search