From autarch at urth.org Mon Oct 3 09:14:51 2005 From: autarch at urth.org (Dave Rolsky) Date: Mon, 3 Oct 2005 11:14:51 -0500 (CDT) Subject: [Mpls-pm] Lightning talks reminder Message-ID: There's still room, so please submit your talks. I know there's more of you out there who have something to say. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From perlmongers.20.thulben at spamgourmet.com Mon Oct 3 12:07:30 2005 From: perlmongers.20.thulben at spamgourmet.com (perlmongers.20.thulben@spamgourmet.com) Date: Mon, 3 Oct 2005 14:07:30 -0500 Subject: [Mpls-pm] Lightning talks reminder Message-ID: <95cd92910510031207t3e6016a2l63fe8ce5eb1ebd4f@mail.gmail.com> What topics have been signed up for thus far? From autarch at urth.org Mon Oct 3 12:13:16 2005 From: autarch at urth.org (Dave Rolsky) Date: Mon, 3 Oct 2005 14:13:16 -0500 (CDT) Subject: [Mpls-pm] Lightning talks reminder In-Reply-To: <95cd92910510031207t3e6016a2l63fe8ce5eb1ebd4f@mail.gmail.com> References: <95cd92910510031207t3e6016a2l63fe8ce5eb1ebd4f@mail.gmail.com> Message-ID: On Mon, 3 Oct 2005, perlmongers.20.thulben at spamgourmet.com wrote: > What topics have been signed up for thus far? I'll post that soon. For now, please send any submissions you like. I think at the moment we have time to fill even if everyone does everything they've submitted. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From craig at wavefront.net Thu Oct 6 14:30:38 2005 From: craig at wavefront.net (Craig S. Wilson) Date: Thu, 06 Oct 2005 16:30:38 -0500 Subject: [Mpls-pm] Looking for (cough, cough) Java Programmers In-Reply-To: References: <95cd92910510031207t3e6016a2l63fe8ce5eb1ebd4f@mail.gmail.com> Message-ID: <4345977E.1010009@wavefront.net> I know this is Perl Mongers and if I could look for Perl Programmers, I would. However, I am looking for people with several years of Java programming experience, backend, database, analytical processing. I have several positions open. If you are a Perl programmer and travel on the dark side sometimes, or if you know someone else who might fit the bill, let me know. --------------------------------------- Craig S. Wilson craig at wavefront.net 1.612.865.8794 From autarch at urth.org Thu Oct 6 16:26:25 2005 From: autarch at urth.org (Dave Rolsky) Date: Thu, 6 Oct 2005 18:26:25 -0500 (CDT) Subject: [Mpls-pm] Lightning Talks - Wed, Oct 12, 7 PM Message-ID: Wednesday, October 12, 7 PM @ Tech-Pro Here's the schedule right now: Robert Fischer Closures: Let Funky Functional Infect Your Code Ian Malpass Reading and writing RSS with perl How to use Module::Pluggable to make your code plugin-enabled A quick look at the perl Advent Calendar (perladvent.org) Chris Siegler Spidering newegg.com for good deal with LWP Dave Rolsky AJAX mumble mumble Perl mumble mumble If each presentation is 10 minutes, that's an hour, which is fine. If you still haven't submitted something you still can. In fact, you can probably just show up and do the talk. I'd suggest that people put their slides up as PDFs or HTML somewhere so we can do at least some of the talks on a shared computer rather than switching for every person, but it's not like we're on a super tight schedule. Also, you don't _really_ need slides. If you just want to talk about something for 5 minutes that can work too. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From gary.vollink at gmail.com Tue Oct 11 10:43:35 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Tue, 11 Oct 2005 12:43:35 -0500 Subject: [Mpls-pm] Reminder: Lightning Talks Message-ID: Tomorrow is already the 12th of October. Just thought I'd remind everybody a day early. From ejseim at tech-pro.com Tue Oct 11 11:47:27 2005 From: ejseim at tech-pro.com (Ehren J. Seim) Date: Tue, 11 Oct 2005 13:47:27 -0500 Subject: [Mpls-pm] Reminder: Lightning Talks Message-ID: Pizza on Tech-Pro. -----Original Message----- From: mpls-pm-bounces at pm.org [mailto:mpls-pm-bounces at pm.org] On Behalf Of Gary Vollink Sent: Tuesday, October 11, 2005 12:44 PM To: mpls-pm at pm.org Subject: [Mpls-pm] Reminder: Lightning Talks Tomorrow is already the 12th of October. Just thought I'd remind everybody a day early. _______________________________________________ Mpls-pm mailing list Mpls-pm at pm.org http://mail.pm.org/mailman/listinfo/mpls-pm This electronic mail (including any attachments) may contain information that is privileged, confidential, and/or otherwise protected from disclosure to anyone other than its intended recipient(s). Any dissemination or use of this electronic email or its contents (including any attachments) by persons other than the intended recipient(s) is strictly prohibited. If you have received this message in error, please notify us immediately by reply email so that we may correct our internal records. Please then delete the original message (including any attachments) in its entirety. Thank you. From ian at indecorous.com Tue Oct 11 12:21:30 2005 From: ian at indecorous.com (Ian Malpass) Date: Tue, 11 Oct 2005 20:21:30 +0100 (BST) Subject: [Mpls-pm] Reminder: Lightning Talks In-Reply-To: References: Message-ID: On Tue, 11 Oct 2005, Ehren J. Seim wrote: > Pizza on Tech-Pro. Well you should have used a napkin, shouldn't you? I'll go and prepare my talks, shall I? Yes, that would be a good idea. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From sieglerc at comcast.net Tue Oct 11 12:53:50 2005 From: sieglerc at comcast.net (Chris Siegler) Date: Tue, 11 Oct 2005 14:53:50 -0500 Subject: [Mpls-pm] Reminder: Lightning Talks In-Reply-To: References: Message-ID: <434C184E.2000000@comcast.net> Ian Malpass wrote: > On Tue, 11 Oct 2005, Ehren J. Seim wrote: > > >>Pizza on Tech-Pro. > > > Well you should have used a napkin, shouldn't you? > > I'll go and prepare my talks, shall I? Yes, that would be a good idea. > Heh. You said three talks and we're holding you to it! From ian at indecorous.com Tue Oct 11 14:15:18 2005 From: ian at indecorous.com (Ian Malpass) Date: Tue, 11 Oct 2005 22:15:18 +0100 (BST) Subject: [Mpls-pm] Lightning Talks - Wed, Oct 12, 7 PM In-Reply-To: References: Message-ID: On Thu, 6 Oct 2005, Dave Rolsky wrote: > Dave Rolsky > AJAX mumble mumble Perl mumble mumble Not wishing to forestall Dave's talk, but this strayed across an IRC channel today: - "AJAX Mistakes" Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From glenn at easy-access.com Tue Oct 11 14:51:29 2005 From: glenn at easy-access.com (Glenn Bushee) Date: Tue, 11 Oct 2005 16:51:29 -0500 Subject: [Mpls-pm] Lightning Talks - Wed, Oct 12, 7 PM In-Reply-To: References: Message-ID: Hi. I'm not going to be able to make tomorrow night's talks (please have an extra piece of pizza for those of us choosing instead to skip food & drink for a day on Yom Kippur), is there any chance that someone would be able to least pull some Presentation files together and put them online? It would be greatly appreciated and worth some beer or coffee at a future PM meeting. Thanks. - Glenn From ian at indecorous.com Tue Oct 11 20:09:17 2005 From: ian at indecorous.com (Ian Malpass) Date: Wed, 12 Oct 2005 04:09:17 +0100 (BST) Subject: [Mpls-pm] Lightning Talks - Wed, Oct 12, 7 PM In-Reply-To: References: Message-ID: On Tue, 11 Oct 2005, Glenn Bushee wrote: > is there any chance that > someone would be able to least pull some Presentation files together > and put them online? Will do my best. Don't think my slides will be all that illustrative by themselves, so I'll see if I can put together a slides+notes version for later review. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From rfischer at corradiation.net Tue Oct 11 21:44:07 2005 From: rfischer at corradiation.net (Robert Fischer) Date: Tue, 11 Oct 2005 23:44:07 -0500 (CDT) Subject: [Mpls-pm] Reminder: Lightning Talks In-Reply-To: References: Message-ID: <1120.209.98.66.210.1129092247.squirrel@webmail.corradiation.net> Can I get a time and location for the meeting? ~~ Robert Fischer. rfischer at corradiation.net 651-398-8010 > Tomorrow is already the 12th of October. Just thought I'd remind > everybody a day early. > _______________________________________________ > Mpls-pm mailing list > Mpls-pm at pm.org > http://mail.pm.org/mailman/listinfo/mpls-pm > From autarch at urth.org Tue Oct 11 22:08:27 2005 From: autarch at urth.org (Dave Rolsky) Date: Wed, 12 Oct 2005 00:08:27 -0500 (CDT) Subject: [Mpls-pm] Reminder: Lightning Talks In-Reply-To: <1120.209.98.66.210.1129092247.squirrel@webmail.corradiation.net> References: <1120.209.98.66.210.1129092247.squirrel@webmail.corradiation.net> Message-ID: On Tue, 11 Oct 2005, Robert Fischer wrote: > Can I get a time and location for the meeting? minneapolis.pm.org /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From twists at gmail.com Wed Oct 12 22:06:10 2005 From: twists at gmail.com (Joshua ben Jore) Date: Thu, 13 Oct 2005 00:06:10 -0500 Subject: [Mpls-pm] Slides for Extending Regular Expression Syntax Message-ID: Having presented this once, I updated my slides in response. This isn't the exact same thing you saw at the meeting - its better. Still no pictures tho. Maybe next time. Extending Regular Expression Syntax: http://home.earthlink.net/~josh.jore/regexp/ I wanted to add to that functional talk that Data::Dump::Streamer dumps closures so you can construct complex, nested stuff and get complete dumps back. Also, my employer is hiring. In theory, you'd be a C++/Java person but there's oodles of perl around. Actual knowledge of C++ and Java are less important than being willing to learn. That guy who was doing the web scraper/deal finder should contact me. Josh From gary.vollink at gmail.com Wed Oct 12 23:09:15 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Thu, 13 Oct 2005 01:09:15 -0500 Subject: [Mpls-pm] Thanks to All! Message-ID: Big Thanks (again) to Ehren Seim and Tech Pro. Extra thanks to Dave Rolsky (who I was stupid enough to forget last time). Thanks to all who put their time into presenting tonight.. I learned a lot! Dave, thanks for the Asterisk book. I will get a read and a review out as soon as humanly possible, and have it back to you for the next meeting. Josh... thanks for sending out your link. From rfischer at corradiation.net Thu Oct 13 07:03:46 2005 From: rfischer at corradiation.net (Robert Fischer) Date: Thu, 13 Oct 2005 09:03:46 -0500 (CDT) Subject: [Mpls-pm] Closure Code Samples In-Reply-To: References: Message-ID: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> Here are the closure code samples, as promised. If anyone has any questions about my talk last night, please feel free to drop me an email. ~~ Robert Fischer. rfischer at corradiation.net -------------- next part -------------- A non-text attachment was scrubbed... Name: PerlMongers.pl Type: application/octet-stream Size: 8390 bytes Desc: not available Url : http://mail.pm.org/pipermail/mpls-pm/attachments/20051013/22f35008/PerlMongers.obj From autarch at urth.org Thu Oct 13 08:33:19 2005 From: autarch at urth.org (Dave Rolsky) Date: Thu, 13 Oct 2005 10:33:19 -0500 (CDT) Subject: [Mpls-pm] Next meeting? Message-ID: Any volunteers for a tech presentation? I suppose I could do my DateTime project talk if folks are interested, but it'd be cool to get other people to speak. We could also do lightning talks again if others were perhaps inspired by last night's. I can volunteer myself for a lightning talk on something or other. I was thinking of doing one where I take some recommendation from PBP and argue for a couple and against a couple. It'd be even more fun if I could argue for and against the same ones, but that's a little trickier ;) -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From twists at gmail.com Thu Oct 13 08:33:40 2005 From: twists at gmail.com (Joshua ben Jore) Date: Thu, 13 Oct 2005 10:33:40 -0500 Subject: [Mpls-pm] Closure Code Samples In-Reply-To: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> Message-ID: On 10/13/05, Robert Fischer wrote: > Here are the closure code samples, as promised. > > If anyone has any questions about my talk last night, please feel free to > drop me an email. Robert, Here's a bug: In the following snippet, you either didn't have enough parentheses or should have used || which has a higher precedence than or. $prevShift = $prevShift or sub ($) { return shift } Here's how that computes. That is, it does a no-op copy, tests that it was true and clones a subroutine but returns it to a void context. So this line is just a complicated looking no-op. ( $prevShift = $prevShift ) or sub ($) { return shift } You could have written one of the following and gotten the behaviour you actually wished for. $prevShift ||= sub ($) { return shift } $prevShift = $prevShift || sub ($) { return shift } $prevShift = ( $prevShift or sub ($) { return shift } ); In your code, you use the magic numbers 215 and 221as parameters to substr when date "parsing". What's that about? You used prototypes on functions. This is nearly always a bug. I'd just reference Tom Christiansen's "FMTEYEWTK about Prototypes in Perl" which google just located at http://library.n0i.net/programming/perl/articles/fm_prototypes/. The set of problems that it introduces is well known. If you're not aware of them you should give that document a gander. I tried swapping all of your parameter validation for Params::Validate while this is just my opinion, it turned out to be oodles easier to read. Instead of: my $self = shift or carp "Method called as a subroutine"; my $sub = shift or carp "No subroutine parameter provided"; carp "Parameter is not a subroutine reference" unless(ref($sub) eq "CODE"); carp "Too many parameters passed" if(scalar(@_)); I got: my ( $self, $sub ) = validate_pos( @_, { type => OBJECT, isa => __PACKAGE__ }, { type => CODEREF } ); Lastly, Data::Dump::Streamer will dump closures. Here's what your nested $valueShifter looked like in dumping. I'm not thrilled with the separate declaration and assignment of the lexicals but at least its all there. Maybe the reason for that was to allow the user of DDS to remove the declarations and thus fiddle with the values ala s/^.+//; $_="redeclare /most stuff/;$_"; my $whatever = ...; eval. Interestingly, the B::Deparse part of this appears to have changed your ($;$) prototype to ($). my ($mag,$mag_eclipse_1,$mag_eclipse_2,$mag_eclipse_3,$mag_eclipse_4,$mag_eclipse_5,$prevShift,$prevShift_eclipse_1,$prevShift_eclipse_2,$prevShift_eclipse_3,$prevShift_eclipse_4,$prevShift_eclipse_5); $mag = -6; $mag_eclipse_1 = 15; $mag_eclipse_2 = -1; $mag_eclipse_3 = 9; $mag_eclipse_4 = 5; $mag_eclipse_5 = -2; $prevShift = sub($) { BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU\001"} use strict 'refs'; return &$prevShift_eclipse_1($mag_eclipse_1 + int(shift @_)); }; $prevShift_eclipse_1 = sub($) { BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU\001"} use strict 'refs'; return &$prevShift_eclipse_2($mag_eclipse_2 + int(shift @_)); }; $prevShift_eclipse_2 = sub($) { BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU\001"} use strict 'refs'; return &$prevShift_eclipse_3($mag_eclipse_3 + int(shift @_)); }; $prevShift_eclipse_3 = sub($) { BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU\001"} use strict 'refs'; return &$prevShift_eclipse_4($mag_eclipse_4 + int(shift @_)); }; $prevShift_eclipse_4 = sub($) { BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU\001"} use strict 'refs'; return &$prevShift_eclipse_5($mag_eclipse_5 + int(shift @_)); }; $prevShift_eclipse_5 = sub($) { BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU\001"} use strict 'refs'; return shift @_; }; $CODE1 = sub($) { BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU\001"} use strict 'refs'; return &$prevShift($mag + int(shift @_)); }; Josh From ian at indecorous.com Thu Oct 13 09:26:52 2005 From: ian at indecorous.com (Ian Malpass) Date: Thu, 13 Oct 2005 17:26:52 +0100 (BST) Subject: [Mpls-pm] Next meeting? In-Reply-To: References: Message-ID: On Thu, 13 Oct 2005, Dave Rolsky wrote: > Any volunteers for a tech presentation? I suppose I could do my DateTime > project talk if folks are interested, but it'd be cool to get other people > to speak. We could also do lightning talks again if others were perhaps > inspired by last night's. I've been doing a lot of hackery lately with JavaScript and the DOM. DHTML type stuff. I could probably do anything from a lightning talk to a fairly chunky one on "bending the DOM to your will". Not perl, but then there's nothing wrong with diversifying.... Would a talk on Object-Oriented Perl be of interest to people? I don't know how many of us are OOPites and how many aren't. Or if an intro to OOP doesn't interest, I could do a review of some of the helper modules out on CPAN for making OOP easier. Again, could be anything from lightning to chunky. Could do an intro to RDF - I touched on it in my RSS talk, but it's a whole complex topic in itself. (I should point out that I'm also quite happy to not do any talks, or do them some other time.) > I can volunteer myself for a lightning talk on something or other. I was > thinking of doing one where I take some recommendation from PBP and argue > for a couple and against a couple. It'd be even more fun if I could argue > for and against the same ones, but that's a little trickier ;) Or with a bit of planning, we could see if we could come up with a list and have someone argue for and someone argue against each of them. A debate and discussion might be an interesting format for an evening. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From twists at gmail.com Thu Oct 13 10:21:24 2005 From: twists at gmail.com (Joshua ben Jore) Date: Thu, 13 Oct 2005 12:21:24 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: References: Message-ID: On 10/13/05, Ian Malpass wrote: > On Thu, 13 Oct 2005, Dave Rolsky wrote: > > > Any volunteers for a tech presentation? I suppose I could do my DateTime > > project talk if folks are interested, but it'd be cool to get other people > > to speak. We could also do lightning talks again if others were perhaps > > inspired by last night's. Well... I wanted to talk about Data::Postponed partly to show off the one thing I know its good for and to see if anyone can come up with any other uses. Here's the one problem I wrote this thing as a solution for: being able to revise a symbol table and have those changes be automatically reflected in some source that's produced as a result from that table. %methods = ( foo => postpone( 'foo' ), ); return "sub $methods{foo} { ... }"; Then later, if $methods{foo} is changed to "bar", the resulting string, wherever it still lives will reflect that change and be "sub bar { ... }" instead. This is so I can revise function and package names during B::Deobfuscate's run. This avoids having to do an initial complete run of B::Deparse just to find out what the final values for some things will be because now I run only once and just change my mind as I feel the need. Maybe this isn't a talk though. I dunno. Josh From rfischer at corradiation.net Thu Oct 13 16:18:22 2005 From: rfischer at corradiation.net (Robert Fischer) Date: Thu, 13 Oct 2005 18:18:22 -0500 (CDT) Subject: [Mpls-pm] Closure Code Samples In-Reply-To: References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> Message-ID: <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> Joshua -- Wow. That's way more into the code than I intended for anyone to look. :D > In the following snippet, you either didn't have enough parentheses or > should have used || which has a higher precedence than or. > $prevShift = $prevShift or sub ($) { return shift } > Yeah, that's my bad. Thanks for the catch. I didn't test or even compile that code -- I just wrote it off the cuff -- so take it with a grain of salt. > In your code, you use the magic numbers 215 and 221as parameters to > substr when date "parsing". What's that about? > They're just magic values that come from the business rules being applied at that particular point: feel free to ignore them. :D > You used prototypes on functions. This is nearly always a bug. I'd > just reference Tom Christiansen's "FMTEYEWTK about Prototypes in Perl" > which google just located at > http://library.n0i.net/programming/perl/articles/fm_prototypes/. The > set of problems that it introduces is well known. If you're not aware > of them you should give that document a gander. > I've read that article, and I'm unconvinced. Yes, prototypes often do things you might not intend them to do (e.g.: length(@arr)) -- on the other hand, what would be the alternative? Assuming length is designed to work on just the first element (and doesn't check for having too many elements passed), you're going to get the length of the first element of @arr in the previous example. Furthermore, there's the whole slew of +1/-1/etc./etc. issues that resulted in the creation of prototypes in the first place, and I'm willing to consider those more significant, although Tom dismisses them. The major issue is that people don't understand what prototypes are, and they are expecting them to do things they don't do, or to not do things they do (like force context). Like so many things in Perl, you should only use them once you understand them, and you can really hurt yourself if you happen to be using them wrong. I don't tend to use those patterns that Tom laments (e.g.: passing a two-element array to denote the two arguments of a subroutine), so I find prototypes to be a good way to tip the compiler off and check my own mess. Of course, my personal opinion is that the correct solution is implicit static types, like OCaml has: http://caml.inria.fr/pub/docs/manual-ocaml/manual003.html But, then again, I'm particularly biased. > I tried swapping all of your parameter validation for Params::Validate > while this is just my opinion, it turned out to be oodles easier to > read. > I never looked into Params::Validate before. Thanks for the tip. ~~ Robert Fischer. rfischer at corradiation.net 651-398-8010 From autarch at urth.org Thu Oct 13 16:22:40 2005 From: autarch at urth.org (Dave Rolsky) Date: Thu, 13 Oct 2005 18:22:40 -0500 (CDT) Subject: [Mpls-pm] Closure Code Samples In-Reply-To: <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> Message-ID: On Thu, 13 Oct 2005, Robert Fischer wrote: > I've read that article, and I'm unconvinced. Yes, prototypes often do > things you might not intend them to do (e.g.: length(@arr)) -- on the > other hand, what would be the alternative? Assuming length is designed to What do you mean what's the alternative? What's the point in the first place? Perl's prototypes do so little that they're basically useless except for a few special cases. > @arr in the previous example. Furthermore, there's the whole slew of > +1/-1/etc./etc. issues that resulted in the creation of prototypes in > the first place, and I'm willing to consider those more significant, > although Tom dismisses them. I think if you were to take a survey of code on CPAN _today_ you'd find very very few modern Perl coders using prototypes. Damian argues against them in Perl Best Practices too. > The major issue is that people don't understand what prototypes are, and > they are expecting them to do things they don't do, or to not do things > they do (like force context). Like so many things in Perl, you should > only use them once you understand them, and you can really hurt yourself > if you happen to be using them wrong. I don't tend to use those > patterns that Tom laments (e.g.: passing a two-element array to denote > the two arguments of a subroutine), so I find prototypes to be a good > way to tip the compiler off and check my own mess. I understand very well what prototypes are, which is why I don't use them! > Of course, my personal opinion is that the correct solution is implicit > static types, like OCaml has: > http://caml.inria.fr/pub/docs/manual-ocaml/manual003.html > > But, then again, I'm particularly biased. This is certainly more useful than Perl's prototypes. >> I tried swapping all of your parameter validation for Params::Validate >> while this is just my opinion, it turned out to be oodles easier to >> read. >> > I never looked into Params::Validate before. Thanks for the tip. It can also replace your use of prototypes, since it's a far better way to ensure that your arguments are what you expect. Saying "I expect two scalars" doesn't really mean anything AFAIC. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From sieglerc at comcast.net Thu Oct 13 17:28:45 2005 From: sieglerc at comcast.net (Chris Siegler) Date: Thu, 13 Oct 2005 19:28:45 -0500 Subject: [Mpls-pm] Closure Code Samples In-Reply-To: References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> Message-ID: <434EFBBD.7040602@comcast.net> Dave Rolsky wrote: > > I think if you were to take a survey of code on CPAN _today_ you'd find > very very few modern Perl coders using prototypes. Damian argues against > them in Perl Best Practices too. > Oh great. Thanks for ruining the ending for me. Good book so far! From ian at indecorous.com Thu Oct 13 22:19:25 2005 From: ian at indecorous.com (Ian Malpass) Date: Fri, 14 Oct 2005 06:19:25 +0100 (BST) Subject: [Mpls-pm] Closure Code Samples In-Reply-To: References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> Message-ID: On Thu, 13 Oct 2005, Dave Rolsky wrote: > On Thu, 13 Oct 2005, Robert Fischer wrote: > > > [Stuff in defence of prototypes] > > I think if you were to take a survey of code on CPAN _today_ you'd find > very very few modern Perl coders using prototypes. Damian argues against > them in Perl Best Practices too. Whoo! First debate item chosen! Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From rfischer at corradiation.net Wed Oct 19 09:04:14 2005 From: rfischer at corradiation.net (Robert Fischer) Date: Wed, 19 Oct 2005 11:04:14 -0500 (CDT) Subject: [Mpls-pm] Closure Code Samples In-Reply-To: References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> Message-ID: <47215.198.203.175.175.1129737854.squirrel@webmail.corradiation.net> >> I've read that article, and I'm unconvinced. Yes, prototypes often do >> things you might not intend them to do (e.g.: length(@arr)) -- on the >> other hand, what would be the alternative? Assuming length is designed >> to > > What do you mean what's the alternative? What's the point in the first > place? Perl's prototypes do so little that they're basically useless > except for a few special cases. > They force context, catch errors like sin($a,$b,$c), do implicit referencing, and prevent errors like "PI-1" becoming "PI(-1)", all of which are major annoyances that you encounter without prototypes. I consider doing that a whole lot, and decidedly not useless. In looking at Tom Christiansen's complaints more closely, I came to the conclusion that Tom Christiansen secretly hates Perl, which was a significant enough realization to post to my blog: http://enfranchisedmind.com/blog/ ~~ Robert Fischer. rfischer at corradiation.net From twists at gmail.com Wed Oct 19 09:24:59 2005 From: twists at gmail.com (Joshua ben Jore) Date: Wed, 19 Oct 2005 11:24:59 -0500 Subject: [Mpls-pm] Closure Code Samples In-Reply-To: <47215.198.203.175.175.1129737854.squirrel@webmail.corradiation.net> References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> <47215.198.203.175.175.1129737854.squirrel@webmail.corradiation.net> Message-ID: On 10/19/05, Robert Fischer wrote: > They force context, catch errors like sin($a,$b,$c), do implicit > referencing, and prevent errors like "PI-1" becoming "PI(-1)", all of > which are major annoyances that you encounter without prototypes. I > consider doing that a whole lot, and decidedly not useless. I suppose its worthwhile to note that prototypes are occasionally useful to get things like inlined constants or when in trickery, to be able to omit the `sub ' from `foo { ... }'. Beyond that, I've just found it unhelpful to have my calling syntax dictated by the function. That is, instead of being able able to say foo( ... ) where ... is going to be a list of the proper form, I have to start specifying every parameter individually. Recently, for a one-liner, having rename($$) was extremely inconvenient. I wanted to write perl -e 'rename /((.+\.xml)\.bck)/ for <*>' because it was short. I recall in the past, as a newbie that having arrays be passed in scalar context was incredibly confusing. That shot a day while I learned where my mistake was. I'm just not so perfect that I can have those context-conversion prototypes around. They're a source of strange behavior and I would usually prefer my perl to be a bit more consistent about how it operated (unless I've declared something unusual in the vicinity). So... they help me to write buggier perl. If they help you write better perl, I guess that's good enough. That said, I really do wish perl had better parameter lists and that if I wished, I could get typed variables. Josh From twists at gmail.com Wed Oct 19 09:29:09 2005 From: twists at gmail.com (Joshua ben Jore) Date: Wed, 19 Oct 2005 11:29:09 -0500 Subject: [Mpls-pm] Closure Code Samples In-Reply-To: References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> <47215.198.203.175.175.1129737854.squirrel@webmail.corradiation.net> Message-ID: On 10/19/05, Joshua ben Jore wrote: Hey, I should add. I hate perl because as a dialect of lisp, its really, really, really ugly. I'd like to get macros to work but its really painful and I keep finding other things to do instead. Josh From autarch at urth.org Wed Oct 19 15:09:10 2005 From: autarch at urth.org (Dave Rolsky) Date: Wed, 19 Oct 2005 17:09:10 -0500 (CDT) Subject: [Mpls-pm] Closure Code Samples In-Reply-To: <47215.198.203.175.175.1129737854.squirrel@webmail.corradiation.net> References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> <2517.209.98.66.210.1129245502.squirrel@webmail.corradiation.net> <47215.198.203.175.175.1129737854.squirrel@webmail.corradiation.net> Message-ID: On Wed, 19 Oct 2005, Robert Fischer wrote: > They force context, catch errors like sin($a,$b,$c), do implicit > referencing, and prevent errors like "PI-1" becoming "PI(-1)", all of > which are major annoyances that you encounter without prototypes. I > consider doing that a whole lot, and decidedly not useless. > > In looking at Tom Christiansen's complaints more closely, I came to the > conclusion that Tom Christiansen secretly hates Perl, which was a > significant enough realization to post to my blog: Well, Tom C hates everything AFAICT, but I think you may be the one who hates Perl, cause prototypes like "($$)" break very normal calling patterns like this: my @args; push @args, $foo ? 'a' : 'b'; push @args, $bar; prototyped_sub(@args); -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From gary.vollink at gmail.com Thu Oct 20 13:18:18 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Thu, 20 Oct 2005 15:18:18 -0500 Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name Message-ID: O.K., this is for you folks who do modules... If I have a Module that default exports: @EXPORT = qw/corvuDbSelect corvuDbRun corvuDbFetch/; But say, in a more sane OO land, I would want corvuDb dropped... ----- require corvu::Db; $mydb = corvu::Db::new(); $mydb->Select($sql); $mydb->Fetch($sql); ----- This seems to work so far, but is it the right way... ----- package corvu::Db; ... sub Select { my $self = shift; # DBD stuff... # Specific Error Hanlding for me, etc } sub corvuDbSelect { Select ( @_ ); } ----- Willing to read, but can't find anything that talks about this directly. Probably don't know what to search for exactly. Guidance appreciated. Thanks, Gary Allen From ken at mathforum.org Thu Oct 20 14:34:30 2005 From: ken at mathforum.org (Ken Williams) Date: Thu, 20 Oct 2005 16:34:30 -0500 Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name In-Reply-To: References: Message-ID: On Oct 20, 2005, at 3:18 PM, Gary Vollink wrote: > O.K., this is for you folks who do modules... > > If I have a Module that default exports: > @EXPORT = qw/corvuDbSelect corvuDbRun corvuDbFetch/; > > But say, in a more sane OO land, I would want corvuDb dropped... > > ----- > require corvu::Db; > > $mydb = corvu::Db::new(); > > $mydb->Select($sql); > $mydb->Fetch($sql); > ----- Yeah, your idea is essentially right. You'll need to use ->new() instead of ::new(), though. And if you want to preserve the old corvuDbSelect() method, you should implement it like so, because Select() is now a method, not a function: sub corvuDbSelect { __PACKAGE__->new()->Select( @_ ); } -Ken From gary.vollink at gmail.com Thu Oct 20 15:13:41 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Thu, 20 Oct 2005 17:13:41 -0500 Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name In-Reply-To: References: Message-ID: Ken, > > $mydb = corvu::Db::new(); I did catch this one a bit ago. > And if you want to preserve the old > corvuDbSelect() method, you should implement it like so, because > Select() is now a method, not a function: > > sub corvuDbSelect { > __PACKAGE__->new()->Select( @_ ); > } > Preserve is pretty much right. I have a lot of programs that use these functions (about 11 functions copied, verbatim, into about 40 CGI scripts). The "easy" way is to be able to import the functions through use ... qw/func1 func2/. Obviously, going forward, it would be prudent for me to use an OO method (thus the badly worded questions). __PACKAGE__? If I need specific, should I shift $self, and use it that way? And, why call via new()? Any further discussion as to what will go wrong with the way it's occuring now (I'm fully confident that it will eventually go wrong). Again, willing to read. As an asside, In it's current state new() will destroy my init vars (I can change that, probably would bite me later anyway)...(but I'm not sure why). > -Ken Yeah, I'm really new at the whole module experience, and I'm probably biting off a lot (certainly, so far it would have been simpler to copy my changes manually into my 40 CGI scripts - but next time...easy). So, at the risk of seeming like an idiot (you don't have to agree so quickly), I ask a whole lot of questions to anyone willing to answer. Thank you, Gary Allen From ian at indecorous.com Fri Oct 21 20:01:50 2005 From: ian at indecorous.com (Ian Malpass) Date: Sat, 22 Oct 2005 04:01:50 +0100 (BST) Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name In-Reply-To: References: Message-ID: On Thu, 20 Oct 2005, Gary Vollink wrote: > If I have a Module that default exports: > @EXPORT = qw/corvuDbSelect corvuDbRun corvuDbFetch/; > > But say, in a more sane OO land, I would want corvuDb dropped... > > ----- > require corvu::Db; > > $mydb = corvu::Db::new(); > > $mydb->Select($sql); > $mydb->Fetch($sql); > ----- > > This seems to work so far, but is it the right way... > > ----- > package corvu::Db; > ... > sub Select { > my $self = shift; > > # DBD stuff... > # Specific Error Hanlding for me, etc > } > > sub corvuDbSelect { > Select ( @_ ); > } > ----- Except you'd need to do sub corvuDbSelect { Select ( 'corvu::Db', @_ ); } since Select() expects the class name as the first argument. Or an object. I don't think you can expect to do anything that requires $self to be an object in Select() if you want your function call version to work normally. Class methods would be OK if you pass in the class name as above. You could also do stuff with AUTOLOAD, but it's a bit of a snare for the unwary. package Example; use strict; use warnings; use vars qw( $AUTOLOAD @EXPORT @ISA ); require Exporter; @ISA = qw( Exporter ); @EXPORT = qw( egFoo egBar ); sub Foo { return "foo"; } sub Bar { return "bar"; } sub AUTOLOAD { $AUTOLOAD =~ /.*::(.+)/; my $method = $1; if ( $_[0] and ( ref $_[0] eq __PACKAGE__ or $_[0] eq __PACKAGE__ ) ) { die "Unknown method: $method"; } elsif ( $method =~ /^eg(.+)/ and __PACKAGE__->can( $1 ) ) { return __PACKAGE__->$1( @_ ); } else { die "Unknown subroutine: $method"; } } sub DESTROY { # tidy up objects without calling AUTOLOAD } 1; Then you can do: % perl -MExample -e 'print egFoo(), "\n";' foo % perl -MExample -e 'print Example->Bar(), "\n";' bar % perl -MExample -e 'print Example::Baz(), "\n";' Unknown subroutine: Baz at Example.pm line 27. % perl -MExample -e 'print EG->Bat(), "\n";' Unknown method: Bat at EG.pm line 23. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From gary.vollink at gmail.com Sun Oct 23 11:34:28 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Sun, 23 Oct 2005 13:34:28 -0500 Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name In-Reply-To: References: Message-ID: O.K., I think I finally have an idea of what is going on, and I'd like to thank each of you for introducing various ways to get it done. I definately need to read more about the differences between 'Instance method', 'class method' and 'function'... but for now, I understand enough to get what I need, done... Peter, While linked lists in 'C' may look really difficult, you can logically follow what's going on, as you write them. Which, yes, this is why I have a tenancy of making things harder (or at least a little more verbose) than they should be. Worse, I never really used C++. I learned it (as many have), but found that my employer, while I was a programmer, used straight 'C', and was fearful of the overhead introduced by C++. (To the point that, for a while they even forbode C++ style comments. So I understand OO theory, I've just never had to deal with it in a day-to-day basis. Yet, if I want to become the all-powerful Perl Guru than I know I can be... I'm going to have to get a lot more practical experience with it. :-) Thanks, Gary Allen Vollink From lecar_red at yahoo.com Mon Oct 24 06:52:33 2005 From: lecar_red at yahoo.com (Lee Carmichael) Date: Mon, 24 Oct 2005 06:52:33 -0700 (PDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: Message-ID: <20051024135233.65712.qmail@web31407.mail.mud.yahoo.com> --- Dave Rolsky wrote: > Any volunteers for a tech presentation? > We could also do lightning talks again if > others were perhaps > inspired by last night's. I would be willing to do a lighting talk. I could do one about overloading Perl built-in operators or about Class::DBI::Loader. Take Care, Lee __________________________________ Yahoo! FareChase: Search multiple travel sites in one click. http://farechase.yahoo.com From twists at gmail.com Mon Oct 24 08:29:28 2005 From: twists at gmail.com (Joshua ben Jore) Date: Mon, 24 Oct 2005 10:29:28 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051024135233.65712.qmail@web31407.mail.mud.yahoo.com> References: <20051024135233.65712.qmail@web31407.mail.mud.yahoo.com> Message-ID: On 10/24/05, Lee Carmichael wrote: > --- Dave Rolsky wrote: > > Any volunteers for a tech presentation? > > > We could also do lightning talks again if > > others were perhaps > > inspired by last night's. > > I would be willing to do a lighting talk. I could do > one about overloading Perl built-in operators or about > Class::DBI::Loader. Class::DBI::Loader would be interesting. I tried using it once upon a time with PostgreSQL and found that it mostly didn't work. If works well now, that'd be good to know. Josh From gary.vollink at gmail.com Mon Oct 24 08:43:57 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Mon, 24 Oct 2005 10:43:57 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051024135233.65712.qmail@web31407.mail.mud.yahoo.com> References: <20051024135233.65712.qmail@web31407.mail.mud.yahoo.com> Message-ID: --- Dave Rolsky wrote: > Any volunteers for a tech presentation? > We could also do lightning talks again if > others were perhaps > inspired by last night's. I could fill a few minutes on GD, if anyone is interested. From ian at indecorous.com Mon Oct 24 08:59:00 2005 From: ian at indecorous.com (Ian Malpass) Date: Mon, 24 Oct 2005 16:59:00 +0100 (BST) Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name In-Reply-To: References: Message-ID: On Sun, 23 Oct 2005, Gary Vollink wrote: > O.K., I think I finally have an idea of what is going on, and I'd like > to thank each of you for introducing various ways to get it done. Ah, perl. Bless your multiple cat-skinning methodologies. > I definately need to read more about the differences between 'Instance > method', 'class method' and 'function'... but for now, I understand > enough to get what I need, done... # Class method Example->foo( 'bar' ) # Example::foo gets 'Example', 'bar' as its arguments. # Instance/object method $eg = Example->new(); $eg->foo( 'bar' ); # Example::foo gets (reference to) $eg, 'bar' as its arguments. # Subroutine (probably equivalent to function, really) Example::foo( 'bar' ); # Example::foo gets 'bar' as its argument. So the difference between an instance and a class method is that the former is called on a blessed reference (object), and gets a copy of the object in its arguments, and so the method has access to other data stored in the object. The class method gets the class name as a string as its first argument instead[0]. A class method is then just a method that doesn't try to access any object data. You can call a class method on an object quite happily, but not vice versa. (As far as perl is concerned, methods are methods - there is no explicit differentation between the two, merely practical differentiation.) Read perldoc perltoot, and then read Object Oriented Perl by Damian Conway[1]. Or skip perltoot and just go to OOP. It's very good. > So I understand OO theory, I've just never had to deal with it in a > day-to-day basis. Yet, if I want to become the all-powerful Perl Guru > than I know I can be... I'm going to have to get a lot more practical > experience with it. :-) The major problem with/strength of OOP is that it's rather lax OO (especially in terms of encapsulation, although Conway discusses ways to enforce some encapsulation in his book). Many OO purists disparage perl's OO. Many OOPists laud its laid back approach. If you want to learn or apply OO theory, perl might not be the best language to choose. Speaking as someone with no formal CS training, I like OOP :) Ian P.S. I didn't mention it in my mail about AUTOLOADing, but one thing I often do to try to make sure I don't do anything untoward is have some sort of list of allowed methods, and have AUTOLOAD complain if it's not one of those. You could probably leverage @EXPORT for that purpose. [0] A common way to do object creation is sub new { my $proto = shift; my $class = ref $proto || $proto; return bless {}, $class; } Thus you can do $eg->new() as well as Example->new(). If you call new() as an object method, $proto is the object, and calling ref $proto will give you its class name. If you call it as a class method, $proto is the class name, and ref $proto is undef (and false), so you get the value of $proto instead. I don't know that I've ever created an object using an object method, though. [1] - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From ian at indecorous.com Mon Oct 24 09:03:48 2005 From: ian at indecorous.com (Ian Malpass) Date: Mon, 24 Oct 2005 17:03:48 +0100 (BST) Subject: [Mpls-pm] Next meeting? In-Reply-To: References: <20051024135233.65712.qmail@web31407.mail.mud.yahoo.com> Message-ID: On Mon, 24 Oct 2005, Joshua ben Jore wrote: > On 10/24/05, Lee Carmichael wrote: > >> I would be willing to do a lighting talk. I could do >> one about overloading Perl built-in operators or about >> Class::DBI::Loader. > > Class::DBI::Loader would be interesting. I tried using it once upon a > time with PostgreSQL and found that it mostly didn't work. If works > well now, that'd be good to know. A general Class::DBI talk would be good, too, if anyone fancies volunteering. I've used it before, and it was groovy, but I don't know that I was getting the best out of it. A lightning overview, or a full-blooded talk. There are also lots of Class::DBI::* modules out there that do funky stuff too, but I know little of what are good and what aren't. And without a grounding in Class::DBI, they don't make too much sense. I've also never done any overloading, so that would be good too. I recall seeing Joshua use some of it in his talk, and thinking "oh yes, overloading - it would be nice if someone would do a talk on that" ;) Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From jira0004 at yahoo.com Mon Oct 24 10:06:16 2005 From: jira0004 at yahoo.com (jira0004) Date: Mon, 24 Oct 2005 10:06:16 -0700 (PDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: Message-ID: <20051024170616.44148.qmail@web33908.mail.mud.yahoo.com> Hi, I've used DBI to write database applications. I've used it with Oracle, PostgreSQL, and MySQL. It is very convenient. Also, it supports vendor specific stuff. Basically, most developers use it to perform queries (selects), updates, and deletes. You can use it to work with BLOBs (Binary Large Objects) in PostgreSQL. It has some cool features for optimizing performance, although to be honest I've seldom used those. I guess I could put together a talk (how long?) and when is the next meeting? Regards, Peter Jirak E: jira0004 at yahoo.com --- Ian Malpass wrote: > On Mon, 24 Oct 2005, Joshua ben Jore wrote: > > > On 10/24/05, Lee Carmichael > wrote: > > > >> I would be willing to do a lighting talk. I could > do > >> one about overloading Perl built-in operators or > about > >> Class::DBI::Loader. > > > > Class::DBI::Loader would be interesting. I tried > using it once upon a > > time with PostgreSQL and found that it mostly > didn't work. If works > > well now, that'd be good to know. > > A general Class::DBI talk would be good, too, if > anyone fancies > volunteering. I've used it before, and it was > groovy, but I don't know > that I was getting the best out of it. A lightning > overview, or a > full-blooded talk. > > There are also lots of Class::DBI::* modules out > there that do funky stuff > too, but I know little of what are good and what > aren't. And without a > grounding in Class::DBI, they don't make too much > sense. > > I've also never done any overloading, so that would > be good too. I recall > seeing Joshua use some of it in his talk, and > thinking "oh yes, > overloading - it would be nice if someone would do a > talk on that" ;) > > Ian > > - > --------------------------------------------------------------------------- > > The soul would have no rainbows if the eyes held no > tears. > > Ian Malpass > > _______________________________________________ > Mpls-pm mailing list > Mpls-pm at pm.org > http://mail.pm.org/mailman/listinfo/mpls-pm > From ian at indecorous.com Mon Oct 24 10:33:10 2005 From: ian at indecorous.com (Ian Malpass) Date: Mon, 24 Oct 2005 18:33:10 +0100 (BST) Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051024170616.44148.qmail@web33908.mail.mud.yahoo.com> References: <20051024170616.44148.qmail@web33908.mail.mud.yahoo.com> Message-ID: On Mon, 24 Oct 2005, jira0004 wrote: > I've used DBI to write database applications. I've > used it with Oracle, PostgreSQL, and MySQL. > > It is very convenient. Also, it supports vendor > specific stuff. I was particularly meaning Class::DBI, which does magic object stuff with database queries. But a talk on DBI itself would also be most welcome. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From jira0004 at yahoo.com Mon Oct 24 10:58:44 2005 From: jira0004 at yahoo.com (jira0004) Date: Mon, 24 Oct 2005 10:58:44 -0700 (PDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: Message-ID: <20051024175844.19793.qmail@web33907.mail.mud.yahoo.com> Ah, I misunderstood, I thought you were looking for some one to talk about DBI. I didn't realize you were looking for some one to talk about Class::DBI. I've never used that. Let me know if you want a talk on DBI and I can do one. Maybe most of the other developers in this group have used or are familiar with DBI - so a talk on it might not be all that useful. --- Peter Jirak E: jira0004 at yahoo.com --- Ian Malpass wrote: > On Mon, 24 Oct 2005, jira0004 wrote: > > > I've used DBI to write database applications. > I've > > used it with Oracle, PostgreSQL, and MySQL. > > > > It is very convenient. Also, it supports vendor > > specific stuff. > > I was particularly meaning Class::DBI, which does > magic object stuff with > database queries. But a talk on DBI itself would > also be most welcome. > > Ian > > - > --------------------------------------------------------------------------- > > The soul would have no rainbows if the eyes held no > tears. > > Ian Malpass > > From lecar_red at yahoo.com Mon Oct 24 12:01:31 2005 From: lecar_red at yahoo.com (Lee Carmichael) Date: Mon, 24 Oct 2005 12:01:31 -0700 (PDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: Message-ID: <20051024190132.50099.qmail@web31404.mail.mud.yahoo.com> > > Class::DBI::Loader would be interesting. I tried > using it once upon a > > time with PostgreSQL and found that it mostly > didn't work. If works > > well now, that'd be good to know. I've had pretty good luck using it with mysql (the Class::DBI::mysql module is pretty cool too). > A general Class::DBI talk would be good, too, if > anyone fancies > volunteering. I've used it before, and it was > groovy, but I don't know > that I was getting the best out of it. A lightning > overview, or a > full-blooded talk. > There are also lots of Class::DBI::* modules out > there that do funky stuff > too, but I know little of what are good and what > aren't. And without a > grounding in Class::DBI, they don't make too much > sense. I think you are correct. It seems like something about Class::DBI would be better as a full talk since there is a bunch of small details under the covers and such. For me it was tough getting used to not doing joins but setting up class relationships. I'm not really an expert (just a user of it) but maybe in the new year I could put something longer on it. But that is pretty far away to commit to anything. ;) > I've also never done any overloading, so that would > be good too. I recall > seeing Joshua use some of it in his talk, and > thinking "oh yes, > overloading - it would be nice if someone would do a > talk on that" ;) I think this would be more accessible and useful to most Perl coders since it can be used in more situations and most Perl coders are familiar with built -in operators. At least I hope.... Take Care, Lee __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From autarch at urth.org Mon Oct 24 14:32:43 2005 From: autarch at urth.org (Dave Rolsky) Date: Mon, 24 Oct 2005 16:32:43 -0500 (CDT) Subject: [Mpls-pm] Wells Fargo Position (fwd) Message-ID: ---------- Forwarded message ---------- Date: Mon, 24 Oct 2005 16:23:29 -0500 From: Diana.L.Ferguson at wellsfargo.com To: autarch at urth.org Subject: Wells Fargo Position Hi Dave, I found your address at the Perl Mongers site. I have an opening for a Perl guru that can be located in our Minneapolis office. Would you mind sending this out to the members of your Perl Mongers group? Thanks so much! Diana Wells Fargo has an opening for a regular full time employee. The title of this role is Application Systems Engineer 4. I'm sorry, but we are not currently sponsoring visas for this position. The description of the role is as follows: Perl Guru Works on problems involving the evaluation of specifications for complex business requirements and processes (new, enhancements, maintenance), and develops and prepares computer solutions. Performs and leads modeling, simulations, and analysis efforts. Verifies program logic by preparing test data for trial runs, tests and debugs programs. Participates in the overall systems testing. Supports the implementation of the application into production. Maintains and supports the ImageMark Interface (IMI) application. Analyzes, responds to and resolves application issues, including addressing their effects on operational departments. Communicates to, and addresses changes with, other team members, operational users and management. The position requires periodic rotating 24/7 production support. Can be in any of the Wells locations supporting ImageMark (Chandler, AZ; Portland, OR; Dallas/Houston, TX; Des Moines, IA; Minneapolis, MN; Greenwood Village, CO; Salt Lake City, UT ) Minimum Qualifications 4 year degree. Perl expert. Experience with Perl scripts, shell scripts, UNIX tools, UNIX OS commands, C++, SQL, Microsoft SQL Server, Pathing; basic knowledge of Windows 2003/NT/2000. Good written and verbal communication skills and organizational skills. Ability to analyze, address, and follow to resolution user questions and issues. Good documentation skills. Preferred Skills Knowledge of UNIX security. Working knowledge of MQ series messaging software and Connect Direct NDM. Experience with NCR ImageMark application. NCR MP-RAS experience. Salary range depends on location but is generally $58,900 - $83,000. This is a bonus eligible position with full benefits. If you are interested in this position, please create a profile at www.wellsfargo.com/jobs and post to requisition #610901 Diana L. Ferguson Sr. Technical Staffing Consultant Wells Fargo Technology Information Group 303-889-2988 direct 303-437-3503 mobile 303-771-2600 fax Wells Fargo is an Affirmative Action and Equal Opportunity Employer M/F/D/V This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. From autarch at urth.org Mon Oct 24 21:42:29 2005 From: autarch at urth.org (Dave Rolsky) Date: Mon, 24 Oct 2005 23:42:29 -0500 (CDT) Subject: [Mpls-pm] More lightning talks Message-ID: Ok, here's what I have so far as topics people have volunteered to do: Ian Malpass - The DOM Ian Malpass - OO Perl Josh Jore - Data::Postponed Lee Carmichael - Class::DBI::Loader Lee Carmichael - Overloading Gary Vollink - GD Dave Rolsky - JSAN That seems like plenty for another round of lightning talks, and if others want to volunteer that'd be cool. Let's say that each speaker gets up to 10 minutes per talk, but allocated however they link, so a speaker with 2 topics can do 15 on one and 5 on another. That means right now we have 70 minutes of stuff. I'd say 2 more speakers would be ideal, but probably not too much more than that. If lots of other folks want to speak, I think we could have Ian and Lee just pick one topic and save the other for later. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From twists at gmail.com Mon Oct 24 21:49:23 2005 From: twists at gmail.com (Joshua ben Jore) Date: Mon, 24 Oct 2005 23:49:23 -0500 Subject: [Mpls-pm] More lightning talks In-Reply-To: References: Message-ID: On 10/24/05, Dave Rolsky wrote: > Ok, here's what I have so far as topics people have volunteered to do: > > Ian Malpass - The DOM > Ian Malpass - OO Perl > Josh Jore - Data::Postponed > Lee Carmichael - Class::DBI::Loader > Lee Carmichael - Overloading > Gary Vollink - GD > Dave Rolsky - JSAN I'm pretty busy right now and can't spend time on this. I'd rather not do the DP talk just now. Josh From autarch at urth.org Mon Oct 24 21:55:03 2005 From: autarch at urth.org (Dave Rolsky) Date: Mon, 24 Oct 2005 23:55:03 -0500 (CDT) Subject: [Mpls-pm] More lightning talks In-Reply-To: References: Message-ID: On Mon, 24 Oct 2005, Joshua ben Jore wrote: > On 10/24/05, Dave Rolsky wrote: >> Ok, here's what I have so far as topics people have volunteered to do: >> >> Ian Malpass - The DOM >> Ian Malpass - OO Perl >> Josh Jore - Data::Postponed >> Lee Carmichael - Class::DBI::Loader >> Lee Carmichael - Overloading >> Gary Vollink - GD >> Dave Rolsky - JSAN > > I'm pretty busy right now and can't spend time on this. I'd rather not > do the DP talk just now. Doh, ok. Guess we have at least 3 open slots then ;) -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From sieglerc at comcast.net Mon Oct 24 23:56:41 2005 From: sieglerc at comcast.net (Chris Siegler) Date: Tue, 25 Oct 2005 01:56:41 -0500 Subject: [Mpls-pm] More lightning talks In-Reply-To: References: Message-ID: <435DD729.7030702@comcast.net> Dave Rolsky wrote: > On Mon, 24 Oct 2005, Joshua ben Jore wrote: > > >>On 10/24/05, Dave Rolsky wrote: >> >>>Ok, here's what I have so far as topics people have volunteered to do: >>> >>>Ian Malpass - The DOM >>>Ian Malpass - OO Perl >>>Josh Jore - Data::Postponed >>>Lee Carmichael - Class::DBI::Loader >>>Lee Carmichael - Overloading >>>Gary Vollink - GD >>>Dave Rolsky - JSAN >> >>I'm pretty busy right now and can't spend time on this. I'd rather not >>do the DP talk just now. > > > Doh, ok. Guess we have at least 3 open slots then ;) > I'll do a 5 minute talk on greasemonkey. From lecar_red at yahoo.com Tue Oct 25 06:56:59 2005 From: lecar_red at yahoo.com (Lee Carmichael) Date: Tue, 25 Oct 2005 06:56:59 -0700 (PDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051024170616.44148.qmail@web33908.mail.mud.yahoo.com> Message-ID: <20051025135659.8753.qmail@web31406.mail.mud.yahoo.com> Hello, > It has some cool features for optimizing > performance, > although to be honest I've seldom used those. I > guess > I could put together a talk (how long?) and when is > the next meeting? I think this would be a good place to start and I think both the BLOB and optimization stuff would be cool to hear. Take Care, Lee __________________________________ Start your day with Yahoo! - Make it your home page! http://www.yahoo.com/r/hs From lecar_red at yahoo.com Tue Oct 25 07:01:33 2005 From: lecar_red at yahoo.com (Lee Carmichael) Date: Tue, 25 Oct 2005 07:01:33 -0700 (PDT) Subject: [Mpls-pm] More lightning talks In-Reply-To: Message-ID: <20051025140134.82495.qmail@web31407.mail.mud.yahoo.com> Hello Dave, --- Dave Rolsky wrote: > Lee Carmichael - Class::DBI::Loader > Lee Carmichael - Overloading I'll just do the overloading talk this time. Leave the other for another day. __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com From twists at gmail.com Tue Oct 25 07:22:11 2005 From: twists at gmail.com (Joshua ben Jore) Date: Tue, 25 Oct 2005 09:22:11 -0500 Subject: [Mpls-pm] More lightning talks In-Reply-To: <20051025140134.82495.qmail@web31407.mail.mud.yahoo.com> References: <20051025140134.82495.qmail@web31407.mail.mud.yahoo.com> Message-ID: On 10/25/05, Lee Carmichael wrote: > Hello Dave, > > --- Dave Rolsky wrote: > > > Lee Carmichael - Class::DBI::Loader > > Lee Carmichael - Overloading > > I'll just do the overloading talk this time. Leave the > other for another day. When you give the talk, I'm going to ask for your opinion on how to still get access to the object's instance variables when the object type's complementary dereference method has been overloaded. So if the object is a hash, %{} is overloaded, etc. In Data::Postponed I overloaded every method including the one used to access the inside of my object. I ended up using inside-out objects because I couldn't think of a way to get inside my object anymore. # Just an example - now how do you get in? package Foo; use overload( '%{}' => ... ); sub new { bless {} => shift } Josh From autarch at urth.org Tue Oct 25 08:52:38 2005 From: autarch at urth.org (Dave Rolsky) Date: Tue, 25 Oct 2005 10:52:38 -0500 (CDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051024175844.19793.qmail@web33907.mail.mud.yahoo.com> References: <20051024175844.19793.qmail@web33907.mail.mud.yahoo.com> Message-ID: On Mon, 24 Oct 2005, jira0004 wrote: > Let me know if you want a talk on DBI and I can do one. Maybe most of > the other developers in this group have used or are familiar with DBI - > so a talk on it might not be all that useful. How about you do a lightning talk on some particular aspects of DBI that you think are worth highlighting? -ave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From twists at gmail.com Tue Oct 25 16:54:50 2005 From: twists at gmail.com (Joshua ben Jore) Date: Tue, 25 Oct 2005 18:54:50 -0500 Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name In-Reply-To: References: Message-ID: On 10/21/05, Ian Malpass wrote: > sub AUTOLOAD { > $AUTOLOAD =~ /.*::(.+)/; > my $method = $1; > if ( $_[0] and ( ref $_[0] eq __PACKAGE__ or $_[0] eq __PACKAGE__ ) ) { > die "Unknown method: $method"; > } elsif ( $method =~ /^eg(.+)/ and __PACKAGE__->can( $1 ) ) { > return __PACKAGE__->$1( @_ ); > } else { > die "Unknown subroutine: $method"; > } > } Ian, You were doing so well that I didn't want to interrupt. I'd like to make one small note here. If you're tempted to install methods from within AUTOLOAD, be aware that you're invalidating perl's method cache. On perlmonks.org, suggestions to use AUTOLOAD are often followed by clever suggestions to have AUTOLOAD remove itself by installing the looked-up function into the symbol table. This is fine except that it causes the global method cache to get invalidated. When a method is called and it isn't in the cache, perl does the long job of walking around @ISA to find the right foo() function. Once that's done, perl makes a note of the function it found and then doesn't have to look at @ISA again. This is great - it means that after the first method call its as fast as a regular function call. Here's a bit of perl code that approximates the idea of what happens. my $method = $cache{ ref $o }{ 'foo' } ||= lookup_via_isa( ref $o, 'foo' ); $o->$method( ... ); # The fast, cached way my $method = $cache{ ref $o }{ 'foo' }; # The slow, lookup way my $method = lookup_via_isa( ref $o, 'foo' ); Anytime you do something that increments the internal PL_sub_generation variable, the cache is invalidated. In a general sense, those things are adding or removing packages or named functions and editing any @ISA. That is, stuff that could affect whether the meaning of any or all named function calls has changed. *foo = *bar *foo = \ &bar { local *foo = *bar } { local *foo = \ &bar } eval 'sub foo { ... }' eval 'package Foo; %Foo::something_new = ()' # Maybe? @ISA = ... @Something::Else::ISA = ... delete $main::{foo} If you do all your method generation up front, the cache will only be invalid once because of your actions. If you do it on the fly, you'll be invalidating it during runtime. I keep meaning to instrument PL_sub_generation and benchmark how much this actually affects stuff but haven't gotten around to it. Josh From autarch at urth.org Tue Oct 25 20:14:09 2005 From: autarch at urth.org (Dave Rolsky) Date: Tue, 25 Oct 2005 22:14:09 -0500 (CDT) Subject: [Mpls-pm] Dumb Question...Module Method - Dual Name In-Reply-To: References: Message-ID: On Tue, 25 Oct 2005, Joshua ben Jore wrote: > You were doing so well that I didn't want to interrupt. I'd like to > make one small note here. If you're tempted to install methods from > within AUTOLOAD, be aware that you're invalidating perl's method > cache. On perlmonks.org, suggestions to use AUTOLOAD are often > followed by clever suggestions to have AUTOLOAD remove itself by > installing the looked-up function into the symbol table. This is fine > except that it causes the global method cache to get invalidated. AUTOLOAD also breaks calls to ->can(), unless you overload that as well. Frankly, I think AUTOLOAD is bad, bad, bad, and I question it's use at all. It's often possible to get the same effect by generating subs at compile time: for my $meth ( qw( foo bar ) ) { my $sub = sub { $_[0]->{$meth} }; no strict 'refs'; *{$meth} = $sub; } Now you have a nice efficient closure implementing those accessors and ->can() works like it should, as does Perl's method cache. There are, of course, various modules on CPAN to do this sort of method generation for you, such as Class::MethodMaker. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From jira0004 at yahoo.com Tue Oct 25 20:17:20 2005 From: jira0004 at yahoo.com (jira0004) Date: Tue, 25 Oct 2005 20:17:20 -0700 (PDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: Message-ID: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> Hi Dave, How long is a "lightening talk" again? I could do a brief over view of how DBI works. I could also present how DBI supports vendor specific stuff in terms of Oracle and PostgreSQL. DBI also provides some support for performance optimization as well as some "shortcut" techniques. I haven't used the performance optimization much. It really only makes sense for me to do a DBI talk or a DBI "lightening" talk if there are developers in the group that aren't familiar with DBI. If most of the developers in the group are reasonably familiar with DBI, then it would be boring for them to listen to me pontificate on DBI. Let me know what you think. I am will to do a talk or a "lightening" talk if other Perl users at the meeting would find it useful. Otherwise, there isn't much point, except maybe "filling out" the lightening talk time spots ;-) . Regards, Peter Jirak E: jira0004 at yahoo.com --- Dave Rolsky wrote: > On Mon, 24 Oct 2005, jira0004 wrote: > > > Let me know if you want a talk on DBI and I can do > one. Maybe most of > > the other developers in this group have used or > are familiar with DBI - > > so a talk on it might not be all that useful. > > How about you do a lightning talk on some particular > aspects of DBI that > you think are worth highlighting? > > > -ave > > /*=================================================== > VegGuide.Org > www.BookIRead.com > Your guide to all that's veg. My book blog > ===================================================*/ > _______________________________________________ > Mpls-pm mailing list > Mpls-pm at pm.org > http://mail.pm.org/mailman/listinfo/mpls-pm > From jim at acadcam.com Wed Oct 26 07:44:26 2005 From: jim at acadcam.com (Jim Anderson) Date: Wed, 26 Oct 2005 09:44:26 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com>; from jira0004@yahoo.com on Tue, Oct 25, 2005 at 08:17:20PM -0700 References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> Message-ID: <20051026094425.A14891@acadcam.com> On Tue, Oct 25, 2005 at 08:17:20PM -0700, jira0004 wrote: > It really only makes sense for me to do a DBI talk or > a DBI "lightening" talk if there are developers in the > group that aren't familiar with DBI. If most of the > developers in the group are reasonably familiar with > DBI, then it would be boring for them to listen to me > pontificate on DBI. Personally, I'd like to see more 'intro' talks for people that haven't been doing advanced perl stuff, or have only gotten into some areas. So far, I think all (?) of the lightning talks have been on some advanced feature of perl or other, and assuming extensive background knowledge. We've had several topics on using advanced features of OOP for example, but nothing on the basics of OOP. I'd like to see some talks oriented more towards people that have a basic working knowledge of Perl, but are interested in an intro level to get them started in an area. I think we should have 1 or 2 talks that are aimed at that level. -- Jim Anderson (612) 782-0456 jim at acadcam.com Anderson CAD/CAM, Inc Lucifer designed MS-DOS to try 2500 Highway 88, Suite 108 men's souls. St Anthony, MN 55418 Then he had a better idea... From ian at indecorous.com Wed Oct 26 08:02:50 2005 From: ian at indecorous.com (Ian Malpass) Date: Wed, 26 Oct 2005 16:02:50 +0100 (BST) Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051026094425.A14891@acadcam.com> References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> Message-ID: On Wed, 26 Oct 2005, Jim Anderson wrote: > Personally, I'd like to see more 'intro' talks for people that haven't > been doing advanced perl stuff, or have only gotten into some areas. So > far, I think all (?) of the lightning talks have been on some advanced > feature of perl or other, and assuming extensive background knowledge. > We've had several topics on using advanced features of OOP for example, > but nothing on the basics of OOP. I'd like to see some talks oriented > more towards people that have a basic working knowledge of Perl, but are > interested in an intro level to get them started in an area. I think we > should have 1 or 2 talks that are aimed at that level. It's odd - I never realised my RSS talk's code wouldn't actually make much sense to someone who didn't understand OOP syntax. But indeed it wouldn't. So much of CPAN assumes a working knowledge of OOP now. Well, I'm due to be giving a talk on OOP at the next meeting, and I'd intended it to be an intro sort of talk. I think I'd prefer to give a DOM talk later (especially given my inability to actually put together two talks last time). Perhaps I could take two slots on OOP instead? A lightning talk and an associated thunderclap talk? It might be a topic that would benefit from a bit less of a frantic pace. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From autarch at urth.org Wed Oct 26 08:49:34 2005 From: autarch at urth.org (Dave Rolsky) Date: Wed, 26 Oct 2005 10:49:34 -0500 (CDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> Message-ID: On Wed, 26 Oct 2005, Ian Malpass wrote: > I think I'd prefer to give a DOM talk later (especially given my inability > to actually put together two talks last time). Perhaps I could take two > slots on OOP instead? A lightning talk and an associated thunderclap talk? > It might be a topic that would benefit from a bit less of a frantic pace. Sounds good. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From jira0004 at yahoo.com Wed Oct 26 09:56:00 2005 From: jira0004 at yahoo.com (jira0004) Date: Wed, 26 Oct 2005 09:56:00 -0700 (PDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: Message-ID: <20051026165601.6908.qmail@web33912.mail.mud.yahoo.com> Hi Chris, I've never used Apache::DBI so I couldn't advise you as to how well it works. I've worked pretty extensively with the DBI module itself. My experience is that it works great. It is the best database programming interface that I have worked with thus far. The reason that I like it is that it allows you to write SQL statements in strings, and then execute those strings. DBI works magically when it comes to queries. The developer writes the SQL query statement as a string, binds variables to the results of the query, executes the query and then fetches the results into the given variables. This allows you to pull the results of the SQL query into your Perl program. The way that DBI works is you get or build a DBD driver for your given type of database (Oracle, PostgreSQL, MySQL, etc), howeverm you use the DBI interface (not the DBD driver) to access your database. When you invoke a database handle via DBI the specifications you use, cause DBI to use the correct DBD driver (DBD::Pg for PostgreSQL for example). Since you only use the DBI interface directly and the DBI interface selects the correct driver for your database vendor (Oracle, PostgreSQL, MySQL, etc.) the whole thing is independent of your specific database vendor unless you use vendor-specific statements iin your calls to the database. DBI does usually support most vendor-specific SQL statements. For example, PostgreSQL has a type called BLOB (Binary Large Object similar to a CLOB in Oracle). You can use DBI to work with PostgreSQL BLOBs but then you couldn't use your Perl database application on an Oracle database unless you re-wrote the BLOB statements to handle Binary Large Objects in an Oracle specific way. Thus, you will be able to switch your application from one database vendor to another without any modifications if you avoid vendor specific stuff. The one possible exception maybe date/time stamps. May experience with date/time data types in most databases is that date/time data types are always vendor specific. Thus, you would probably have to write one set of DBI statements for working with date/time data for one database vendor (such as Oracle) and write another different set of DBI statements for working with date/time data for a different vendor (such as PostgreSQL). Let me know if you have any more questions and I will give as clear of answers as I can. Regards, Peter Jirak E: jira0004 at yahoo.com --- Chris wrote: > On Tue, 25 Oct 2005, jira0004 wrote: > > > It really only makes sense for me to do a DBI talk > or > > a DBI "lightening" talk if there are developers in > the > > group that aren't familiar with DBI. If most of > the > > developers in the group are reasonably familiar > with > > DBI, then it would be boring for them to listen to > me > > pontificate on DBI. > > For what it's worth, I'm curious about two DBI > aspects at this time. > > 1. Apache::DBI. Any thoughts on how well it works? > How does it handle > with Apache2. (I might actually have good answers > on this myself in a > month or so). > > 2. Overall SQL compatability. This is probably more > on the SQL end > compared to the perl end, but I'd like to make sure > as much of my work > done against a MySQL server will easily work on an > Oracle server. > > -------------------- > Christopher Josephes > cpj1 at visi.com > From gary.vollink at gmail.com Wed Oct 26 11:17:16 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Wed, 26 Oct 2005 13:17:16 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> Message-ID: > It's odd - I never realised my RSS talk's code wouldn't actually make much > sense to someone who didn't understand OOP syntax. But indeed it wouldn't. > So much of CPAN assumes a working knowledge of OOP now. > I've been doing Perl for over 7 years. I've only started to _really_ rely on it in the last year. 5.005 was HAWT when I was just getting started, and it did OO. As I've quite recently discovered though... having a good understanding of __USING__ OOP (I've been using DBI/DBD for four years), and __CREATING__ OOP are vastly different beasts. That said; I, for one, had no problem following your talk. > Well, I'm due to be giving a talk on OOP at the next meeting, and I'd > intended it to be an intro sort of talk. I would certainly find it quite handy. I've learned Perl in a vacuum, I've had two books, but I've not been surrounded by people whom also do Perl. This is the reason why I came into this group... I'm interested in anything anyone has to say. Thanks, Gary Allen Vollink From autarch at urth.org Wed Oct 26 11:18:41 2005 From: autarch at urth.org (Dave Rolsky) Date: Wed, 26 Oct 2005 13:18:41 -0500 (CDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> Message-ID: On Tue, 25 Oct 2005, jira0004 wrote: > I could do a brief over view of how DBI works. I could also present how > DBI supports vendor specific stuff in terms of Oracle and PostgreSQL. > DBI also provides some support for performance optimization as well as > some "shortcut" techniques. I haven't used the performance optimization > much. > > It really only makes sense for me to do a DBI talk or a DBI "lightening" > talk if there are developers in the group that aren't familiar with DBI. > If most of the developers in the group are reasonably familiar with DBI, > then it would be boring for them to listen to me pontificate on DBI. Well, a lightning talk is 10 minutes, so I think it's best either focus on a very general overview or a few interesting aspects of DBI. I'll put you on the schedule and let you decide. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From autarch at urth.org Wed Oct 26 11:20:31 2005 From: autarch at urth.org (Dave Rolsky) Date: Wed, 26 Oct 2005 13:20:31 -0500 (CDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> Message-ID: On Wed, 26 Oct 2005, Dave Rolsky wrote: > Well, a lightning talk is 10 minutes, so I think it's best either focus on I should point out that lightning talks were started by Mark-Jason Dominus at YAPC (2000, I think), and at conferences they are usually just 5 minutes each. But since we don't have as large a pool of speakers, it makes sense to give people more time, since it'd be really hard to fill a meeting with 5 minute talks. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From gary.vollink at gmail.com Wed Oct 26 11:25:49 2005 From: gary.vollink at gmail.com (Gary Vollink) Date: Wed, 26 Oct 2005 13:25:49 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: <20051026094425.A14891@acadcam.com> References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> Message-ID: On 10/26/05, Jim Anderson wrote: > Personally, I'd like to see more 'intro' talks for people that haven't > been doing advanced perl stuff, or have only gotten into some areas. *Ahhh* That's me, relieved. I realize that I am walking among a few super-advanced folk, and was starting to wonder why I spoke up about GD (which, for those whom already use it, it's fairly straight forward). I certainly don't have anything super-advanced to show off. > but nothing on the basics of OOP. I'd like to see some talks oriented > more towards people that have a basic working knowledge of Perl, but are > interested in an intro level to get them started in an area. I think we > should have 1 or 2 talks that are aimed at that level. > Maybe even more than a few! Thanks, Gary Allen From autarch at urth.org Wed Oct 26 11:33:28 2005 From: autarch at urth.org (Dave Rolsky) Date: Wed, 26 Oct 2005 13:33:28 -0500 (CDT) Subject: [Mpls-pm] Next meeting? In-Reply-To: References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> Message-ID: On Wed, 26 Oct 2005, Gary Vollink wrote: > On 10/26/05, Jim Anderson wrote: >> Personally, I'd like to see more 'intro' talks for people that haven't >> been doing advanced perl stuff, or have only gotten into some areas. > > *Ahhh* > That's me, relieved. I realize that I am walking among a few > super-advanced folk, and was starting to wonder why I spoke up about > GD (which, for those whom already use it, it's fairly straight > forward). I certainly don't have anything super-advanced to show off. I think that a fair number of the people who come to tech meetings are not Perl experts, nor do they program mostly in Perl at work. I think lots of people come because they use Perl for hobby projects, or because they use it some of the time at work along with other tools. I think the speakers tend to skew perceptions a bit since they often tend to be the most experienced Perl folks. One of the goals of the lightning talks is to lower the barrier to entry for speaking. It's a lot to ask for someone to give a 60+ minute talk on a topic, but 5-10 minutes is doable by anyone, and doesn't really require depth of expertise. It's also good for people who don't have speaking experience, since it's less pressure and a good way to start getting experience. -dave /*=================================================== VegGuide.Org www.BookIRead.com Your guide to all that's veg. My book blog ===================================================*/ From craig at wavefront.net Wed Oct 26 11:47:41 2005 From: craig at wavefront.net (Craig S. Wilson) Date: Wed, 26 Oct 2005 13:47:41 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> Message-ID: <435FCF4D.9090205@wavefront.net> Dave Rolsky wrote: > I think that a fair number of the people who come to tech meetings are not > Perl experts, nor do they program mostly in Perl at work. I think lots of > people come because they use Perl for hobby projects, or because they use > it some of the time at work along with other tools. I think the speakers > tend to skew perceptions a bit since they often tend to be the most > experienced Perl folks. Even if you use Perl a lot, who has the opportunity or the time to use ALL of it? Especially given the wide array of CPAN modules available. Awareness of other modules and methods is always helpful. I just wish I wasn't tied up on Wednesday evenings this fall. Maybe someone can video or record the talks for those who can't make it? -- --------------------------------------- Craig S. Wilson craig at wavefront.net From sieglerc at comcast.net Wed Oct 26 11:54:49 2005 From: sieglerc at comcast.net (Chris Siegler) Date: Wed, 26 Oct 2005 13:54:49 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: <435FCF4D.9090205@wavefront.net> References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> <435FCF4D.9090205@wavefront.net> Message-ID: <435FD0F9.3020202@comcast.net> Craig S. Wilson wrote: > Dave Rolsky wrote: > >>I think that a fair number of the people who come to tech meetings are not >>Perl experts, nor do they program mostly in Perl at work. I think lots of >>people come because they use Perl for hobby projects, or because they use >>it some of the time at work along with other tools. I think the speakers >>tend to skew perceptions a bit since they often tend to be the most >>experienced Perl folks. > > > Even if you use Perl a lot, who has the opportunity or the time to use ALL of it? Especially given the wide array of CPAN modules > available. > > Awareness of other modules and methods is always helpful. I just wish I wasn't tied up on Wednesday evenings this fall. You can always download "Lost" at TorrentSpy :) > > Maybe someone can video or record the talks for those who can't make it? > I could bring a camcorder (records to mini DVD-RAM) if people are really interested. -Chris From ry4an-mplspm at ry4an.org Wed Oct 26 12:13:51 2005 From: ry4an-mplspm at ry4an.org (Ry4an Brase) Date: Wed, 26 Oct 2005 14:13:51 -0500 Subject: [Mpls-pm] Key Signing - November 10th Message-ID: <20051026191349.GF7410@ry4an.org> I know it's not strictly perlish, but in the past there's been a fair amount of cross over so I wanted to mention the next local PGP key signing event here too. On Thursday, November 10th, 2005 from 5:30pm to 6:00pm at the ACM - U of MN Chapter (2-204 EE/CS; 200 Union St.; Mpls, MN) I'll be hosting another PGP/GPG key-signing event. If you're the sort of person who's into PKI (or just like reading hex aloud) details can be found here: http://ry4an.org/keysigning/ with all the visualization reports done in Perl, natch: http://ry4an.org/keysigning/visualize/ -- Ry4an Brase - http://ry4an.org/ From ken at mathforum.org Wed Oct 26 20:17:12 2005 From: ken at mathforum.org (Ken Williams) Date: Wed, 26 Oct 2005 22:17:12 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: <435FCF4D.9090205@wavefront.net> References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> <435FCF4D.9090205@wavefront.net> Message-ID: <3bbc0f4834fed21a467e0962e8976cf7@mathforum.org> On Oct 26, 2005, at 1:47 PM, Craig S. Wilson wrote: > Dave Rolsky wrote: >> I think that a fair number of the people who come to tech meetings >> are not >> Perl experts, nor do they program mostly in Perl at work. I think >> lots of >> people come because they use Perl for hobby projects, or because they >> use >> it some of the time at work along with other tools. I think the >> speakers >> tend to skew perceptions a bit since they often tend to be the most >> experienced Perl folks. > > Even if you use Perl a lot, who has the opportunity or the time to use > ALL of it? Especially given the wide array of CPAN modules > available. Heck, even the core language itself has tons of little Balkan regions to it. I've been programming in Perl forever, I consider myself The Perl Expert in many settings, and I'm just now starting to use pack() and unpack() on a regular basis and know what I'm doing. And then there are some things that I probably knew at one point, but are *so* rarely used that they're completely gone from my memory. Things like reset() and ?regex? searches. And format() and write(). This is why God invented "perldoc -f" and "perldoc -q". -Ken From shane at aptest.com Wed Oct 26 20:22:27 2005 From: shane at aptest.com (Shane McCarron) Date: Wed, 26 Oct 2005 22:22:27 -0500 Subject: [Mpls-pm] Next meeting? In-Reply-To: <3bbc0f4834fed21a467e0962e8976cf7@mathforum.org> References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> <435FCF4D.9090205@wavefront.net> <3bbc0f4834fed21a467e0962e8976cf7@mathforum.org> Message-ID: <436047F3.1090409@aptest.com> Ken Williams wrote: >This is why God invented "perldoc -f" and "perldoc -q". > > s/God/Larry/ -- Shane P. McCarron Phone: +1 763 786-8160 x120 Managing Director Fax: +1 763 786-8180 ApTest Minnesota Inet: shane at aptest.com From ian at indecorous.com Wed Oct 26 22:09:07 2005 From: ian at indecorous.com (Ian Malpass) Date: Thu, 27 Oct 2005 06:09:07 +0100 (BST) Subject: [Mpls-pm] Next meeting? In-Reply-To: <3bbc0f4834fed21a467e0962e8976cf7@mathforum.org> References: <20051026031720.6289.qmail@web33905.mail.mud.yahoo.com> <20051026094425.A14891@acadcam.com> <435FCF4D.9090205@wavefront.net> <3bbc0f4834fed21a467e0962e8976cf7@mathforum.org> Message-ID: On Wed, 26 Oct 2005, Ken Williams wrote: > I'm just now starting to use pack() and unpack() on a regular basis and > know what I'm doing. Good lightning talk volunteering, that man. Well done. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass From ejseim at tech-pro.com Thu Oct 27 07:23:51 2005 From: ejseim at tech-pro.com (Ehren J. Seim) Date: Thu, 27 Oct 2005 09:23:51 -0500 Subject: [Mpls-pm] 7 week Perl contract Message-ID: Short Perl contract, high likelihood of extensions. Contact me with questions. Duration: 7 weeks Location: Golden Valley, MN Overall Experience: 4-6 Years Seeking highly skilled Perl developer with cgi and html strength. Focus is on rapid or prototype development to quickly get some web enabled tools working. Coding must be done in a manner that maintenance can easily be handed off to existing staff. Must be comfortable with SQL and unix. Skills: HTML / Required / 4-6 years PERL / Required / 4-6 years SQL / Required / 4-6 years UNIX / Required / 4-6 years Thanks! Ehren J. Seim | Sr. Recruiter 651.634.1411 | 612.385.4068 tech*pro | www.tech-pro.com People Solutions Results <> This electronic mail (including any attachments) may contain information that is privileged, confidential, and/or otherwise protected from disclosure to anyone other than its intended recipient(s). Any dissemination or use of this electronic email or its contents (including any attachments) by persons other than the intended recipient(s) is strictly prohibited. If you have received this message in error, please notify us immediately by reply email so that we may correct our internal records. Please then delete the original message (including any attachments) in its entirety. Thank you. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/mpls-pm/attachments/20051027/b644e0b6/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/bmp Size: 16374 bytes Desc: Picture (Metafile) Url : http://mail.pm.org/pipermail/mpls-pm/attachments/20051027/b644e0b6/attachment-0001.bmp From ian at indecorous.com Thu Oct 27 07:49:02 2005 From: ian at indecorous.com (Ian Malpass) Date: Thu, 27 Oct 2005 15:49:02 +0100 (BST) Subject: [Mpls-pm] Closure Code Samples In-Reply-To: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> References: <51690.198.203.175.175.1129212226.squirrel@webmail.corradiation.net> Message-ID: On Thu, 13 Oct 2005, Robert Fischer wrote: > Here are the closure code samples, as promised. And a book on functional programming in perl, published this last March, shortly to be available free on the web: Higher-Order Perl by Mark Jason Dominus. It's published by Elsevier, who I think do a similar UG/free book thing to O'Reilly. Ian - --------------------------------------------------------------------------- The soul would have no rainbows if the eyes held no tears. Ian Malpass