[OT] user-management bit of web apps

Matt S Trout dbix-class at trout.me.uk
Thu Jan 31 16:54:33 GMT 2008

On Thu, Jan 31, 2008 at 03:12:05PM +0000, Andy Armstrong wrote:
> On 31 Jan 2008, at 14:57, Greg McCarroll wrote:
> >On the last point, very often when people start out reinventing a  
> >wheel
> >they do so from a naive point of view. And it's probably only when  
> >they get
> >to the end of the invention that they can appreciate the edge
> >cases/difficulties in which ever problem they were tackling.
> >
> >Of course being human, they now may have some level of emotional  
> >attachment
> >making it harder to dump their newly created wheel.
> Word brother!
> I usually develop my own wheel and learn about all the problems and  
> then dump it and use the proper wheel that already existed :)

Missing the last stage is the bit that gets on my nerves.

I've written many a square wheel. I can point at the svn dirs some of them
live in if people want a laugh (and I probably still have a copy of the
web framework I wrote somewhere, complete with its own awful templating system
and its own awful controller DSL and ... I spent several days stopping to
insult myself every so often when I realised I'd fucked up the CPAN search
that should have found TT and saved me at least one of those horrors).

I do my best to get feedback that yes, this is round, and yes, there isn't
already a similarly round wheel out there before I send it to PAUSE.

See, the horrible thing is that almost all code is crap. Especially code
you wrote yourself. And I might be an arrogant cunt but I still know my code
is no exception.

In fact, I think the only real differentiation between the code I have released
and the code I haven't is that the stuff I released is crap in sufficiently
subtle ways nobody spotted them until we'd been using it for a while (and lo,
is this why the supreme being invented deprecation cycles ... :).

But that's not necessarily a problem - just because the code is crap doesn't
mean it isn't useful. But I tend to the idea that you should be convinced that
it's demonstrably more useful than anything else of the same ilk on CPAN
(for a particular subset of the problem domain maybe, but at least you should
be able to define the subset in that case) before releasing it.

And if you've got good ideas about how to better solve the problem, then
maybe it's worth going finding the people who've got the least worst
solution so far and trying to work with them instead - they've probably
got at least a few insights that you don't, and if you can get your ideas
into an existing project the odds of it actually managing to help people
other than you go up exponentially (as do the number of testers/contributors
you're likely to get :)

It does make for a smaller CPAN directory though; I'm never going to win any
'number of releases' awards - but I know of a least a dozen modules
by other people that have a thank you note in the POD that could have been
a complete distribution if I hadn't followed the philosophy described above,
and on the whole I'm more proud of those than I am of the things I have

"Not only did I manage to solve my problem but I did it without inventing
any wheels at all" is a great feeling, even if the actual programming ends
up significantly less interesting as a result ...

      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/            http://www.shadowcat.co.uk/servers/

More information about the london.pm mailing list