be excellent to each other (was Re: I think you meant... (was Re: web site - facelifted (v2)))

Nicholas Clark nick at
Sun Dec 14 23:34:23 GMT 2008

On Sun, Dec 14, 2008 at 09:24:05PM +0000, Andy Wardley wrote:

> I welcome testing, feedback and comments, both good and bad.  But it is
> worth bearing in mind that this is voluntary work and any complaints that 
> are
> *too* vociferous may fall on deaf ears.  Or be met with directions to the
> subversion repository :-)
> My customers are, of course, encouraged to complain as loudly as they like,
> and demand any kind of colour scheme, layout, or any other feature that they
> care for.  But then, that's what they're paying for.  Business vs pleasure.

In September, I went to the memorial service for the head of music from my
school, who died from cancer earlier in the year. One of the things that
stuck in my mind was another teacher saying that "one of the most important
things Colin taught me was that you can never say 'thank-you' enough". In
this context it was thank-you to the other teachers, for volunteering their
spare time to help organise and participate in extra-curricular
activities. Things that they didn't need to do; things that they got no
payment for. But a choice that they made that benefited everyone greatly,
and something you didn't want them to stop doing.

The issue is that if the first contact you get from a complete stranger
seems to be implying that "your software sucks", *and* that they want help
for free, it doesn't really endear them to you. It doesn't help that e-mail
is plain text, and doesn't have the emotions or nuances of tone of voice,
let alone facial expressions or body language, so it's very hard to know how
tongue-in- cheek someone's comments are. Smileys, love 'em or loathe 'em,
are actually important. But so is phrasing things carefully, so that people
can't misinterpret your intent.

For example, here's a spectacularly bad way of doing it:

    Perl 5.8.8 contains an incompatible and undetectable change to the
    public, documented POPpx macro--the macro no longer assigns the length
    of the popped value to n_a. This ChangeLog entry appears to be the
    relevant one:
    [ 25525] By: nicholas on 2005/09/21 09:32:33
    Log: Integrate:
    [ 24748]
    Convert POPpx POPpconstx and POPpbytex to use nolen macros.
    Elminate a lot of C<n_a>s
    Our code was calling POPpx then using the value assigned to n_a to
    allocate a buffer into which the returned value was copied. After
    upgrading to Perl 5.8.8, the code still compiled, but due to the POPpx
    change then passed the now-uninitialized value of n_a to the allocation
    routine. Fortunately, the value that happened to be in that memory
    location caused the allocator to throw an exception, but it could just
    as well have allocated a short buffer.
    It was highly irresponsible for someone to make an incompatible change
    to a documented, public API without ensuring that code depending on the
    old API caused the compile to fail. The macros should have been renamed
    or they should have been changed to take a different number of
    arguments. There is no telling what third party code might now have
    buffer overflow security bugs due to this incompatible change.

Then read my reply. It starts "Thanks for reporting this bug."

This was not the first phrase that sprang to mind on reading it. But it's
important to remember that we're in this for the long term, and that you may
have misinterpreted the sentiment of the tone of the message.

Now, most people are not that inconsiderate (including the individual
responsible for that report in all his other bug reports), but the
cumulative effect of a lot of people turning up with reports that are 100%
bug and 0% thanks wears you down. It's one thing if they come from someone
you recognise as giving something back to the community, be it software,
organisation [eg Kake brings us pubs, MDK brought us the LPW], or just
donations [Venda and AntibodyMX brought us beer*]. But most seem to just be
"take", and you start to wonder why you're doing it, and why instead you
shouldn't go any do something else that might be more fun, but less

Hence partly why 5.8.9 [now wending its way to CPAN - you read it here
second] brings you a brand new utility - perlthanks. It lets you send bug
report antidotes as easily as bug reports, if you are so inclined.

If people want to use it send thank-you message to perl-thanks at
that's great. If people want to say thank-you to me for 5.8.9 by buying me
beer, that's great too** (although I can't drink that much, and actually I'd
prefer sashimi - mackerel sashimi - I'm a cheap date).

But if you like Perl, and want to say "thanks", probably the most useful way
to say it is to do something no-one else can do. Write about your own Perl
Success Story. Counter the "Perl is specialist biologist word for stable"
zombie-meme that wants to eat everyone's BRANES***. It doesn't matter if it's
an informal chat to some colleagues, a lightning talk at a local group, a
blog entry, or a full blown article on a prominent site. Take a break from
using Perl to get your job done, and tell other people about why it's good
for precisely that. Because without it, our supply of fresh young tasty
BRANES will dry up up and we'll all starve. Or something not entirely unlike

Nicholas Clark

*    Non acholic beverages also available. But no-one seems as obsessed with
**   I tried to suggest to someone that his employer could say thanks by
     sponsoring a social, and whilst he personally thought that that was a
     great idea, it doesn't seem to have happened yet.
***  I suspect that this is something to do with how successful Perl is in
     bioinformatics, and how great Perl is at just working.
**** And if I know that you contribute back it's far more likely that I'll
     investigate your bug reports straight away, rather than putting them off.
     For example, that's why Andy got a very full initial answer very quickly.

More information about the mailing list