All my OSCon talks are now online.
Please let me know if any of them don't work - I had mixed experiences with them loading in browsers, but it always seemed to work if I used lwp-download/wget/curl and loaded locally.
Also for non-attendees I'd love to get feedback on the content.
Spamassassin way cool (Score:2, Informative)
I've been meaning to look at spamassassin for ages, and your talk was just what I needed to get around to it. Damn, it's simple! One portinstall command later, I was happily deleteing my daily dose of claptrap.
Also, I found the exceptions talk very valuable and will be passing it around here...
-Dom
Thank you! (Score:2)
Matt, thanks for these slides! I can't follow everything, but I've learned a lot in the last few minutes of skimming and just added several things to my list of things to check out. Wish I could have made it to OSCON.
J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
setting up $SIG{__DIE__} (Score:3, Interesting)
'scuse the cut and paste:
This (which is basically what AxKit does) drives me nuts. Remember a couple of weeks ago when I was trying to get Template Toolkit running under AxKit? Well, TT does the right thing (TM) by throwing all errors as exception objects....however they're not "MyException" objects. So what ends up happening is that the Template::Exception objects get turned into MyException::Default objects....which the exception system within TT doesn't recognise...and madness ensues.As you saw in the source, I had to resort to localising $SIG{__DIE__} myself...which works, but shouldn't be what I have to do...
Reply to This
Re:setting up $SIG{__DIE__} (Score:2)
Alternatively you could change the above to use blessed() from Scalar::Util, but that means my exception handler can't know what types to expect, and that's bad too. So my "solution" isn't brok
Re:setting up $SIG{__DIE__} (Score:2)
Okay, well maybe we should do something about it then. As I understand it all we need to do is decide on a common 'marker' class name that all exception class implementations - no matter how complex or how simple - use and can declare themselves to be.
Something like
For each of the class. Is this right? Could
Re:setting up $SIG{__DIE__} (Score:3, Interesting)
Really something should be made core, and I think putting something into core is going to be impossible now "The Great Sponge" has gone
Re:setting up $SIG{__DIE__} (Score:2)
I third that. Imho Exception.pm (or ExceptionInterface.pm) only needs to be a package with an AUTOLOAD that does nothing to ensure that the package isn't empty (which Perl will complain about) and that any personal exception scheme can inherit from it without being constrained as to the interface that must be implemented. As all that's needed seems to be a common ancestor, perhaps it should be call UNIVERSAL::Exception, or UniversalException?
-- Robin Berjon [berjon.com]