From mathewm at amazon.com Tue Aug 1 03:20:44 2000 From: mathewm at amazon.com (Mathew Mills) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: perl's sticky lvalue bug Message-ID: I recently came across a nasty little problem. I found a web page that helped me solve the problem, explaining the cause was the "sticky lvalue" bug in perl. Does anyone know what bug/behavior this might refer to? There were no details given... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From dougb at scalar.org Tue Aug 1 09:39:53 2000 From: dougb at scalar.org (Doug Beaver) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: perl's sticky lvalue bug In-Reply-To: ; from mathewm@amazon.com on Tue, Aug 01, 2000 at 01:20:44AM -0700 References: Message-ID: <20000801073953.A414@scalar.org> On Tue, Aug 01, 2000 at 01:20:44AM -0700, Mathew Mills wrote: > I recently came across a nasty little problem. I found a web page > that helped me solve the problem, explaining the cause was the "sticky > lvalue" bug in perl. Does anyone know what bug/behavior this might > refer to? There were no details given... Can you give a short code example that illustrates the problem? Doug -- Smithers: I'm afraid we have a bad image, Sir. Market research shows people see you as somewhat of an ogre. Burns: I ought to club them and eat their bones! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From Sean at DigiDot.com Tue Aug 1 10:38:48 2000 From: Sean at DigiDot.com (Sean Ruddy) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: perl's sticky lvalue bug References: <20000801073953.A414@scalar.org> Message-ID: <3986EF07.CBF55F8E@DigiDot.com> Found this on another list: http://www.geocrawler.com/archives/3/183/1998/2/0/1015933/ FROM: Tim Bunce DATE: 02/27/1998 04:04:59 SUBJECT: RE: unwarrented bind errors ? *** From dbi-users -- To unsubscribe, see the end of this message. *** > From: Phil R Lawrence < prl2@Lehigh.EDU > > > AIX, DBD::Oracle, DBI 0.90 > > First error: > -> execute for DBD::Oracle::st (DBI::st=HASH(0x20201810)~0x20201798 > `ERIUHRE8O7` `AND coll = AS`) > Uncaught exception from user code: > Can`t bind non-scalar value (currently) at ./cobolrepl.pl line 150, > > Code is not trying to bind a non-scalar! Sort of. It`s probably perl`s "sticky lvalue" bug getting in the way. (Worked-around in the next DBD::Oracle release.) > try saying $sth1->execute(scalar $letr, scalar $coll_sql) or do the same > thing on another line and it *still* gives same error. Try saying $sth1->execute("$letr", "$coll_sql"); Tim. To unsubscribe from this list, please visit http://www.fugue.com/dbi If you are without web access, or if you are having trouble with the web page, please send mail to dbi-request@fugue.com . Please try to use the web page first - it will take a long time for your request to be processed by hand. Doug Beaver wrote: > On Tue, Aug 01, 2000 at 01:20:44AM -0700, Mathew Mills wrote: > > > I recently came across a nasty little problem. I found a web page > > that helped me solve the problem, explaining the cause was the "sticky > > lvalue" bug in perl. Does anyone know what bug/behavior this might > > refer to? There were no details given... > > Can you give a short code example that illustrates the problem? > > Doug > > -- > Smithers: I'm afraid we have a bad image, Sir. Market research shows > people see you as somewhat of an ogre. > Burns: I ought to club them and eat their bones! > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From smorton at pobox.com Tue Aug 1 20:09:47 2000 From: smorton at pobox.com (Sanford Morton) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: activestate's ActivePerl on Unix Message-ID: <14727.29915.662722.232923@evrtwa1-ar4-128-245.dsl.gtei.net> I just noticed that ActiveState is now offering a Unix version, eg, http://www.activestate.com/Products/ActivePerl/docs/index.html Is this identical to the standard source or binaries or does it offer less/more functionality? I couldn't tell from browsing the doc's. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Tue Aug 1 21:00:18 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: activestate's ActivePerl on Unix In-Reply-To: <14727.29915.662722.232923@evrtwa1-ar4-128-245.dsl.gtei.net> Message-ID: Microsoft's behind it ... I wouldn't trust it as far as I could throw it. J- > From: Sanford Morton > Date: Tue, 1 Aug 2000 18:09:47 -0700 (PDT) > To: spug-list@pm.org > Subject: SPUG: activestate's ActivePerl on Unix > > I just noticed that ActiveState is now offering a Unix version, eg, > > http://www.activestate.com/Products/ActivePerl/docs/index.html > > Is this identical to the standard source or binaries or does it offer > less/more functionality? I couldn't tell from browsing the doc's. > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jmates at mbt.washington.edu Wed Aug 2 10:50:27 2000 From: jmates at mbt.washington.edu (Jeremy A. Mates) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: activestate's ActivePerl on Unix In-Reply-To: Message-ID: On Tue, 1 Aug 2000, John Cokos wrote: > > Microsoft's behind it ... I wouldn't trust it > as far as I could throw it. > Hey, for a SPUG project, someone could write a little floating window with a talking dromedary (llama if you're just getting started) that spews out random Larry Wall quotes and obfuscated perl snippits. No DBI browser would be complete without this feature... -- Jeremy Mates (206) 221-4714 Fax: 685-7301 Systems Administrator K353-B, Health Sciences Center http://www.mbt.washington.edu/ Box 357730 University of Washington Seattle, WA, 98195 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Wed Aug 2 11:12:41 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: activestate's ActivePerl on Unix Message-ID: Whoaaa! Hold on. Perl is built from the *same* source code tree for both Windows and Unix. Activestate has played a huge role in making that happen. Gurusamy Sarathy, the man in charge of getting Perl 5.6 out the door, works for Activestate. Just because ActiveState gets some of its money from the man, doesn't mean that they're out to get you. Microsoft needs Perl to work well on Windows to make it a valid server platform. If ActiveState can use their money to help out Perl in general, we all benefit. ActivePerl is just your good old regular perl, bundled with some off ActiveState's excellent tools, like PPM, distributed in a binary form. Many CPAN modules would not be available to Windows users (of which there are many in SPUG-land) if ActiveState had not ported and made them easy to install with PPM. , Brian John Cokos @pm.org on 08/01/2000 07:00:18 PM Sent by: owner-spug-list@pm.org To: Sanford Morton , cc: Subject: Re: SPUG: activestate's ActivePerl on Unix Microsoft's behind it ... I wouldn't trust it as far as I could throw it. J- > From: Sanford Morton > Date: Tue, 1 Aug 2000 18:09:47 -0700 (PDT) > To: spug-list@pm.org > Subject: SPUG: activestate's ActivePerl on Unix > > I just noticed that ActiveState is now offering a Unix version, eg, > > http://www.activestate.com/Products/ActivePerl/docs/index.html > > Is this identical to the standard source or binaries or does it offer > less/more functionality? I couldn't tell from browsing the doc's. > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From cmeyer at helvella.org Wed Aug 2 12:49:56 2000 From: cmeyer at helvella.org (Colin Meyer) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: activestate's ActivePerl on Unix In-Reply-To: <14727.29915.662722.232923@evrtwa1-ar4-128-245.dsl.gtei.net> References: <14727.29915.662722.232923@evrtwa1-ar4-128-245.dsl.gtei.net> Message-ID: <20000802104956.B10447@hobart.helvella.org> On Tue, Aug 01, 2000 at 06:09:47PM -0700, Sanford Morton wrote: > I just noticed that ActiveState is now offering a Unix version, eg, > > http://www.activestate.com/Products/ActivePerl/docs/index.html > > Is this identical to the standard source or binaries or does it offer > less/more functionality? I couldn't tell from browsing the doc's. One thing that I noticed is that it includes ppm, activestate's perl package manager. I have only used ppm a little, but it seems to provide rpm style packaging for cpan's .tar.gz files. -C. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 2 11:54:19 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: activestate's ActivePerl on Unix References: Message-ID: <00f901bffca2$4ce2d9a0$28e842cf@iwebx1> True enough, but, in the true Microshaft tradition, Activestate is now bundling some utilities free that are putting hard working 3rd party guys (like perl2exe) out of business. Activestate should stick to windoze perl, period. ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== ----- Original Message ----- From: To: "John Cokos" Cc: "Sanford Morton" ; Sent: Wednesday, August 02, 2000 9:12 AM Subject: Re: SPUG: activestate's ActivePerl on Unix > > > Whoaaa! Hold on. Perl is built from the *same* source code tree for both > Windows and Unix. Activestate has played a huge role in making that happen. > Gurusamy Sarathy, the man in charge of getting Perl 5.6 out the door, works > for Activestate. > > Just because ActiveState gets some of its money from the man, doesn't mean > that they're out to get you. Microsoft needs Perl to work well on Windows > to make it a valid server platform. If ActiveState can use their money to > help out Perl in general, we all benefit. > > ActivePerl is just your good old regular perl, bundled with some off > ActiveState's excellent tools, like PPM, distributed in a binary form. Many > CPAN modules would not be available to Windows users (of which there are > many in SPUG-land) if ActiveState had not ported and made them easy to > install with PPM. > > , Brian > > > > > > John Cokos @pm.org on 08/01/2000 07:00:18 PM > > Sent by: owner-spug-list@pm.org > > > To: Sanford Morton , > cc: > > Subject: Re: SPUG: activestate's ActivePerl on Unix > > > > > Microsoft's behind it ... I wouldn't trust it > as far as I could throw it. > > > > J- > > > > From: Sanford Morton > > Date: Tue, 1 Aug 2000 18:09:47 -0700 (PDT) > > To: spug-list@pm.org > > Subject: SPUG: activestate's ActivePerl on Unix > > > > I just noticed that ActiveState is now offering a Unix version, eg, > > > > http://www.activestate.com/Products/ActivePerl/docs/index.html > > > > Is this identical to the standard source or binaries or does it offer > > less/more functionality? I couldn't tell from browsing the doc's. > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jope-spug at n2h2.com Wed Aug 2 14:42:29 2000 From: jope-spug at n2h2.com (El JoPe Magnifico) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: Activestate's PPM vs. CPAN.pm? In-Reply-To: <20000802104956.B10447@hobart.helvella.org> Message-ID: On Wed, 2 Aug 2000, Colin Meyer wrote: > One thing that I noticed is that it includes ppm, activestate's perl package > manager. I have only used ppm a little, but it seems to provide rpm style > packaging for cpan's .tar.gz files. So what's the difference between PPM and CPAN.pm? Just packaging style? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tuck at whistlingfish.net Wed Aug 2 18:21:38 2000 From: tuck at whistlingfish.net (Matt Tucker) Date: Wed Aug 4 00:07:31 2004 Subject: SPUG: Activestate's PPM vs. CPAN.pm? In-Reply-To: Message-ID: <32100000.965258498@benzene> -- El JoPe Magnifico spake thusly: > On Wed, 2 Aug 2000, Colin Meyer wrote: >> One thing that I noticed is that it includes ppm, activestate's perl >> package manager. I have only used ppm a little, but it seems to >> provide rpm style packaging for cpan's .tar.gz files. > > So what's the difference between PPM and CPAN.pm? > Just packaging style? PPM offers pre-compiled binaries. On Win32, this is quite an advantage, since the user isn't required to have dev tools installed. On Linux, this a good deal more dubious, considering the wide range of installations available. Having distribution-specific rpms/debs/whatever (or just using CPAN.pm) makes more sense to me. - Matt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From billa at willapabay.org Thu Aug 3 15:13:16 2000 From: billa at willapabay.org (Bill Alford) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG project? In-Reply-To: <200007280251.TAA25325@catmanor.com> Message-ID: A good calendar could be a good project. But there are lots of reasonable options out there already. A few years ago at a place I used to work we got a web calendar system implemented in perl and it was very buggy. The main problem is that they didn't have a way to lock the data files during update, until I reported the bug to them. (We lost lots of data and time with that one.) There were also lots of usability issues. There are quite a few gotchas with calendars in addition to that one. The least of which is specifying time range rules and the various repeated meeting issues. Most involve clean UIs. I'm sure to get flamed for this, but it should be at least as easy to use as the calendar in Exchange (the only reason I've used Exchange). A cool feature would be to make a web and stand-alone version. Also, make it so that people can schedule meetings with others. If this could be done cleanly and on par with the commercial versions, and run on multiple platforms, it might be a killer app. On the other hand, how many OSes come with calendar apps now. On the third hand, this could be good for small companies and non-profits that need the features of good scheduling software and can't afford the licensing of the commercial products. I remember seeing something about a calendar exchange protocol out there. If this becomes the project, someone should check into it. I think it used to be called V-Cal. Bill On Thu, 27 Jul 2000, William Julien wrote: > > > >I'll say more next week but for now I'd like to see the ideas keep rolling > >in. Keep in mind for the initial project we should probably pick something > >with the following attributes: > > > >1) Is a module (not a script or app) > >2) Finishable in a 1-2 month timeframe. > >3) Usable on Unix and Win32 > > > > One idea I have for a "do-able" project is a module to facilitate > the generation of a web based calendar/scheduling system. > > Something like... > > use spugcal qw':monthly'; # get's top billing! > use CGI ':standard'; > > $userid = "moonbeam"; > $group = "kittens"; > > %date = ("$userid $group Jul-26-2000 15:00" => "Go to the company picnic", > "$userid $group Jul-27-2000 08:00" => "get a life" > ); > > print header, start_html; > $spugcal = new spugcal->connect( $userid, $group, $passwd ) > or die "Laughing\n"; > $calendar = $spugcal->calendar_month ( > -events => \%dates, > -month => 'Jul', > -year => 2000, > -bgcolor => "lightblue", > -textcolor => "black", > ); > print $calendar; > print end_html; > > would print a basic monthly calendar with two events. > > The module would need to handle: > - support external data model (as shown above). > - internal data model using DBI database administration of the events. > - database administration support > - handle time zone differences > options to display the event in the server's, the poster's, > or the viewer's timezone. > - login and security > - account and group administration methods > - various display views > Monthly > weekly > daily > - handle schedule conflicts > - email notification of events > done via cron, outside the web server context > > I checked CPAN, and I found a few simple calendars, but nothing that > can be used as a distributed scheduler. > > Could this be a SPUG killer app? > > --- > William Julien _,'| _.-''``-...___..--'; > moonbeam@catmanor.com /, \'. _..-' , ,--...--''' > vi is my shepherd; < \ .`--''' ` /| > i shall not font. `-,;' ; ; ; > __...--'' __...--_..' .;.' > (,__....----''' (,..--'' > perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);' > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Thu Aug 3 17:51:16 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Perl Job at NeoInformatics Message-ID: <20000803155116.A3046@timji.consultix.wa.com> NeoInformatics is looking for some Perl gurus! We build giant databases that interact with a website using CGI & HTML::Template. We've got one full-time permanent position, and at least one short-term contract position. We're also looking for a full-time Oracle DBA if there's any of you out there... FULL-TIME POSITION: **Lead Perl Programmer Do you love programming in Perl? We do. We need programmers who are interested in doing some cool things with databases and Perl. Multiple years of programming experience is required, ideally in a web-based Perl environment using databases. Our Lead Programmers are responsible for designing and and producing new tools, and working closely with a team of assorted technical resources to execute our plans. EMAIL your resume to resume@neoinformatics.com. This is a full-time position with NeoInformatics -- good salary, benefits, bonus, possible stock options. For more listings see our website, www.neoinformatics.com/openings.htm. CONTRACT POSITION(S): **Perl Programmer Same requirements as the Lead Perl Programmer position above, but it's a short-term contract working with several other programmers. Start & end dates are Aug 11 - Sept 8. Other specific contracts TBD. Price DOE. The position is 1099, contracts directly with Neo (you submit an invoice), and telecommuting isn't an option (since you'd be working in a group). EMAIL your resume to seano@neoinformatics.com. Thanks for your interest! Sean Owens | Project Lead N E O I N F O R M A T I C S V 206.381.8884 F 381.5959 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Mon Aug 7 22:00:52 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Brian's In-Line External Code Kicks (XS's) Ass! Message-ID: <20000807200052.B22095@timji.consultix.wa.com> ----- Forwarded message from B.Ingerson@epixtech.com ----- From: B.Ingerson@epixtech.com Subject: Request for Inline namespace (Extend Perl w/o XS) To: modules@perl.org Cc: INGY@cpan.org X-Mailer: Lotus Notes Release 5.0.2a (Intl) 23 November 1999 Date: Sun, 6 Aug 2000 10:40:10 -0700 X-MIMETrack: Serialize by Router on HQ4/Amlibs(Release 5.0.4 |June 8, 2000) at 08/07/2000 11:39:24 AM Dear modules, I am requesting the namespace "Inline". Inline.pm is a module that allows you to code other languages (like C), directly in your Perl scripts. It compiles the code on the fly, so all you need to do is run the script. You don't need to write any XS or SWIG glue code. The module is now working reasonably well, and is ready for uploading to CPAN. Module listing: Name DSLI Description Info ------------- ---- -------------------------------------------- ----- Inline adhh Use other programming languages inside Perl INGY There is also a configuration module included in the package called Inline::Config. I posted to this group a couple of weeks ago, but got no response. I have also sent email RFC-s to Damian Conway and Larry Wall, but have not heard back yet. I would like to get the module out as soon as possible. Thanks in advance, Brian INGY@cpan.org PS I am including the README-s for both modules. NAME Inline - Use other languages inside your Perl scripts and modules. SYNOPSIS print "9 + 16 = ", add(9, 16), "\n"; print "9 - 16 = ", subtract(9, 16), "\n"; use Inline C => <<'END_OF_C_CODE'; int add(int x, int y) { return x + y; } int subtract(int x, int y) { return x - y; } END_OF_C_CODE DESCRIPTION Overview The `Inline' module allows you to put source code from other programming languages directly "Inline" in a Perl script or module. The code is automatically compiled as needed, and then loaded for immediate access from Perl. `Inline' saves you from the hassle of having to write and compile your own glue code using facilities like XS or SWIG. Simply type the code where you want it and run your Perl as normal. All the hairy details are handled for you. The compilation and installation of your code chunks all happen transparently; all you will notice is the delay of compilation. The `Inline' code only gets compiled the first time you run it (or whenever it is modified) so you only take the performance hit once. Code that is Inlined into distributed modules (like on the CPAN) will get compiled when the module is installed (during "`make test'"), so the end user will never notice the compilation time. Why Inline? Do you want to know "Why would I use other languages in Perl?" or "Why should I use `Inline' to do it?"? I'll try to answer both. Why would I use other languages in Perl? The most obvious reason is performance. For an interpreted language, Perl is extremely fast. But like my co-workers say "Anything Perl can do, C can do faster". (They never mention the development time ;-) Anyway, you may be able to remove a bottleneck in your Perl code by using another language, without having to write the entire program in that language. This keeps your overall development time down, because you're using Perl for all of the non-critical code. Another reason is to access functionality from existing API- s that use the language. Some of this code may only be available in binary form. But by creating small subroutines in the native language, you can "glue" existing libraries to your Perl. As a user of the CPAN, you know that code reuse is a good thing. So why throw away those Fortran libraries just yet? Maybe the best reason is "Because you want to!". Diversity keeps the world interesting. TMTOWTDI! Why should I use `Inline' to do it? There are already two major facilities for extending Perl with C. They are XS and SWIG. Now if you're familiar with either, then I may be preaching to the choir. Well, here goes: Greetings congregation. This morning I want to open your eyes to the virtues of Inline and the perils of XS. Let us compare the two. --- Inline - You can use it from a regular script. XS - Requires you to create a module and an XS file and a makefile, in addition to your regular script. Actually, the program `h2xs' does a nice job of getting you started, but that's still a lot of junk to maintain. --- XS - You need rebuild every time you want to test a small change. Inline - Perl programmers cannot be bothered with silly things like compiling. "Tweak, Run, Tweak, Run" is our way of life. `Inline' does all the dirty work for you. --- XS - There is a difficult learning curve involved with setting up and using the XS environment. (At least for a simple Perl preacher like me.) Read the following perldocs and man pages if you don't believe me: * perlxs * perlxstut * perlapi * perlguts * perlmod * h2xs * xsubpp * ExtUtils::MakeMaker Inline - Fuh-GED-ah-bow-dit! --- XS - Only implements C and C++. Inline - Plans to implement several languages. For now, `Inline' only implements C and it uses XS to do it. (Dirty little secret) But this is the right thing to do. See the section on "SUPPORTED LANGUAGES" below. I too believe in code reuse, and XS is good code. (as long as you don't actually need to write it yourself :^) --- Amen. In actuality, XS is quite powerful for all of its madness. `Inline' only generates a minimal subset of XS mappings. (See the section on "C-Perl Bindings" below) But that should be enough to do what you need to. If not, give XS a try. Also, `h2xs' attempts to map header files to glue code which can be very handy when it works. `Inline' has no such facility. I also think that its important to understand what's going on under the hood. It gives you the power to do more complicated things. So read all of those perldocs when you get a chance. In the meantime, just "`use Inline'"! How it works `Inline' performs the following steps: 1) Receive the Source Code `Inline' gets the source code from your script or module with a statement like the following: use Inline C => Source-Code; where `Source-Code' is a string (most easily represented by using the "Here Document" quoting style; see the section on "SYNOPSIS" above), a file name, an open file handle, or a reference to a subroutine (that will return source code). Since `Inline' is coded in a "`use'" statement, everything is done during Perl's compile time. If anything needs to be done that will affect the `Source- Code' string, it needs to be done in a `BEGIN' block that is *before* the "`use Inline ...'" statement. This might include setting interpolated variables, or setting options in the `Inline::Config' module. 2) Check if the Source Code has been Compiled `Inline' only needs to compile the source code if it has not yet been compiled. It accomplishes this seemingly magical task in an extremely simple and straightforward manner. It runs the source text through the `Digest::MD5' module to produce a 128-bit "fingerprint" which is virtually unique. The fingerprint (in hex) is combined with the current package name (and the script name, if the package is "`main'") to form a unique name for the executable module (shared object). If an executable with that name already exists, then proceed to step 8. (No compilation is necessary) 3) Find a Place to Build and Install At this point we know we need to compile the source code. The first thing to figure out is where to create the great big mess associated with compilation, and the second thing is where to put the module when its done. By default `Inline' will try to build under the first one of the following places that exists and is writable: - ~/.blib_I/ - ~/blib_I/ - $bin/blib_I/ - ./blib_I/ - /tmp/blib_I/ - $bin/blib_I/ # will mkdir if -w $bin/ - ./blib_I/ # will mkdir if -w ./ (where `$bin' is the script bin directory returned by `FindBin.pm') It will then try to install the executable under the same directory or in `Config{installsitearch}' directory if `$Inline::Config::SITE_INSTALL=1'. Optionally you can configure `Inline' to build and install exactly where you want. See the Inline::Config manpage. 4) Parse the Source for Semantic Cues `Inline' uses the module `Parse::RecDescent' to parse through your chunks of source code and look for things that it can create run-time bindings to. For instance, in `C' it looks for all of the function definitions and breaks them down into names and data types. These elements are used to correctly bind the `C' function to a `Perl' subroutine. 5) Create the Build Environment Now `Inline' can take all of the gathered information and create an environment to build your source code into an executable. Without going into all the details, it just creates the appropriate directories, creates the appropriate source files including an XS file and a `Makefile.PL'. 6) Compile the Code and Install the Executable The planets are in alignment. Now for the easy part. `Inline' just does what you would do to install a module. "`perl Makefile.PL && make && make test && make install'". If something goes awry, `Inline' will croak with a message indicating where to look for more info. 7) Tidy Up By default, `Inline' will remove all of the mess created by the build process, assuming that everything worked. If the compile fails, `Inline' will leave everything intact, so that you can debug your errors. Setting `$Inline::Config::CLEAN_AFTER_BUILD=0' will also stop `Inline' from cleaning up. 8) DynaLoad the Executable `Inline' uses the `DynaLoader::bootstrap' method to pull your external module into `Perl' space. Now you can call all of your external functions like Perl subroutines. Wheeee! C-Perl Bindings This section describes how the `Perl' variables get mapped to `C' variables and back again. First, you need to know how `Perl' passes arguments back and forth to subroutines. Basically it uses a stack (also known as the Stack). When a sub is called, all of the parenthesized arguments get expanded into a list of scalars and pushed onto the Stack. The subroutine then pops all of its parameters off of the Stack. When the sub is done, it pushes all of its return values back onto the Stack. The Stack is an array of scalars known internally as `SV''s. The Stack is actually an array of pointers to SV or `SV*'; therefore every element of the Stack is natively a `SV*'. For *FMTYEWTK* about this, read the perlguts manpage. So back to variable mapping. XS uses a thing known as "typemaps" to turn each `SV*' into a `C' type and back again. This is done through various XS macro calls, casts and the Perl API. See the perlapi manpage. XS allows you to define your own typemaps as well for fancier non-standard types such as `typedef'-ed structs. `Inline' uses a boiled down version of this approach. It parses your code for simple types and generates the XS code to map them. The currently supported types are: - int - long - double - char* - void - SV* If you need to deal with anything fancier, just use the generic `SV*' type in the function definition. Then inside your code, do the mapping yourself. A return type of `void' has a special meaning to `Inline'. It means that you plan to push the values back onto the Stack yourself. This is what you need to do to return a list of values. If you really don't want to return anything (the traditional meaning of `void') then simply don't push anything back. If ellipsis or `...' is used at the end of an argument list, it means that any number of `SV*'s may follow. Again you will need to pop the values off of the `Stack' yourself. See the section on "EXAMPLES IN C" below. Configuration `Inline' trys to do the right thing as often as possible. But sometimes you may need to override the default actions. This is where `Inline::Config' comes to the rescue. `Inline::Config' gives you a more fine-grained control over the entire process. The other side of that coin is "you need to know what you are doing". An important point to remember is that the config settings must be done *before* the "`use Inline'" statement. Since a "`use'" happens at (`Perl''s) compile time, you need to something like this: BEGIN { use Inline; $Inline::Config::OPTION_NUMBER_9 = 'Yes'; # or Inline::Config->new->option_number_9('Yes'); # depending on your orientation :-) } use Inline C => "C code goes here..."; See the Inline::Config manpage for more info. Writing Modules with `Inline' If you are writing a module to distribute on the CPAN, (say `Foo.pm') and you want it to include Inlined code, then you should add the following line to the top of your `test.pl' file before the "`use Foo;'" line: BEGIN {use Inline SITE_INSTALL} When the installer does a "`make test'", the `Inline' module will compile `Foo''s Inlined code in the "`./blib_I/'" directory. Then it will attempt to install the executable code into Perl's `$Config{installsitearch}' directory (which is where an installed module should go). If it does not have permission to install there, then "`make test'" will fail with an appropriate error messsage. Fancy Tricks The `Inline' module opens up all sorts of possibilities regarding what you can do with `Perl' and `C'. Since everything happens at run time (depending on how you think of it) you can generate `C' code on the fly and effectively '`eval'' it. (How this might be useful is left as an exercise to the reader :-) Here is how you would code such a beast: BEGIN {$c_code = &c_code_generator()} use Inline C => $c_code; # will die if code doesn't compile myfunc1(); or $c_code = &c_code_generator(); eval {use Inline C => $c_code}; if ($@) { handle_error($@); # trap error if code doesn't compile } else { myfunc1(); } SUPPORTED LANGUAGES Currently, "`C'" is the only supported language. This is obviously the most important language to support. That is because `Perl' itself is written in `C'. By giving a your `Perl' scripts access to `C', you in effect give them access to the entire glorious internals of `Perl'. (Caveat scriptor :-) `C' is also the easiest language to implement because the tools needed to do so, (like XS and `ExtUtils::MakeMaker') have already been written and are very flexible and reliable. `Inline' makes use of these pre-existing tools. But there is definitely no reason why `Inline' must or should stop with `C'. As long as sensible bindings can be defined between Perl and another language, that language could be a candidate for the `Inline' module. Current languages I am considering adding support for include: - C++ - Fortran - Pascal - Python Note: Since many `C' compilers allow the use of assembly code within C, you may want to consider Assembly Language as supported. Ready to start scripting out new device drivers? SUPPORTED PLATFORMS This module should work anywhere that CPAN extension modules (those that use XS) can be installed, using the typical install format of: perl Makefile.PL make make test make install I have tested on the following platforms: linux 5.005.02 5.00503 5.6 EXAMPLES IN C Here is a series of examples. Each one is a complete program that you can try running yourself. In fact, each example is stored in the `examples/' subdirectory of the `Inline.pm' distribution. They will start out simple and build in complexity. Example #1 - Greetings This example will take one string argument (a name) and print a greeting. The function is called with a string and with a number. In the second case the number is forced to a string. Notice that you do not need to `#include . The `perl.h' header file which gets included by default, automatically loads the standard C header files for you. greet('Ingy'); greet(42); use Inline C => <<'END_OF_C_CODE'; void greet(char* name) { printf("Hello %s!\n", name); } END_OF_C_CODE __END__ Example #2 - and Salutations This is similar to the last example except that the name is passed in as a `SV*' (pointer to Scalar Value) rather than a string (`char*'). That means we need to convert the `SV' to a string ourselves. This is accomplished using the `SvPVX' function which is part of the `Perl' internal API. See the perlapi manpage for more info. One problem is that `SvPVX' doesn't automatically convert strings to numbers, so we get a little surprise when we try to greet `42'. greet('Ingy'); greet(42); use Inline C => <<'END_OF_C_CODE'; void greet(SV* sv_name) { printf("Hello %s!\n", SvPVX(sv_name)); } END_OF_C_CODE __END__ Example #3 - Fixing the problem We can fix the problem in Example #2 by using the `SvPV' function instead. This function will stringify the `SV' if it does not contain a string. `SvPV' returns the length of the string as it's second parameter. Since we don't care about the length, we can just put `PL_na' there, which is a special variable designed for that purpose. greet('Ingy'); greet(42); use Inline C => <<'END_OF_C_CODE'; void greet(SV* sv_name) { printf("Hello %s!\n", SvPV(sv_name, PL_na)); } END_OF_C_CODE __END__ Example #4 - Return to Sender In this example we will return the greeting to the caller, rather than printing it. This would seem mighty easy, except for the fact that we need to allocate a small buffer to create the greeting. I would urge you to stay away from `malloc'ing your own buffer. Just use Perl's built in memory management. In other words, just create a new Perl string scalar. The function `newSVpv' does just that. And `newSVpvf' includes `sprintf' functionality. The other problem is getting rid of this new scalar. How will the ref count get decremented after we pass the scalar back? Perl also provides a function called `sv_2mortal'. Mortal variables die when the context goes out of scope. In other words, Perl will wait until the new scalar gets passed back and then decrement the ref count for you, thereby making it eligible for garbage collection. See the perlguts manpage. In this example the `sv_2mortal' call gets done under the hood by XS, because we declared the return type to be `SV*'. Later, in Example #6, when we manage the return stack by hand, we'll need to call it ourselves. To view the generated XS code, run the command "`perl - MInline=INFO,FORCE,NOCLEAN example004.pl'". This will leave the build directory intact at tell you where to find it. If all that sounds difficult, its not. Take a look: print greet('Ingy'); print greet(42); use Inline C => <<'END_OF_C_CODE'; SV* greet(SV* sv_name) { return (newSVpvf("Hello %s!\n", SvPV(sv_name, PL_na))); } END_OF_C_CODE __END__ Example #5 - The Welcome Wagon Let's modify the greet function to handle a group of people, or more exactly, a list of names. We use the `C' ellipsis syntax: "`...'", since the list can be of any size. Since there are no types or names associated with each argument, we can't expect XS to handle the conversions for us. We'll need to pop them off the Stack ourselves. Luckily there are two functions (macros) that make this a very easy task. First, we need to begin our function with a "`dXSARGS;'" statement. This defines a few variables that we need to access the Stack. The variable we need in this example is "`items'", which is an integer containing the number of arguments passed to us. NOTE: It is important to *only* use "`dXSARGS;'" when there is an ellipsis (`...') in the argument list, *or* the function has a return type of void (See Example #6). Second, we use the `ST(x)' function to access each argument where "0 <= x < items". Observe: greet(qw(Brian Ingerson Ingy Me Myself I)); use Inline C => <<'END_OF_C_CODE'; void greet(SV* name1, ...) { dXSARGS; int i; for (i = 0; i < items; i++) printf("Hello %s!\n", SvPV(ST(i), PL_na)); } END_OF_C_CODE __END__ NOTE: When using a variable length argument list, you have to specify at least one argument before the ellipsis. (On my compiler, anyway.) When XS does it's argument checking, it will complain if you pass in less than the number of *defined* arguments. Therefore, there is currently no way to pass an empty list when a variable length list is expected. Example #6 - Stop Repeating Yourself In this contrived example, we'll pass in the name to greet, and the number of times to do it. The `greet();' function will return that number of greetings. The purpose is to demonstrate how to pass back a list of values. The first thing to do is set the function return type to void. This has a special meaning to `Inline' (and XS). It means that you're going to handle the return stack yourself. Now we first call "`dXSARGS'" again. This time, we are interested in the variables `sp' and `mark', which `dXSARGS' will create. `sp' is the stack pointer and `mark' is the beginning of the stack. Upon entry, sp will not be pointing at the beginning, so we use "`sp = mark'" to reset it. The `XPUSHs' function does a lot for us. It pushes an `SV' onto the Stack, and updates the value of `sp'. It also will extend the size of the Stack, if it needs to, thus avoiding segfaults. Finally, `PUTBACK' stashes the new value of `sp' back to where it belongs. Don't forget it or your function won't work right. You'll get a return list equal in size to your input list, which in this case is 2. print greet('Ingy', 42); use Inline C => <<'END_OF_C_CODE'; void greet(char* name, int number) { dXSARGS; int i; sp = mark; for (i = 0; i < number; i++) XPUSHs(sv_2mortal(newSVpvf("Hello %s!\n", name))); PUTBACK; } END_OF_C_CODE __END__ Also notice that we used the `sv_2mortal' call that was discussed earlier. This will make sure that your newborn scalars get DESTROYed at the appointed time. Example #7 - The Ugly The world is not made of scalars alone, although they are definitely the easiest creatures to deal with, when doing this kind of stuff. Sometimes we need to deal with arrays, hashes, and code references, among other things. Since Perl subroutine calls only pass scalars as arguments, we'll need to use the argument type `SV*' and pass references to more complex types. Lets look a program that dumps the key/value pairs of a hash: use Inline C => <<'END_OF_C_CODE'; void dump_hash(SV* hash_ref) { HV* hash; HE* hash_entry; int num_keys, i; SV* sv_key; SV* sv_val; if (! SvROK(hash_ref)) croak("hash_ref is not a reference"); hash = (HV*)SvRV(hash_ref); num_keys = hv_iterinit(hash); for (i = 0; i < num_keys; i++) { hash_entry = hv_iternext(hash); sv_key = hv_iterkeysv(hash_entry); sv_val = hv_iterval(hash, hash_entry); printf("%s => %s\n", SvPV(sv_key, PL_na), SvPV(sv_val, PL_na)); } return; } END_OF_C_CODE my %hash = ( Author => "Brian Ingerson", Nickname => "INGY", Module => "Inline.pm", Version => "0.18", Example => 7, ); dump_hash(\%hash); __END__ To figure out this one, just curl up with the perlapi manpage for a couple hours. Actually, its fairly straight forward once you are familiar with the calls. Note the `croak' function call. This is the proper way to die from your `C' extensions. BUGS AND DEFICIENCIES This is an early release of a fairly ambitious module. It is definitely ALPHA code. The bugs should be bountiful! When reporting a bug, please do the following: - Put "C" at the top of your code, or use the command line option "C". - Run your code. - Follow the printed directions. Here are some things to watch out for: 1 The `Parse::RecDescent' grammar for `C' is fledgling. For example, it won't catch invalid type errors in your function definitions. It will just ignore those definitions altogether. It'll get better. For now be careful and examine the generated code when things don't work. 2 `Inline' doesn't currently handle output parameters (like XS does). I'm not sure whether to add them or not. They're not very Perl-like IMO. 3 While `Inline' does attempt to clean up after itself, there is currently no functionality to remove a shared object when a new version is compiled. This shouldn't be hard to do, but I want to think about it a little more. AUTHOR Brian Ingerson COPYRIGHT Copyright (c) 2000, Brian Ingerson. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html) NAME Inline::Config - Set configuration options for `Inline' SYNOPSIS BEGIN { use Inline; $Inline::Config::BUILD_PREFIX = '/tmp/Inline'; $Inline::Config::INSTALL_PREFIX = '/home/ingy/Inline'; $Inline::Config::FORCE_BUILD = 1; $Inline::Config::MAKEFILE{INC} = '-I/usr/include/other'); } or BEGIN { use Inline; Inline::Config::Build_Prefix('/tmp/Inline'); Inline::Config::Install_Prefix('/home/ingy/Inline'); Inline::Config::force_build(1); Inline::Config::makefile(INC => '-I/usr/include/other'); } or BEGIN { use Inline; my $ic = Inline::Config->new; $ic->build_prefix('/tmp/Inline'); $ic->install_prefix('/home/ingy/Inline'); $ic->force_build(1); $ic->makefile(INC => '-I/usr/include/other'); } or BEGIN { use Inline; Inline::Config->new ->build_prefix('/tmp/Inline') ->install_prefix('/home/ingy/Inline') ->force_build(1) ->makefile(INC => '-I/usr/include/other'); } DESCRIPTION `Inline::Config' is a helper module for `Inline.pm'. It sets and saves all of `Inline''s configuration options and defaults. Currently there are two categories of settings: *global* and *makefile*. Global settings are a collection of various options. See the section on "Global Settings" below. Makefile settings are passed directly into the Makefile.PL file. See the ExtUtils::MakeMaker manpage for an (long) list of available options. Methods All of the settings are stored as global variables in the `Inline::Config' namespace and are spelled with capital letters. You can set them in several manners depending on your personal style (as shown in the section on "SYNOPSIS" above). Direct: $Inline::Config::BUILD_PREFIX = '/tmp/Inline'; Function: Inline::Config::Build_Prefix('/tmp/Inline'); OO: $ic->build_prefix('/tmp/Inline'); Stacked OO: $ic->build_prefix('/tmp/Inline')->force_build(1); When using the direct method, the name must be all capitals. When using the procedural methods, any case can be used. Roll Your Own Another option is to create your own `Inline::Config.pm' module and set the base options there. Install the module higher up in the `@::INC' path. Then you don't have to set the same options in all of your scripts. Use the `PERL5LIB' environment variable, if you don't have install access to `@::INC' on your system. Global Settings AUTO_INCLUDE_C - Text to automatically prepend to your Inlined `C' code. Normally used for header files that you always want. Default: #include "EXTERN.h" #include "perl.h" #include "XSUB.h" CLEAN_AFTER_BUILD - Tells `Inline' to remove the build files after compiling (Default = 1) FORCE_BUILD - Forces the code to be recompiled, even if everything is up to date. (Default = 0) SITE_INSTALL - Says that compiled code should be installed in the Perl installation's "`site_perl'" directory. Use this to permanently install an Inlined module. (Default = 0) REPORTBUG - Puts Inline into 'REPORTBUG' mode, which does special processing when you want to report a bug. (Default = 0) NOTE: Not yet supported. TEMP_DIR - The temporary directory that "`BUILD_PREFIX'" and "`INSTALL_PREFIX'" are based off of. Setting this one, in effect, sets the other two. This directory must exist and be writable or `Inline' will croak. If you do not set this, then `Inline' will attempt to set a reasonable default for you. See the section on "Find a Place to Build and Install" in the Inline manpage for more info. BUILD_PREFIX - Tells what directory `Inline' should install the compiled code under. This is a base directory. "`make install'" actually creates a bunch of other directories under this. (Default is generated by examining your system for the best possible location. Program dies if none is found.) INSTALL_PREFIX - Tells what directory `Inline' should install the compiled code under. This is a base directory. "`make install'" actually creates a bunch of other directories under this. (Default is generated by examining your system for the best possible location. Program dies if none is found.) INSTALL_LIB - Tells what directory `Inline' should add to `@::INC' to find your compiled code. This is based off of "`INSTALL_PREFIX'", so you shouldn't need to set this directly. AUTHOR Brian Ingerson COPYRIGHT Copyright (c) 2000, Brian Ingerson. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Sun Aug 6 23:03:42 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Fwd: Request for Inline namespace (Extend Perl w/o XS) Message-ID: Hello SPUGsters, Sorry that I haven't posted the status report for the SPUG@cpan.org project yet. It's coming really soon. I've been busy creating my latest monster: "Inline.pm". I posted the following message to modules@cpan.org this morning. I wanted you guys to see it first. The module should be available from CPAN in a couple of days. If you want to play with a pre-release, let me know and I'll send you Inline-0.18.tar.gz, a fully working version. This is currently only working on UNIX. I've tested it on 3 versions of Perl on Linux. If you have access to a UNIX operating system, I'd really appreciate you testing it for me. All you need to do is run: tar xvzf Inline-0.18.tar.gz cd Inline-0.18 Perl Makefile.PL make make test If the make test works, that's all I need to know. Just send me the OS version and Perl version. I'll include your name in the documentation. There are also 7 example scripts in the examples/ directory. If you want to run them without first doing a "make install", do this: cd examples/ perl -Mblib example001.pl Thanks. And I'll have that status report soon :-) Brian PS Page Down for more on Inline.pm ---------------------- Forwarded by Brian Ingerson/Product Eng/Amlibs on 08/07/2000 11:44 AM --------------------------- B.Ingerson@epixtech.com on 08/06/2000 10:40:10 AM To: modules@perl.org cc: INGY@cpan.org Subject: Request for Inline namespace (Extend Perl w/o XS) Dear modules, I am requesting the namespace "Inline". Inline.pm is a module that allows you to code other languages (like C), directly in your Perl scripts. It compiles the code on the fly, so all you need to do is run the script. You don't need to write any XS or SWIG glue code. The module is now working reasonably well, and is ready for uploading to CPAN. Module listing: Name DSLI Description Info ------------- ---- -------------------------------------------- ----- Inline adhh Use other programming languages inside Perl INGY There is also a configuration module included in the package called Inline::Config. I posted to this group a couple of weeks ago, but got no response. I have also sent email RFC-s to Damian Conway and Larry Wall, but have not heard back yet. I would like to get the module out as soon as possible. Thanks in advance, Brian INGY@cpan.org PS I am including the README-s for both modules. NAME Inline - Use other languages inside your Perl scripts and modules. SYNOPSIS print "9 + 16 = ", add(9, 16), "\n"; print "9 - 16 = ", subtract(9, 16), "\n"; use Inline C => <<'END_OF_C_CODE'; int add(int x, int y) { return x + y; } int subtract(int x, int y) { return x - y; } END_OF_C_CODE DESCRIPTION Overview The `Inline' module allows you to put source code from other programming languages directly "Inline" in a Perl script or module. The code is automatically compiled as needed, and then loaded for immediate access from Perl. `Inline' saves you from the hassle of having to write and compile your own glue code using facilities like XS or SWIG. Simply type the code where you want it and run your Perl as normal. All the hairy details are handled for you. The compilation and installation of your code chunks all happen transparently; all you will notice is the delay of compilation. The `Inline' code only gets compiled the first time you run it (or whenever it is modified) so you only take the performance hit once. Code that is Inlined into distributed modules (like on the CPAN) will get compiled when the module is installed (during "`make test'"), so the end user will never notice the compilation time. Why Inline? Do you want to know "Why would I use other languages in Perl?" or "Why should I use `Inline' to do it?"? I'll try to answer both. Why would I use other languages in Perl? The most obvious reason is performance. For an interpreted language, Perl is extremely fast. But like my co-workers say "Anything Perl can do, C can do faster". (They never mention the development time ;-) Anyway, you may be able to remove a bottleneck in your Perl code by using another language, without having to write the entire program in that language. This keeps your overall development time down, because you're using Perl for all of the non-critical code. Another reason is to access functionality from existing API- s that use the language. Some of this code may only be available in binary form. But by creating small subroutines in the native language, you can "glue" existing libraries to your Perl. As a user of the CPAN, you know that code reuse is a good thing. So why throw away those Fortran libraries just yet? Maybe the best reason is "Because you want to!". Diversity keeps the world interesting. TMTOWTDI! Why should I use `Inline' to do it? There are already two major facilities for extending Perl with C. They are XS and SWIG. Now if you're familiar with either, then I may be preaching to the choir. Well, here goes: Greetings congregation. This morning I want to open your eyes to the virtues of Inline and the perils of XS. Let us compare the two. --- Inline - You can use it from a regular script. XS - Requires you to create a module and an XS file and a makefile, in addition to your regular script. Actually, the program `h2xs' does a nice job of getting you started, but that's still a lot of junk to maintain. --- XS - You need rebuild every time you want to test a small change. Inline - Perl programmers cannot be bothered with silly things like compiling. "Tweak, Run, Tweak, Run" is our way of life. `Inline' does all the dirty work for you. --- XS - There is a difficult learning curve involved with setting up and using the XS environment. (At least for a simple Perl preacher like me.) Read the following perldocs and man pages if you don't believe me: * perlxs * perlxstut * perlapi * perlguts * perlmod * h2xs * xsubpp * ExtUtils::MakeMaker Inline - Fuh-GED-ah-bow-dit! --- XS - Only implements C and C++. Inline - Plans to implement several languages. For now, `Inline' only implements C and it uses XS to do it. (Dirty little secret) But this is the right thing to do. See the section on "SUPPORTED LANGUAGES" below. I too believe in code reuse, and XS is good code. (as long as you don't actually need to write it yourself :^) --- Amen. In actuality, XS is quite powerful for all of its madness. `Inline' only generates a minimal subset of XS mappings. (See the section on "C-Perl Bindings" below) But that should be enough to do what you need to. If not, give XS a try. Also, `h2xs' attempts to map header files to glue code which can be very handy when it works. `Inline' has no such facility. I also think that its important to understand what's going on under the hood. It gives you the power to do more complicated things. So read all of those perldocs when you get a chance. In the meantime, just "`use Inline'"! How it works `Inline' performs the following steps: 1) Receive the Source Code `Inline' gets the source code from your script or module with a statement like the following: use Inline C => Source-Code; where `Source-Code' is a string (most easily represented by using the "Here Document" quoting style; see the section on "SYNOPSIS" above), a file name, an open file handle, or a reference to a subroutine (that will return source code). Since `Inline' is coded in a "`use'" statement, everything is done during Perl's compile time. If anything needs to be done that will affect the `Source- Code' string, it needs to be done in a `BEGIN' block that is *before* the "`use Inline ...'" statement. This might include setting interpolated variables, or setting options in the `Inline::Config' module. 2) Check if the Source Code has been Compiled `Inline' only needs to compile the source code if it has not yet been compiled. It accomplishes this seemingly magical task in an extremely simple and straightforward manner. It runs the source text through the `Digest::MD5' module to produce a 128-bit "fingerprint" which is virtually unique. The fingerprint (in hex) is combined with the current package name (and the script name, if the package is "`main'") to form a unique name for the executable module (shared object). If an executable with that name already exists, then proceed to step 8. (No compilation is necessary) 3) Find a Place to Build and Install At this point we know we need to compile the source code. The first thing to figure out is where to create the great big mess associated with compilation, and the second thing is where to put the module when its done. By default `Inline' will try to build under the first one of the following places that exists and is writable: - ~/.blib_I/ - ~/blib_I/ - $bin/blib_I/ - ./blib_I/ - /tmp/blib_I/ - $bin/blib_I/ # will mkdir if -w $bin/ - ./blib_I/ # will mkdir if -w ./ (where `$bin' is the script bin directory returned by `FindBin.pm') It will then try to install the executable under the same directory or in `Config{installsitearch}' directory if `$Inline::Config::SITE_INSTALL=1'. Optionally you can configure `Inline' to build and install exactly where you want. See the Inline::Config manpage. 4) Parse the Source for Semantic Cues `Inline' uses the module `Parse::RecDescent' to parse through your chunks of source code and look for things that it can create run-time bindings to. For instance, in `C' it looks for all of the function definitions and breaks them down into names and data types. These elements are used to correctly bind the `C' function to a `Perl' subroutine. 5) Create the Build Environment Now `Inline' can take all of the gathered information and create an environment to build your source code into an executable. Without going into all the details, it just creates the appropriate directories, creates the appropriate source files including an XS file and a `Makefile.PL'. 6) Compile the Code and Install the Executable The planets are in alignment. Now for the easy part. `Inline' just does what you would do to install a module. "`perl Makefile.PL && make && make test && make install'". If something goes awry, `Inline' will croak with a message indicating where to look for more info. 7) Tidy Up By default, `Inline' will remove all of the mess created by the build process, assuming that everything worked. If the compile fails, `Inline' will leave everything intact, so that you can debug your errors. Setting `$Inline::Config::CLEAN_AFTER_BUILD=0' will also stop `Inline' from cleaning up. 8) DynaLoad the Executable `Inline' uses the `DynaLoader::bootstrap' method to pull your external module into `Perl' space. Now you can call all of your external functions like Perl subroutines. Wheeee! C-Perl Bindings This section describes how the `Perl' variables get mapped to `C' variables and back again. First, you need to know how `Perl' passes arguments back and forth to subroutines. Basically it uses a stack (also known as the Stack). When a sub is called, all of the parenthesized arguments get expanded into a list of scalars and pushed onto the Stack. The subroutine then pops all of its parameters off of the Stack. When the sub is done, it pushes all of its return values back onto the Stack. The Stack is an array of scalars known internally as `SV''s. The Stack is actually an array of pointers to SV or `SV*'; therefore every element of the Stack is natively a `SV*'. For *FMTYEWTK* about this, read the perlguts manpage. So back to variable mapping. XS uses a thing known as "typemaps" to turn each `SV*' into a `C' type and back again. This is done through various XS macro calls, casts and the Perl API. See the perlapi manpage. XS allows you to define your own typemaps as well for fancier non-standard types such as `typedef'-ed structs. `Inline' uses a boiled down version of this approach. It parses your code for simple types and generates the XS code to map them. The currently supported types are: - int - long - double - char* - void - SV* If you need to deal with anything fancier, just use the generic `SV*' type in the function definition. Then inside your code, do the mapping yourself. A return type of `void' has a special meaning to `Inline'. It means that you plan to push the values back onto the Stack yourself. This is what you need to do to return a list of values. If you really don't want to return anything (the traditional meaning of `void') then simply don't push anything back. If ellipsis or `...' is used at the end of an argument list, it means that any number of `SV*'s may follow. Again you will need to pop the values off of the `Stack' yourself. See the section on "EXAMPLES IN C" below. Configuration `Inline' trys to do the right thing as often as possible. But sometimes you may need to override the default actions. This is where `Inline::Config' comes to the rescue. `Inline::Config' gives you a more fine-grained control over the entire process. The other side of that coin is "you need to know what you are doing". An important point to remember is that the config settings must be done *before* the "`use Inline'" statement. Since a "`use'" happens at (`Perl''s) compile time, you need to something like this: BEGIN { use Inline; $Inline::Config::OPTION_NUMBER_9 = 'Yes'; # or Inline::Config->new->option_number_9('Yes'); # depending on your orientation :-) } use Inline C => "C code goes here..."; See the Inline::Config manpage for more info. Writing Modules with `Inline' If you are writing a module to distribute on the CPAN, (say `Foo.pm') and you want it to include Inlined code, then you should add the following line to the top of your `test.pl' file before the "`use Foo;'" line: BEGIN {use Inline SITE_INSTALL} When the installer does a "`make test'", the `Inline' module will compile `Foo''s Inlined code in the "`./blib_I/'" directory. Then it will attempt to install the executable code into Perl's `$Config{installsitearch}' directory (which is where an installed module should go). If it does not have permission to install there, then "`make test'" will fail with an appropriate error messsage. Fancy Tricks The `Inline' module opens up all sorts of possibilities regarding what you can do with `Perl' and `C'. Since everything happens at run time (depending on how you think of it) you can generate `C' code on the fly and effectively '`eval'' it. (How this might be useful is left as an exercise to the reader :-) Here is how you would code such a beast: BEGIN {$c_code = &c_code_generator()} use Inline C => $c_code; # will die if code doesn't compile myfunc1(); or $c_code = &c_code_generator(); eval {use Inline C => $c_code}; if ($@) { handle_error($@); # trap error if code doesn't compile } else { myfunc1(); } SUPPORTED LANGUAGES Currently, "`C'" is the only supported language. This is obviously the most important language to support. That is because `Perl' itself is written in `C'. By giving a your `Perl' scripts access to `C', you in effect give them access to the entire glorious internals of `Perl'. (Caveat scriptor :-) `C' is also the easiest language to implement because the tools needed to do so, (like XS and `ExtUtils::MakeMaker') have already been written and are very flexible and reliable. `Inline' makes use of these pre-existing tools. But there is definitely no reason why `Inline' must or should stop with `C'. As long as sensible bindings can be defined between Perl and another language, that language could be a candidate for the `Inline' module. Current languages I am considering adding support for include: - C++ - Fortran - Pascal - Python Note: Since many `C' compilers allow the use of assembly code within C, you may want to consider Assembly Language as supported. Ready to start scripting out new device drivers? SUPPORTED PLATFORMS This module should work anywhere that CPAN extension modules (those that use XS) can be installed, using the typical install format of: perl Makefile.PL make make test make install I have tested on the following platforms: linux 5.005.02 5.00503 5.6 EXAMPLES IN C Here is a series of examples. Each one is a complete program that you can try running yourself. In fact, each example is stored in the `examples/' subdirectory of the `Inline.pm' distribution. They will start out simple and build in complexity. Example #1 - Greetings This example will take one string argument (a name) and print a greeting. The function is called with a string and with a number. In the second case the number is forced to a string. Notice that you do not need to `#include . The `perl.h' header file which gets included by default, automatically loads the standard C header files for you. greet('Ingy'); greet(42); use Inline C => <<'END_OF_C_CODE'; void greet(char* name) { printf("Hello %s!\n", name); } END_OF_C_CODE __END__ Example #2 - and Salutations This is similar to the last example except that the name is passed in as a `SV*' (pointer to Scalar Value) rather than a string (`char*'). That means we need to convert the `SV' to a string ourselves. This is accomplished using the `SvPVX' function which is part of the `Perl' internal API. See the perlapi manpage for more info. One problem is that `SvPVX' doesn't automatically convert strings to numbers, so we get a little surprise when we try to greet `42'. greet('Ingy'); greet(42); use Inline C => <<'END_OF_C_CODE'; void greet(SV* sv_name) { printf("Hello %s!\n", SvPVX(sv_name)); } END_OF_C_CODE __END__ Example #3 - Fixing the problem We can fix the problem in Example #2 by using the `SvPV' function instead. This function will stringify the `SV' if it does not contain a string. `SvPV' returns the length of the string as it's second parameter. Since we don't care about the length, we can just put `PL_na' there, which is a special variable designed for that purpose. greet('Ingy'); greet(42); use Inline C => <<'END_OF_C_CODE'; void greet(SV* sv_name) { printf("Hello %s!\n", SvPV(sv_name, PL_na)); } END_OF_C_CODE __END__ Example #4 - Return to Sender In this example we will return the greeting to the caller, rather than printing it. This would seem mighty easy, except for the fact that we need to allocate a small buffer to create the greeting. I would urge you to stay away from `malloc'ing your own buffer. Just use Perl's built in memory management. In other words, just create a new Perl string scalar. The function `newSVpv' does just that. And `newSVpvf' includes `sprintf' functionality. The other problem is getting rid of this new scalar. How will the ref count get decremented after we pass the scalar back? Perl also provides a function called `sv_2mortal'. Mortal variables die when the context goes out of scope. In other words, Perl will wait until the new scalar gets passed back and then decrement the ref count for you, thereby making it eligible for garbage collection. See the perlguts manpage. In this example the `sv_2mortal' call gets done under the hood by XS, because we declared the return type to be `SV*'. Later, in Example #6, when we manage the return stack by hand, we'll need to call it ourselves. To view the generated XS code, run the command "`perl - MInline=INFO,FORCE,NOCLEAN example004.pl'". This will leave the build directory intact at tell you where to find it. If all that sounds difficult, its not. Take a look: print greet('Ingy'); print greet(42); use Inline C => <<'END_OF_C_CODE'; SV* greet(SV* sv_name) { return (newSVpvf("Hello %s!\n", SvPV(sv_name, PL_na))); } END_OF_C_CODE __END__ Example #5 - The Welcome Wagon Let's modify the greet function to handle a group of people, or more exactly, a list of names. We use the `C' ellipsis syntax: "`...'", since the list can be of any size. Since there are no types or names associated with each argument, we can't expect XS to handle the conversions for us. We'll need to pop them off the Stack ourselves. Luckily there are two functions (macros) that make this a very easy task. First, we need to begin our function with a "`dXSARGS;'" statement. This defines a few variables that we need to access the Stack. The variable we need in this example is "`items'", which is an integer containing the number of arguments passed to us. NOTE: It is important to *only* use "`dXSARGS;'" when there is an ellipsis (`...') in the argument list, *or* the function has a return type of void (See Example #6). Second, we use the `ST(x)' function to access each argument where "0 <= x < items". Observe: greet(qw(Brian Ingerson Ingy Me Myself I)); use Inline C => <<'END_OF_C_CODE'; void greet(SV* name1, ...) { dXSARGS; int i; for (i = 0; i < items; i++) printf("Hello %s!\n", SvPV(ST(i), PL_na)); } END_OF_C_CODE __END__ NOTE: When using a variable length argument list, you have to specify at least one argument before the ellipsis. (On my compiler, anyway.) When XS does it's argument checking, it will complain if you pass in less than the number of *defined* arguments. Therefore, there is currently no way to pass an empty list when a variable length list is expected. Example #6 - Stop Repeating Yourself In this contrived example, we'll pass in the name to greet, and the number of times to do it. The `greet();' function will return that number of greetings. The purpose is to demonstrate how to pass back a list of values. The first thing to do is set the function return type to void. This has a special meaning to `Inline' (and XS). It means that you're going to handle the return stack yourself. Now we first call "`dXSARGS'" again. This time, we are interested in the variables `sp' and `mark', which `dXSARGS' will create. `sp' is the stack pointer and `mark' is the beginning of the stack. Upon entry, sp will not be pointing at the beginning, so we use "`sp = mark'" to reset it. The `XPUSHs' function does a lot for us. It pushes an `SV' onto the Stack, and updates the value of `sp'. It also will extend the size of the Stack, if it needs to, thus avoiding segfaults. Finally, `PUTBACK' stashes the new value of `sp' back to where it belongs. Don't forget it or your function won't work right. You'll get a return list equal in size to your input list, which in this case is 2. print greet('Ingy', 42); use Inline C => <<'END_OF_C_CODE'; void greet(char* name, int number) { dXSARGS; int i; sp = mark; for (i = 0; i < number; i++) XPUSHs(sv_2mortal(newSVpvf("Hello %s!\n", name))); PUTBACK; } END_OF_C_CODE __END__ Also notice that we used the `sv_2mortal' call that was discussed earlier. This will make sure that your newborn scalars get DESTROYed at the appointed time. Example #7 - The Ugly The world is not made of scalars alone, although they are definitely the easiest creatures to deal with, when doing this kind of stuff. Sometimes we need to deal with arrays, hashes, and code references, among other things. Since Perl subroutine calls only pass scalars as arguments, we'll need to use the argument type `SV*' and pass references to more complex types. Lets look a program that dumps the key/value pairs of a hash: use Inline C => <<'END_OF_C_CODE'; void dump_hash(SV* hash_ref) { HV* hash; HE* hash_entry; int num_keys, i; SV* sv_key; SV* sv_val; if (! SvROK(hash_ref)) croak("hash_ref is not a reference"); hash = (HV*)SvRV(hash_ref); num_keys = hv_iterinit(hash); for (i = 0; i < num_keys; i++) { hash_entry = hv_iternext(hash); sv_key = hv_iterkeysv(hash_entry); sv_val = hv_iterval(hash, hash_entry); printf("%s => %s\n", SvPV(sv_key, PL_na), SvPV(sv_val, PL_na)); } return; } END_OF_C_CODE my %hash = ( Author => "Brian Ingerson", Nickname => "INGY", Module => "Inline.pm", Version => "0.18", Example => 7, ); dump_hash(\%hash); __END__ To figure out this one, just curl up with the perlapi manpage for a couple hours. Actually, its fairly straight forward once you are familiar with the calls. Note the `croak' function call. This is the proper way to die from your `C' extensions. BUGS AND DEFICIENCIES This is an early release of a fairly ambitious module. It is definitely ALPHA code. The bugs should be bountiful! When reporting a bug, please do the following: - Put "C" at the top of your code, or use the command line option "C". - Run your code. - Follow the printed directions. Here are some things to watch out for: 1 The `Parse::RecDescent' grammar for `C' is fledgling. For example, it won't catch invalid type errors in your function definitions. It will just ignore those definitions altogether. It'll get better. For now be careful and examine the generated code when things don't work. 2 `Inline' doesn't currently handle output parameters (like XS does). I'm not sure whether to add them or not. They're not very Perl-like IMO. 3 While `Inline' does attempt to clean up after itself, there is currently no functionality to remove a shared object when a new version is compiled. This shouldn't be hard to do, but I want to think about it a little more. AUTHOR Brian Ingerson COPYRIGHT Copyright (c) 2000, Brian Ingerson. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html) NAME Inline::Config - Set configuration options for `Inline' SYNOPSIS BEGIN { use Inline; $Inline::Config::BUILD_PREFIX = '/tmp/Inline'; $Inline::Config::INSTALL_PREFIX = '/home/ingy/Inline'; $Inline::Config::FORCE_BUILD = 1; $Inline::Config::MAKEFILE{INC} = '-I/usr/include/other'); } or BEGIN { use Inline; Inline::Config::Build_Prefix('/tmp/Inline'); Inline::Config::Install_Prefix('/home/ingy/Inline'); Inline::Config::force_build(1); Inline::Config::makefile(INC => '-I/usr/include/other'); } or BEGIN { use Inline; my $ic = Inline::Config->new; $ic->build_prefix('/tmp/Inline'); $ic->install_prefix('/home/ingy/Inline'); $ic->force_build(1); $ic->makefile(INC => '-I/usr/include/other'); } or BEGIN { use Inline; Inline::Config->new ->build_prefix('/tmp/Inline') ->install_prefix('/home/ingy/Inline') ->force_build(1) ->makefile(INC => '-I/usr/include/other'); } DESCRIPTION `Inline::Config' is a helper module for `Inline.pm'. It sets and saves all of `Inline''s configuration options and defaults. Currently there are two categories of settings: *global* and *makefile*. Global settings are a collection of various options. See the section on "Global Settings" below. Makefile settings are passed directly into the Makefile.PL file. See the ExtUtils::MakeMaker manpage for an (long) list of available options. Methods All of the settings are stored as global variables in the `Inline::Config' namespace and are spelled with capital letters. You can set them in several manners depending on your personal style (as shown in the section on "SYNOPSIS" above). Direct: $Inline::Config::BUILD_PREFIX = '/tmp/Inline'; Function: Inline::Config::Build_Prefix('/tmp/Inline'); OO: $ic->build_prefix('/tmp/Inline'); Stacked OO: $ic->build_prefix('/tmp/Inline')->force_build(1); When using the direct method, the name must be all capitals. When using the procedural methods, any case can be used. Roll Your Own Another option is to create your own `Inline::Config.pm' module and set the base options there. Install the module higher up in the `@::INC' path. Then you don't have to set the same options in all of your scripts. Use the `PERL5LIB' environment variable, if you don't have install access to `@::INC' on your system. Global Settings AUTO_INCLUDE_C - Text to automatically prepend to your Inlined `C' code. Normally used for header files that you always want. Default: #include "EXTERN.h" #include "perl.h" #include "XSUB.h" CLEAN_AFTER_BUILD - Tells `Inline' to remove the build files after compiling (Default = 1) FORCE_BUILD - Forces the code to be recompiled, even if everything is up to date. (Default = 0) SITE_INSTALL - Says that compiled code should be installed in the Perl installation's "`site_perl'" directory. Use this to permanently install an Inlined module. (Default = 0) REPORTBUG - Puts Inline into 'REPORTBUG' mode, which does special processing when you want to report a bug. (Default = 0) NOTE: Not yet supported. TEMP_DIR - The temporary directory that "`BUILD_PREFIX'" and "`INSTALL_PREFIX'" are based off of. Setting this one, in effect, sets the other two. This directory must exist and be writable or `Inline' will croak. If you do not set this, then `Inline' will attempt to set a reasonable default for you. See the section on "Find a Place to Build and Install" in the Inline manpage for more info. BUILD_PREFIX - Tells what directory `Inline' should install the compiled code under. This is a base directory. "`make install'" actually creates a bunch of other directories under this. (Default is generated by examining your system for the best possible location. Program dies if none is found.) INSTALL_PREFIX - Tells what directory `Inline' should install the compiled code under. This is a base directory. "`make install'" actually creates a bunch of other directories under this. (Default is generated by examining your system for the best possible location. Program dies if none is found.) INSTALL_LIB - Tells what directory `Inline' should add to `@::INC' to find your compiled code. This is based off of "`INSTALL_PREFIX'", so you shouldn't need to set this directly. AUTHOR Brian Ingerson COPYRIGHT Copyright (c) 2000, Brian Ingerson. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From ajalis at cobaltgroup.com Mon Aug 7 23:57:33 2000 From: ajalis at cobaltgroup.com (Asim Jalis) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Seattle Extreme Programming Meeting On Thursday Message-ID: <20000807215733.A29325@krypton.cobaltgroup.com> The next meeting of the Seattle Area XP Group is on August 10, Thursday. Lance Young (from Asix) and Bryan Murray (from HP) will talk about using JUnit, XP's unit-testing framework. While JUnit is the Java version of the unit-testing framework, similar versions exist for other languages, e.g. Test::Unit for Perl (available on CPAN and sourceforge). The underlying ideas are the same and the testing strategies apply equally well to all languages, including Perl. We will meet in Lante's offices at 3180 139th SE, near the Eastgate P&R in Bellevue. There will be some pizza and refreshments from 6.30 to 7pm, provided by Lante. The presentations will start at 7pm. Please read on for more details. Detailed directions are at the end of the message. XP MEETING TOPIC "Introduction to Junit and Unit Testing" Presentations by Lance Young (Asix) and Bryan Murray (HP). DATE Thursday, August 10 2000, 6.30 pm to 9.30 pm. LOCATION Suite 100, Lante's Main Conference Room 3180 139th Avenue SE Bellevue, WA 98005 425.564.8800 (main desk) [See detailed directions below] SPEAKERS AND PRESENTATION OUTLINES * Lance Young, Asix. > An Introduction to JUnit > 1) History > 2) Class Structure > 3) How is it used Code Example > 4) Test Class Organization > 5) Experiences with JUnit on an XP project * Bryan Murray, HP. > How HP uses JUnit and unit tests. > Where should the unit tests live? > How do you know when you have enough unit tests? > A short demo about how unit tests can drive the production code. SCHEDULE 6.30 pm - 7.00 pm : Pizza + Networking. 7.00 pm - 9.30 pm : Presentations and Q&A. HOW TO GET THERE I have refactored the directions into two parts. First, how to get to 139th Ave SE (which depends on which interstate you use) and then how to get to 3180 which should be same for all cases: STEP 1: How to get to 139Th Ave SE On I-405 South (going towards I-90) from Bellevue, Redmond. * Take exit 10 for Coal Creek Parkway and turn left at the light as you get off the ramp onto Coal Creek Parkway. * Turn left at Factoria Blvd (128th Av SE). * You will cross I-90 by going under it. * Turn right onto Eastgate Way SE, immediately after crossing I-90. * Take a left at the light onto 139th Ave SE. On I-405 North (going towards I-90) from Renton. * Take exit 10 for Coal Creek Parkway and turn right at the light as you get off the ramp onto Coal Creek Parkway. * Turn left at Factoria Blvd (128th Av SE). * You will cross I-90 by going under it. * Turn right onto Eastgate Way SE, immediately after crossing I-90. * Take a left at the light onto 139th Ave SE. On I-90 West (going towards I-405) from Bellevue, Issaquah, Redmond. * Take the 156th Street exit (exit 11). * Take a left at the light onto Eastgate Way. * Keep driving straight on Eastgate Way past the Eastgate P&R. * Take a right at light onto 139th Ave SE. On I-90 East (going towards I-405) from Seattle, Mercer Island. * Take the Richards Road exit (exit 10). * Take a left at the light off the exit ramp onto Richards Rd. * You will drive under I-90 crossing it. * Take the first right onto SE Eastgate Way. * Take a left at the light onto 139th Ave SE STEP 2: How to find 3180 on 139th Ave SE * 3180 will be the first building on your right immediately after SE 32nd St. The top of the building says "Onyx". There is a sign on the side which says Sunset North. * Drive into the parking entrance into the building on your right. * Drive up the parking garage to the top following the signs for visitor parking. * Park anywhere (parking is free). * The building entrance should be straight ahead and there will be signs pointing to the XP meeting. REFERENCES For more details on XP and Unit Testing see these books and URLs: * Extreme Programming Explained, by Kent Beck. * Refactoring, by Martin Fowler. * XP list archives - http://www.egroups.com/group/extremeprogramming * Wiki Wiki - http://c2.com/cgi-bin/wiki * A Gentle Intro - http://www.extremeprogramming.org * Another XP site - http://xprogramming.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From daryn at marinated.org Wed Aug 9 20:15:35 2000 From: daryn at marinated.org (Daryn Nakhuda) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question Message-ID: Hi, I'm trying to use IO::Socket to open a socket connection (duh) and communicate w/ a server. A typical session would look like: ME: hello SERVER: hello the code looks like this: $sock = IO::Socket::INET->new( PeerAddr => "thehost", PeerPort => theportnumber, Proto => "tcp") or die "Error connecting: $@\n"; $sock->autoflush(1); print $sock "Hello\n"; print <$sock>; close ($sock); This sends the first "Hello" okay, but hangs waiting for the response. I'm assuming it's a buffering problem, but autoflush(1) didn't seem to help. Any suggestions for making this work? thanks. Daryn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From daryn at marinated.org Wed Aug 9 20:15:35 2000 From: daryn at marinated.org (Daryn Nakhuda) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question Message-ID: Hi, I'm trying to use IO::Socket to open a socket connection (duh) and communicate w/ a server. A typical session would look like: ME: hello SERVER: hello the code looks like this: $sock = IO::Socket::INET->new( PeerAddr => "thehost", PeerPort => theportnumber, Proto => "tcp") or die "Error connecting: $@\n"; $sock->autoflush(1); print $sock "Hello\n"; print <$sock>; close ($sock); This sends the first "Hello" okay, but hangs waiting for the response. I'm assuming it's a buffering problem, but autoflush(1) didn't seem to help. Any suggestions for making this work? thanks. Daryn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From akcrum at hotmail.com Wed Aug 9 21:07:24 2000 From: akcrum at hotmail.com (Andrew Crum) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question Message-ID: My working socket solution without using IO:: is shown below. Maybe something in it can be borrowed from... - Andrew Crum ================= #! /usr/bin/perl -w use strict; use FileHandle; use Socket; my $rhost = "111.222.333.444"; my $rport = "555"; my $request = "xxx"; my $reply_line; # connect print "connect\n", " socket: $rhost:$rport\n"; socket(SOCKET, PF_INET, SOCK_STREAM, 6); connect(SOCKET, pack('Sna4x8', AF_INET, $rport, (gethostbyname($rhost))[4])) or die "couldn't connect to $rhost:$rport: $!\n"; SOCKET->autoflush(); #SOCKET->errmode("return"); #possibly needed to actually wait for a response(?) # send print "request:\n", " $request\n"; print SOCKET $request . "\n\n"; # receive print "reply lines:\n"; while ( ! (($reply_line = ) =~ /^\W*$/) ) { print " ", $reply_line; } # close close SOCKET; print "done\n"; =========================== ----Original Message Follows---- From: Daryn Nakhuda To: spug-list@pm.org Subject: SPUG: IO::Socket Question Date: Wed, 9 Aug 2000 18:15:35 -0700 (PDT) Hi, I'm trying to use IO::Socket to open a socket connection (duh) and communicate w/ a server. A typical session would look like: ME: hello SERVER: hello the code looks like this: $sock = IO::Socket::INET->new( PeerAddr => "thehost", PeerPort => theportnumber, Proto => "tcp") or die "Error connecting: $@\n"; $sock->autoflush(1); print $sock "Hello\n"; print <$sock>; close ($sock); This sends the first "Hello" okay, but hangs waiting for the response. I'm assuming it's a buffering problem, but autoflush(1) didn't seem to help. Any suggestions for making this work? thanks. Daryn ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From akcrum at hotmail.com Wed Aug 9 21:07:24 2000 From: akcrum at hotmail.com (Andrew Crum) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question Message-ID: My working socket solution without using IO:: is shown below. Maybe something in it can be borrowed from... - Andrew Crum ================= #! /usr/bin/perl -w use strict; use FileHandle; use Socket; my $rhost = "111.222.333.444"; my $rport = "555"; my $request = "xxx"; my $reply_line; # connect print "connect\n", " socket: $rhost:$rport\n"; socket(SOCKET, PF_INET, SOCK_STREAM, 6); connect(SOCKET, pack('Sna4x8', AF_INET, $rport, (gethostbyname($rhost))[4])) or die "couldn't connect to $rhost:$rport: $!\n"; SOCKET->autoflush(); #SOCKET->errmode("return"); #possibly needed to actually wait for a response(?) # send print "request:\n", " $request\n"; print SOCKET $request . "\n\n"; # receive print "reply lines:\n"; while ( ! (($reply_line = ) =~ /^\W*$/) ) { print " ", $reply_line; } # close close SOCKET; print "done\n"; =========================== ----Original Message Follows---- From: Daryn Nakhuda To: spug-list@pm.org Subject: SPUG: IO::Socket Question Date: Wed, 9 Aug 2000 18:15:35 -0700 (PDT) Hi, I'm trying to use IO::Socket to open a socket connection (duh) and communicate w/ a server. A typical session would look like: ME: hello SERVER: hello the code looks like this: $sock = IO::Socket::INET->new( PeerAddr => "thehost", PeerPort => theportnumber, Proto => "tcp") or die "Error connecting: $@\n"; $sock->autoflush(1); print $sock "Hello\n"; print <$sock>; close ($sock); This sends the first "Hello" okay, but hangs waiting for the response. I'm assuming it's a buffering problem, but autoflush(1) didn't seem to help. Any suggestions for making this work? thanks. Daryn ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From ced at carios2.ca.boeing.com Thu Aug 10 00:59:19 2000 From: ced at carios2.ca.boeing.com (ced@carios2.ca.boeing.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question Message-ID: <200008100559.WAA27533@carios2.ca.boeing.com> > $sock = IO::Socket::INET->new( > PeerAddr => "thehost", > PeerPort => theportnumber, > Proto => "tcp") > or die "Error connecting: $@\n"; > $sock->autoflush(1); > print $sock "Hello\n"; > print <$sock>; > close ($sock); > This sends the first "Hello" okay, but hangs waiting for the response. I'm > assuming it's a buffering problem, but autoflush(1) didn't seem to help. > Any suggestions for making this work? The print <$sock> establishes a list context so the socket read may be blocking trying to read multiple lines. Not sure if this is relevant in your case but would be a problem if this were the SMTP for instance. A fix might be: print scalar <$sock>; rgds, -- Charles DeRykus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From ced at carios2.ca.boeing.com Thu Aug 10 00:59:19 2000 From: ced at carios2.ca.boeing.com (ced@carios2.ca.boeing.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question Message-ID: <200008100559.WAA27533@carios2.ca.boeing.com> > $sock = IO::Socket::INET->new( > PeerAddr => "thehost", > PeerPort => theportnumber, > Proto => "tcp") > or die "Error connecting: $@\n"; > $sock->autoflush(1); > print $sock "Hello\n"; > print <$sock>; > close ($sock); > This sends the first "Hello" okay, but hangs waiting for the response. I'm > assuming it's a buffering problem, but autoflush(1) didn't seem to help. > Any suggestions for making this work? The print <$sock> establishes a list context so the socket read may be blocking trying to read multiple lines. Not sure if this is relevant in your case but would be a problem if this were the SMTP for instance. A fix might be: print scalar <$sock>; rgds, -- Charles DeRykus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Thu Aug 10 12:33:12 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Inline.pm to ship Message-ID: SPUG, I just wanted to thank those who helped test Inline.pm. We found/fixed problems resulting from a few nasty inconsistencies in Perl on various platforms. Here is a Support list that will be in the doc: 1. V# OS OS V# Perl V# Human Email 0.22 Linux 2.2.13 5.00503 Brian Ingerson ingy@cpan.org 0.22 Linux 2.2.13 5.6 Brian Ingerson ingy@cpan.org 0.20 FreeBSD 3.4 5.00503 Timothy A Gregory tgregory@tarjema.com 0.20 FreeBSD 4.0 5.00503 Timothy A Gregory tgregory@tarjema.com 0.20 FreeBSD 4.0 5.6 Timothy A Gregory tgregory@tarjema.com 0.20 Linux 2.0.36 5.00503 Prakasa Bellam pbellam@cobaltgroup.com 0.20 HPUX B.10.20 5.00503 Jamie Shaffer jshaffer@chronology.com 0.20 SunOS 5.6 5.6.0 Jamie Shaffer jshaffer@chronology.com 0.20 SunOS 5.5.1 5.6.0 Jamie Shaffer jshaffer@chronology.com 0.22 OpenBSD 2.7 5.6.0 Jeremy Devenport jeremy@weezel.com 0.22 FreeBSD 3.1 5.00503 Doug Beaver dougb@scalar.org This list is in version 0.22, which will go to CPAN as soon as it is approved. If I missed anyone, or anyone wishes not to be listed, or general errata, please notify me. Brian PS If you want v0.22 before CPAN, just ask. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From daryn at marinated.org Thu Aug 10 12:42:53 2000 From: daryn at marinated.org (Daryn Nakhuda) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question In-Reply-To: <200008100559.WAA27533@carios2.ca.boeing.com> Message-ID: I think you (and everyone else) are on the right track. However, it still doesn't work :) If I open up the socket to a web server and request a page (so I'm getting a decent amount of data back) it works fine. however, with the server I'm connecting to, where all it replies with is one work, it hangs on the line referencing <$sock> I've tried: print <$sock>; ----- print $result = <$sock>; ----- print scalar <$sock>; all with that same result. Any other suggestions? thanks again, Daryn On Wed, 9 Aug 2000 ced@carios2.ca.boeing.com wrote: > > $sock = IO::Socket::INET->new( > > PeerAddr => "thehost", > > PeerPort => theportnumber, > > Proto => "tcp") > > or die "Error connecting: $@\n"; > > > $sock->autoflush(1); > > print $sock "Hello\n"; > > print <$sock>; > > close ($sock); > > > This sends the first "Hello" okay, but hangs waiting for the response. I'm > > assuming it's a buffering problem, but autoflush(1) didn't seem to help. > > Any suggestions for making this work? > > The print <$sock> establishes a list context so the socket > read may be blocking trying to read multiple lines. > Not sure if this is relevant in your case but would be > a problem if this were the SMTP for instance. > A fix might be: > > print scalar <$sock>; > > > rgds, > -- > Charles DeRykus > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From mperry at winstar.com Thu Aug 10 13:05:04 2000 From: mperry at winstar.com (Michael Perry) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: New to the area In-Reply-To: <200008100559.WAA27533@carios2.ca.boeing.com> Message-ID: <00d001c002f7$0c998820$2b4b010a@wa2wsk032517> Hi everyone, I just arrived in Seattle last week and I found this Perl group. I came from the east coast and my area had no such thing. I'm gonna try to make it to the next meeting. So see you all there. --Mike - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Thu Aug 10 14:04:37 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Re: New to the area References: <00d001c002f7$0c998820$2b4b010a@wa2wsk032517> Message-ID: <01d001c002fd$d462cc80$28e842cf@iwebx1> What part of the east coast? I just moved here from South Jersey last Summer ...... whole different world out here. John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== ----- Original Message ----- From: "Michael Perry" To: Sent: Thursday, August 10, 2000 11:05 AM Subject: SPUG: New to the area > Hi everyone, > I just arrived in Seattle last week and I found this Perl group. I came from > the east coast and my area had no such thing. I'm gonna try to make it to > the next meeting. So see you all there. > > --Mike > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Thu Aug 10 14:20:19 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: New to the area Message-ID: Welcome Mike, Next Tuesday's meeting should be an exciting one. We are kicking off the SPUG@cpan.org collaborative OSS development project, where we will work as a group on producing CPAN modules. Be sure to come, so that you can be a part of this. See ya, Brian INGY@cpan.org "Michael Perry" @pm.org on 08/10/2000 11:05:04 AM Please respond to Sent by: owner-spug-list@pm.org To: cc: Subject: SPUG: New to the area Hi everyone, I just arrived in Seattle last week and I found this Perl group. I came from the east coast and my area had no such thing. I'm gonna try to make it to the next meeting. So see you all there. --Mike - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From ced at carios2.ca.boeing.com Thu Aug 10 14:24:29 2000 From: ced at carios2.ca.boeing.com (ced@carios2.ca.boeing.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question Message-ID: <200008101924.MAA28144@carios2.ca.boeing.com> > I think you (and everyone else) are on the right track. However, it still > doesn't work :) > If I open up the socket to a web server and request a page (so I'm > getting a decent amount of data back) it works fine. > however, with the server I'm connecting to, where all it replies with is > one work, it hangs on the line referencing <$sock> If you're just getting a one-word response with no newline, then, <$sock> will still hang because it's line oriented and will wait for a newline. Here's a section from IO::Select that provides another possible strategy: ... If the remote server sends data a byte at time, and you need that data immediately without waiting for a newline (which might not happen), you may wish to replace the while loop in the parent with the following: my $byte; while (sysread($handle, $byte, 1) == 1) { print STDOUT $byte; } Making a system call for each byte you want to read is not very efficient (to put it mildly) but is the simplest to explain and works reasonably well. Rgds, -- Charles DeRykus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Thu Aug 10 15:33:32 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas Message-ID: SPUG, OK. Well its time for me to start planning for next Tuesday's meeting. I'm sending out a series of posts, starting with this one. A lot of people have proposed ideas for projects. I'll give a summary in another post. For now I want to present two of my own ideas. They are: One::Liner.pm Bug.pm Both of these modules fit nicely into my criterion of a good first project. Which are: General purpose (Not specific to Web, mod_perl, Tk or other Perl niches) Easily accomplished (Could easily get to CPAN in 1 month) Cross-platform (Unix/Win32) Useful (Will get us some popularity in the community) Is a module (One::Liner has a script as well) One::Liner The basic idea is that there are a whole lot of very useful Perl one-liners out there, but usually you have to go look them up when you want to use one. One::Liner stores a bunch of them and lets you access them with mnemonics. It also ships with a command line script called '1' or 'one' or '1_r' (pronounced "one-line-R"). To use ABIGAIL's famous regex prime number generator, you would type: one prime_number or 1 pn To just print the one-liner, use: 1_r -p pn To see the author, use: one -a primes Each one-liner can have a few mnemonics (long, medium, short). One liner would deal with MSDOS command line sytax as well. Also, one-liners come in 2 categories: those that you can use from the command line, and everything else (like perl poetry for example). One::Liner would do whatever was useful for that one-liner. _____________________________________________ Bug or Report::Bug In my new module Inline.pm there is a feature that allows someone who encounters a bug, to report it to me using the syntax: perl -MInline=REPORTBUG myscript.pl where myscript.pl is a script using Inline.pm. This causes a machine (Perl) readable bug report to be produced, and prints instructions on where to send it. The report contains all kinds of useful info, including: Other modules used and their version numbers The complete configuration of Perl on that machine The internal state of Inline.pm at the time. ,etc I would like to this made into a general purpose module that any module writer can use. Later, we could develop tools for processing these reports as well. Choosing a short name like Bug.pm allows a syntax like this for the module user: perl -MBug yourscript.pl _____________________________________________ These are just my ideas. We will vote on all of the proposals at the meeting. Brian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From dbitsef at uswest.com Thu Aug 10 20:11:35 2000 From: dbitsef at uswest.com (David Bitseff) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: IO::Socket Question In-Reply-To: <200008101924.MAA28144@carios2.ca.boeing.com> References: <200008101924.MAA28144@carios2.ca.boeing.com> Message-ID: <14739.21191.399593.835546@maakie.uswc.uswest.com> Keep in mind that when using the lower level sysread and syswrite functions you should not use buffered reads and writes (like print and ) on the same filehandle. I think it says this somewhere in the perldoc. >> I think you (and everyone else) are on the right track. However, it >> still doesn't work :) >> If I open up the socket to a web server and request a page (so I'm >> getting a decent amount of data back) it works fine. >> however, with the server I'm connecting to, where all it replies >> with is one work, it hangs on the line referencing <$sock> ced> If you're just getting a one-word response with no newline, then, ced> <$sock> will still hang because it's line oriented and will wait ced> for a newline. ced> Here's a section from IO::Select that provides another possible ced> strategy: ced> ... If the remote server sends data a byte at time, and you ced> need that data immediately without waiting for a newline ced> (which might not happen), you may wish to replace the while ced> loop in the parent with the following: ced> my $byte; while (sysread($handle, $byte, 1) == 1) { ced> print STDOUT $byte; ced> } ced> Making a system call for each byte you want to read is not ced> very efficient (to put it mildly) but is the simplest to ced> explain and works reasonably well. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From wwg at tscnet.com Fri Aug 11 12:17:53 2000 From: wwg at tscnet.com (wwg@tscnet.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas In-Reply-To: References: Message-ID: <200008111717.KAA07019@mail.tscnet.net> > One::Liner.pm This sounds cool, Brian! An idea: command completion: if I type "one pri [tab]" it displays a list of one-liners available that begin with "pri", then reprints "one pri" on the command line. Looking forward to the meeting ... Regards, Bill Graham Software Engineer 360 Powered Corp. www.360.com ========================================= This mail sent through Sinclair's WebMail http://mail.sinclair.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From andyj at microsoft.com Fri Aug 11 12:42:34 2000 From: andyj at microsoft.com (Andy Jacobs) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas Message-ID: I like both ideas. One thought about the one-liner, though, is that many one-liners actually include the Perl command, with -e, so they can include other flags (such as -n, -l, etc.). Do you have an idea how this could be accommodated? One solution might be to wrap it in a system() call. But I don't know how portable that would be. Or, since they'd all be one-liners, maybe assume they all have the form of "perl -e". - Andy Jacobs > -----Original Message----- > From: owner-spug-list@pm.org > [mailto:owner-spug-list@pm.org]On Behalf Of > B.Ingerson@epixtech.com > Sent: Thursday, August 10, 2000 1:34 PM > To: SPUG@cpan.org > Subject: SPUG: SPUG Project Ideas > > > > SPUG, > > OK. Well its time for me to start planning for next Tuesday's > meeting. I'm > sending out a series of posts, starting with this one. > > A lot of people have proposed ideas for projects. I'll give a > summary in > another post. For now I want to present two of my own ideas. They are: > > One::Liner.pm > Bug.pm > > Both of these modules fit nicely into my criterion of a good > first project. > Which are: > General purpose (Not specific to Web, mod_perl, Tk or > other Perl niches) > Easily accomplished (Could easily get to CPAN in 1 month) > Cross-platform (Unix/Win32) > Useful (Will get us some popularity in the community) > Is a module (One::Liner has a script as well) > > > One::Liner > The basic idea is that there are a whole lot of very useful > Perl one-liners > out there, but usually you have to go look them up when you > want to use > one. One::Liner stores a bunch of them and lets you access them with > mnemonics. It also ships with a command line script called > '1' or 'one' or > '1_r' (pronounced "one-line-R"). To use ABIGAIL's famous > regex prime number > generator, you would type: > > one prime_number > or > 1 pn > > To just print the one-liner, use: > > 1_r -p pn > > To see the author, use: > > one -a primes > > Each one-liner can have a few mnemonics (long, medium, > short). One liner > would deal with MSDOS command line sytax as well. > > Also, one-liners come in 2 categories: those that you can use from the > command line, and everything else (like perl poetry for example). > One::Liner would do whatever was useful for that one-liner. > > _____________________________________________ > > Bug or Report::Bug > In my new module Inline.pm there is a feature that allows someone who > encounters a bug, to report it to me using the syntax: > > perl -MInline=REPORTBUG myscript.pl > > where myscript.pl is a script using Inline.pm. This causes a > machine (Perl) > readable bug report to be produced, and prints instructions > on where to > send it. The report contains all kinds of useful info, including: > > Other modules used and their version numbers > The complete configuration of Perl on that machine > The internal state of Inline.pm at the time. > ,etc > > I would like to this made into a general purpose module that > any module > writer can use. Later, we could develop tools for processing > these reports > as well. > > Choosing a short name like Bug.pm allows a syntax like this > for the module > user: > > perl -MBug yourscript.pl > > _____________________________________________ > > > These are just my ideas. We will vote on all of the proposals at the > meeting. > > Brian > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your > Email-address > For full traffic, use spug-list for LIST ; otherwise use > spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: > http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 11 12:54:19 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Itinerary of Goals for SPUG-Dev Meeting Next Tuesday Message-ID: SPUG, I am listing a rough draft of the goals that we should expect to accomplish at next Tuesday's meeting. Vote on a first project. Identify the phases and tasks of module development. Choose software for assigning people to tasks. Vote on a Project Coordinator. Vote on a Source Code Management tool. Find a person who can host the Source Code Repository. Choose a Mailing List administrator. Choose a Web Site adminstrator. (For web based project tools) Start the Design of our first module. This is a starting point. Please add to this list. Brian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jmunger1 at yahoo.com Fri Aug 11 12:48:50 2000 From: jmunger1 at yahoo.com (James Munger) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Teaching Materials? Message-ID: <20000811174850.7936.qmail@web3104.mail.yahoo.com> I'll be teaching Perl basics to some programmers in our company in a week or so. Are there some prefab teaching materials out there I could use for transparencies, handouts, etc? Thanks, James __________________________________________________ Do You Yahoo!? Kick off your party with Yahoo! Invites. http://invites.yahoo.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Fri Aug 11 13:38:59 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: Teaching Materials? In-Reply-To: <20000811174850.7936.qmail@web3104.mail.yahoo.com>; from jmunger1@yahoo.com on Fri, Aug 11, 2000 at 10:48:50AM -0700 References: <20000811174850.7936.qmail@web3104.mail.yahoo.com> Message-ID: <20000811113859.A3902@timji.consultix.wa.com> On Fri, Aug 11, 2000 at 10:48:50AM -0700, James Munger wrote: > > I'll be teaching Perl basics to some programmers > in our company in a week or so. Are there some > prefab teaching materials out there I could use > for transparencies, handouts, etc? There's quite a bit of free Perl-training stuff on the 'net, some of which could be of some value, especially if you're willing to add a lot of chalkboard scribbling to "add value" to the weak parts. For example, there's a company "down under" that allows downloads of their course manuals from their web page: netizen.com.au/services/training Some of these materials are okay, IMHO, so you might want to check them out. And, of course, when you get an actual budget to work with 8-}, remember that there are those of us out here who did corporate-grade Perl training professionally! > > Thanks, > James > > > __________________________________________________ > Do You Yahoo!? > Kick off your party with Yahoo! Invites. > http://invites.yahoo.com/ > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > -- *========================================================================* | Dr. Tim Maher, CEO, Consultix (206) 781-UNIX/8649; ask for FAX# | | Email: tim@consultix-inc.com Web: http://www.consultix-inc.com | | CLASSES: 8/14: UNIX Fund. 8/21: Shell & Utilities 9/11: Perl + Mods | *========================================================================* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 11 14:13:47 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas Message-ID: Andy, I actually played with this concept a while ago. I found that the best way to do it is to open a pipe to the shell and pass the one-liner in verbatim. (perl -le 'print "That";') Actually, not quite verbatim. You tack on the extra args to '1_r' as extra args to the one-liner. This works great on Unix. Haven't tried it on Win32. Wrapping in a system() call is bad because perl might interpolate syntax meant for the shell. Brian Andy Jacobs on 08/11/2000 10:42:34 AM To: "'B.Ingerson@epixtech.com'" cc: "'SPUG@cpan.org'" Subject: RE: SPUG: SPUG Project Ideas I like both ideas. One thought about the one-liner, though, is that many one-liners actually include the Perl command, with -e, so they can include other flags (such as -n, -l, etc.). Do you have an idea how this could be accommodated? One solution might be to wrap it in a system() call. But I don't know how portable that would be. Or, since they'd all be one-liners, maybe assume they all have the form of "perl -e". - Andy Jacobs > -----Original Message----- > From: owner-spug-list@pm.org > [mailto:owner-spug-list@pm.org]On Behalf Of > B.Ingerson@epixtech.com > Sent: Thursday, August 10, 2000 1:34 PM > To: SPUG@cpan.org > Subject: SPUG: SPUG Project Ideas > > > > SPUG, > > OK. Well its time for me to start planning for next Tuesday's > meeting. I'm > sending out a series of posts, starting with this one. > > A lot of people have proposed ideas for projects. I'll give a > summary in > another post. For now I want to present two of my own ideas. They are: > > One::Liner.pm > Bug.pm > > Both of these modules fit nicely into my criterion of a good > first project. > Which are: > General purpose (Not specific to Web, mod_perl, Tk or > other Perl niches) > Easily accomplished (Could easily get to CPAN in 1 month) > Cross-platform (Unix/Win32) > Useful (Will get us some popularity in the community) > Is a module (One::Liner has a script as well) > > > One::Liner > The basic idea is that there are a whole lot of very useful > Perl one-liners > out there, but usually you have to go look them up when you > want to use > one. One::Liner stores a bunch of them and lets you access them with > mnemonics. It also ships with a command line script called > '1' or 'one' or > '1_r' (pronounced "one-line-R"). To use ABIGAIL's famous > regex prime number > generator, you would type: > > one prime_number > or > 1 pn > > To just print the one-liner, use: > > 1_r -p pn > > To see the author, use: > > one -a primes > > Each one-liner can have a few mnemonics (long, medium, > short). One liner > would deal with MSDOS command line sytax as well. > > Also, one-liners come in 2 categories: those that you can use from the > command line, and everything else (like perl poetry for example). > One::Liner would do whatever was useful for that one-liner. > > _____________________________________________ > > Bug or Report::Bug > In my new module Inline.pm there is a feature that allows someone who > encounters a bug, to report it to me using the syntax: > > perl -MInline=REPORTBUG myscript.pl > > where myscript.pl is a script using Inline.pm. This causes a > machine (Perl) > readable bug report to be produced, and prints instructions > on where to > send it. The report contains all kinds of useful info, including: > > Other modules used and their version numbers > The complete configuration of Perl on that machine > The internal state of Inline.pm at the time. > ,etc > > I would like to this made into a general purpose module that > any module > writer can use. Later, we could develop tools for processing > these reports > as well. > > Choosing a short name like Bug.pm allows a syntax like this > for the module > user: > > perl -MBug yourscript.pl > > _____________________________________________ > > > These are just my ideas. We will vote on all of the proposals at the > meeting. > > Brian > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your > Email-address > For full traffic, use spug-list for LIST ; otherwise use > spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: > http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From andyj at microsoft.com Fri Aug 11 16:31:27 2000 From: andyj at microsoft.com (Andy Jacobs) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas Message-ID: On Win32 there are problems quoting command-line programs. The shell doesn't recognize single quotes as anything special, so it thinks the single quote is just an apostrophe in the first parameter, etc., and stops at the first space (usually not what you want if you're using the single quotes in the first place). It does recognize double-quotes (similar to Unix's single quotes), but this creates problems for scripts that contain double quotes. Personally, I translate any double quotes I use in one-liners into qq{} type syntax. But I just discovered that Windows 2000 allows the double quotes to be escaped with a backslash, so: perl -e "print \"\\\"Hi\\\"\"" printed "Hi" So, TMTOWTDI, but neither of them are very pretty. Also, I don't remember if previous versions of Windows allowed escaped double-quotes (and seem to remember an old version didn't, but I'm not positive). - Andy > -----Original Message----- > From: owner-spug-list@pm.org > [mailto:owner-spug-list@pm.org]On Behalf Of > B.Ingerson@epixtech.com > Sent: Friday, August 11, 2000 12:14 PM > To: Andy Jacobs > Cc: 'B.Ingerson@epixtech.com'; 'SPUG@cpan.org' > Subject: RE: SPUG: SPUG Project Ideas > > > > > Andy, > > I actually played with this concept a while ago. I found that > the best way > to do it is to open a pipe to the shell and pass the > one-liner in verbatim. > (perl -le 'print "That";') Actually, not quite verbatim. You > tack on the > extra args to '1_r' as extra args to the one-liner. This > works great on > Unix. Haven't tried it on Win32. > > Wrapping in a system() call is bad because perl might > interpolate syntax > meant for the shell. > > Brian > > > > > Andy Jacobs on 08/11/2000 10:42:34 AM > > To: "'B.Ingerson@epixtech.com'" > cc: "'SPUG@cpan.org'" > > Subject: RE: SPUG: SPUG Project Ideas > > > I like both ideas. One thought about the one-liner, though, > is that many > one-liners actually include the Perl command, with -e, so > they can include > other flags (such as -n, -l, etc.). Do you have an idea how > this could be > accommodated? One solution might be to wrap it in a system() > call. But I > don't know how portable that would be. Or, since they'd all > be one-liners, > maybe assume they all have the form of "perl -e". > > - Andy Jacobs > > > -----Original Message----- > > From: owner-spug-list@pm.org > > [mailto:owner-spug-list@pm.org]On Behalf Of > > B.Ingerson@epixtech.com > > Sent: Thursday, August 10, 2000 1:34 PM > > To: SPUG@cpan.org > > Subject: SPUG: SPUG Project Ideas > > > > > > > > SPUG, > > > > OK. Well its time for me to start planning for next Tuesday's > > meeting. I'm > > sending out a series of posts, starting with this one. > > > > A lot of people have proposed ideas for projects. I'll give a > > summary in > > another post. For now I want to present two of my own > ideas. They are: > > > > One::Liner.pm > > Bug.pm > > > > Both of these modules fit nicely into my criterion of a good > > first project. > > Which are: > > General purpose (Not specific to Web, mod_perl, Tk or > > other Perl niches) > > Easily accomplished (Could easily get to CPAN in 1 month) > > Cross-platform (Unix/Win32) > > Useful (Will get us some popularity in the community) > > Is a module (One::Liner has a script as well) > > > > > > One::Liner > > The basic idea is that there are a whole lot of very useful > > Perl one-liners > > out there, but usually you have to go look them up when you > > want to use > > one. One::Liner stores a bunch of them and lets you access them with > > mnemonics. It also ships with a command line script called > > '1' or 'one' or > > '1_r' (pronounced "one-line-R"). To use ABIGAIL's famous > > regex prime number > > generator, you would type: > > > > one prime_number > > or > > 1 pn > > > > To just print the one-liner, use: > > > > 1_r -p pn > > > > To see the author, use: > > > > one -a primes > > > > Each one-liner can have a few mnemonics (long, medium, > > short). One liner > > would deal with MSDOS command line sytax as well. > > > > Also, one-liners come in 2 categories: those that you can > use from the > > command line, and everything else (like perl poetry for example). > > One::Liner would do whatever was useful for that one-liner. > > > > _____________________________________________ > > > > Bug or Report::Bug > > In my new module Inline.pm there is a feature that allows > someone who > > encounters a bug, to report it to me using the syntax: > > > > perl -MInline=REPORTBUG myscript.pl > > > > where myscript.pl is a script using Inline.pm. This causes a > > machine (Perl) > > readable bug report to be produced, and prints instructions > > on where to > > send it. The report contains all kinds of useful info, including: > > > > Other modules used and their version numbers > > The complete configuration of Perl on that machine > > The internal state of Inline.pm at the time. > > ,etc > > > > I would like to this made into a general purpose module that > > any module > > writer can use. Later, we could develop tools for processing > > these reports > > as well. > > > > Choosing a short name like Bug.pm allows a syntax like this > > for the module > > user: > > > > perl -MBug yourscript.pl > > > > _____________________________________________ > > > > > > These are just my ideas. We will vote on all of the proposals at the > > meeting. > > > > Brian > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > - - - - - - - > > POST TO: spug-list@pm.org PROBLEMS: > owner-spug-list@pm.org > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > Replace ACTION by subscribe or unsubscribe, EMAIL by your > > Email-address > > For full traffic, use spug-list for LIST ; otherwise use > > spug-list-digest > > Seattle Perl Users Group (SPUG) Home Page: > > http://www.halcyon.com/spug/ > > > > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your > Email-address > For full traffic, use spug-list for LIST ; otherwise use > spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 11 17:12:18 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas Message-ID: The nice thing about a collaborative effort is that we'll all get a chance to iron out details like this. ;-) Andy Jacobs on 08/11/2000 02:31:27 PM To: "'B.Ingerson@epixtech.com'" cc: "'SPUG@cpan.org'" Subject: RE: SPUG: SPUG Project Ideas On Win32 there are problems quoting command-line programs. The shell doesn't recognize single quotes as anything special, so it thinks the single quote is just an apostrophe in the first parameter, etc., and stops at the first space (usually not what you want if you're using the single quotes in the first place). It does recognize double-quotes (similar to Unix's single quotes), but this creates problems for scripts that contain double quotes. Personally, I translate any double quotes I use in one-liners into qq{} type syntax. But I just discovered that Windows 2000 allows the double quotes to be escaped with a backslash, so: perl -e "print \"\\\"Hi\\\"\"" printed "Hi" So, TMTOWTDI, but neither of them are very pretty. Also, I don't remember if previous versions of Windows allowed escaped double-quotes (and seem to remember an old version didn't, but I'm not positive). - Andy > -----Original Message----- > From: owner-spug-list@pm.org > [mailto:owner-spug-list@pm.org]On Behalf Of > B.Ingerson@epixtech.com > Sent: Friday, August 11, 2000 12:14 PM > To: Andy Jacobs > Cc: 'B.Ingerson@epixtech.com'; 'SPUG@cpan.org' > Subject: RE: SPUG: SPUG Project Ideas > > > > > Andy, > > I actually played with this concept a while ago. I found that > the best way > to do it is to open a pipe to the shell and pass the > one-liner in verbatim. > (perl -le 'print "That";') Actually, not quite verbatim. You > tack on the > extra args to '1_r' as extra args to the one-liner. This > works great on > Unix. Haven't tried it on Win32. > > Wrapping in a system() call is bad because perl might > interpolate syntax > meant for the shell. > > Brian > > > > > Andy Jacobs on 08/11/2000 10:42:34 AM > > To: "'B.Ingerson@epixtech.com'" > cc: "'SPUG@cpan.org'" > > Subject: RE: SPUG: SPUG Project Ideas > > > I like both ideas. One thought about the one-liner, though, > is that many > one-liners actually include the Perl command, with -e, so > they can include > other flags (such as -n, -l, etc.). Do you have an idea how > this could be > accommodated? One solution might be to wrap it in a system() > call. But I > don't know how portable that would be. Or, since they'd all > be one-liners, > maybe assume they all have the form of "perl -e". > > - Andy Jacobs > > > -----Original Message----- > > From: owner-spug-list@pm.org > > [mailto:owner-spug-list@pm.org]On Behalf Of > > B.Ingerson@epixtech.com > > Sent: Thursday, August 10, 2000 1:34 PM > > To: SPUG@cpan.org > > Subject: SPUG: SPUG Project Ideas > > > > > > > > SPUG, > > > > OK. Well its time for me to start planning for next Tuesday's > > meeting. I'm > > sending out a series of posts, starting with this one. > > > > A lot of people have proposed ideas for projects. I'll give a > > summary in > > another post. For now I want to present two of my own > ideas. They are: > > > > One::Liner.pm > > Bug.pm > > > > Both of these modules fit nicely into my criterion of a good > > first project. > > Which are: > > General purpose (Not specific to Web, mod_perl, Tk or > > other Perl niches) > > Easily accomplished (Could easily get to CPAN in 1 month) > > Cross-platform (Unix/Win32) > > Useful (Will get us some popularity in the community) > > Is a module (One::Liner has a script as well) > > > > > > One::Liner > > The basic idea is that there are a whole lot of very useful > > Perl one-liners > > out there, but usually you have to go look them up when you > > want to use > > one. One::Liner stores a bunch of them and lets you access them with > > mnemonics. It also ships with a command line script called > > '1' or 'one' or > > '1_r' (pronounced "one-line-R"). To use ABIGAIL's famous > > regex prime number > > generator, you would type: > > > > one prime_number > > or > > 1 pn > > > > To just print the one-liner, use: > > > > 1_r -p pn > > > > To see the author, use: > > > > one -a primes > > > > Each one-liner can have a few mnemonics (long, medium, > > short). One liner > > would deal with MSDOS command line sytax as well. > > > > Also, one-liners come in 2 categories: those that you can > use from the > > command line, and everything else (like perl poetry for example). > > One::Liner would do whatever was useful for that one-liner. > > > > _____________________________________________ > > > > Bug or Report::Bug > > In my new module Inline.pm there is a feature that allows > someone who > > encounters a bug, to report it to me using the syntax: > > > > perl -MInline=REPORTBUG myscript.pl > > > > where myscript.pl is a script using Inline.pm. This causes a > > machine (Perl) > > readable bug report to be produced, and prints instructions > > on where to > > send it. The report contains all kinds of useful info, including: > > > > Other modules used and their version numbers > > The complete configuration of Perl on that machine > > The internal state of Inline.pm at the time. > > ,etc > > > > I would like to this made into a general purpose module that > > any module > > writer can use. Later, we could develop tools for processing > > these reports > > as well. > > > > Choosing a short name like Bug.pm allows a syntax like this > > for the module > > user: > > > > perl -MBug yourscript.pl > > > > _____________________________________________ > > > > > > These are just my ideas. We will vote on all of the proposals at the > > meeting. > > > > Brian > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > - - - - - - - > > POST TO: spug-list@pm.org PROBLEMS: > owner-spug-list@pm.org > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > Replace ACTION by subscribe or unsubscribe, EMAIL by your > > Email-address > > For full traffic, use spug-list for LIST ; otherwise use > > spug-list-digest > > Seattle Perl Users Group (SPUG) Home Page: > > http://www.halcyon.com/spug/ > > > > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your > Email-address > For full traffic, use spug-list for LIST ; otherwise use > spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From wwg at tscnet.com Fri Aug 11 17:20:16 2000 From: wwg at tscnet.com (wwg@tscnet.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas In-Reply-To: References: Message-ID: <200008112220.PAA15450@mail.tscnet.net> Why not just check the $OSNAME variable, and use the appropriate syntax? We could have two variables: $nix_quote = a single quote, and $win_quote = a double quote. Then, depending on the value of $OSNAME, use the appropriate quote variable to enclose the command. This is similar to what I've done for path separators, end-of-line chars, etc. Regards, Bill Graham Software Engineer 360 Powered Corp. www.360.com Quoting Andy Jacobs : > On Win32 there are problems quoting command-line programs. The shell > doesn't recognize single quotes as anything special, so it thinks the > single > quote is just an apostrophe in the first parameter ========================================= This mail sent through Sinclair's WebMail http://mail.sinclair.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From wwg at tscnet.com Fri Aug 11 18:12:57 2000 From: wwg at tscnet.com (wwg@tscnet.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas In-Reply-To: <200008112220.PAA15450@mail.tscnet.net> References: <200008112220.PAA15450@mail.tscnet.net> Message-ID: <200008112312.QAA07295@mail.tscnet.net> Thinking about this gave me an idea for a project. If this has already been done, please let me know (I'm still a bit new ...): A cross-platform module. It would do things like handle different path separator chars, eol chars, and anything else we can think of to enhance cross-platform development. We could use this also to help make our SPUG@cpan modules cross-platform ... Regards, Bill Graham Software Engineer 360 Powered Corporation www.360.com Quoting wwg@tscnet.com: > Why not just check the $OSNAME variable, and use the > appropriate syntax? We could have two variables: > $nix_quote = a single quote, and > $win_quote = a double quote. > > Then, depending on the value of $OSNAME, use the > appropriate quote variable to enclose the command. This > is similar to what I've done for path separators, > end-of-line chars, etc. ========================================= This mail sent through Sinclair's WebMail http://mail.sinclair.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From andyj at microsoft.com Fri Aug 11 18:43:01 2000 From: andyj at microsoft.com (Andy Jacobs) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas Message-ID: This is one approach, but the changes would involve more than just deciding what quote character to use - it affects internal quotes as well, which might not be trivial to change... - Andy > -----Original Message----- > From: owner-spug-list@pm.org > [mailto:owner-spug-list@pm.org]On Behalf Of > wwg@tscnet.com > Sent: Friday, August 11, 2000 3:20 PM > To: SPUG@cpan.org > Subject: RE: SPUG: SPUG Project Ideas > > > Why not just check the $OSNAME variable, and use the > appropriate syntax? We could have two variables: > $nix_quote = a single quote, and > $win_quote = a double quote. > > Then, depending on the value of $OSNAME, use the > appropriate quote variable to enclose the command. This > is similar to what I've done for path separators, > end-of-line chars, etc. > > Regards, > Bill Graham > Software Engineer > 360 Powered Corp. > www.360.com > > Quoting Andy Jacobs : > > > On Win32 there are problems quoting command-line > programs. The shell > > doesn't recognize single quotes as anything special, > so it thinks the > > single > > quote is just an apostrophe in the first parameter > > ========================================= > This mail sent through Sinclair's WebMail > http://mail.sinclair.net > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your > Email-address > For full traffic, use spug-list for LIST ; otherwise use > spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 11 19:03:25 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas Message-ID: Bill, That's the way I would solve it. But it still remains to be seen whether you can open a pipe for the command and have it work on Win32/DOS the way it does with a shell. We can figure out all these minor details on Tuesday. Besides we still need to vote on *which* project we want to do anyway. Keep the creative juices flowing, Brian wwg@tscnet.com@pm.org on 08/11/2000 03:20:16 PM Please respond to wwg@tscnet.com Sent by: owner-spug-list@pm.org To: SPUG@cpan.org cc: Subject: RE: SPUG: SPUG Project Ideas Why not just check the $OSNAME variable, and use the appropriate syntax? We could have two variables: $nix_quote = a single quote, and $win_quote = a double quote. Then, depending on the value of $OSNAME, use the appropriate quote variable to enclose the command. This is similar to what I've done for path separators, end-of-line chars, etc. Regards, Bill Graham Software Engineer 360 Powered Corp. www.360.com Quoting Andy Jacobs : > On Win32 there are problems quoting command-line programs. The shell > doesn't recognize single quotes as anything special, so it thinks the > single > quote is just an apostrophe in the first parameter ========================================= This mail sent through Sinclair's WebMail http://mail.sinclair.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From scott at sabmail.rresearch.com Fri Aug 11 19:58:35 2000 From: scott at sabmail.rresearch.com (Scott Blachowicz) Date: Wed Aug 4 00:07:32 2004 Subject: SPUG: SPUG Project Ideas In-Reply-To: <200008112312.QAA07295@mail.tscnet.net> References: <200008112220.PAA15450@mail.tscnet.net> <200008112312.QAA07295@mail.tscnet.net> Message-ID: <20000811175835.A37818@sabami.seaslug.org> On Fri, Aug 11, 2000 at 04:12:57PM -0700, wwg@tscnet.com wrote: > A cross-platform module. It would do things like handle > different path separator chars, eol chars, and anything > else we can think of to enhance cross-platform > development. We could use this also to help make our > SPUG@cpan modules cross-platform ... I've seen mentions of a File::Spec module that probably does part of that...I've never actually looked it (just seen mailing list mentions). I would think that some of the needed stuff would probablyl be built in? -- Scott Blachowicz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jshaffer at chronology.com Fri Aug 11 20:02:28 2000 From: jshaffer at chronology.com (Jamie Shaffer) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: SPUG Project Ideas References: Message-ID: <3994A224.5C16CE76@chronology.com> Well, if you're going to get creative, I think that "1_r joke" ought to give you a 'one liner'. ;) B.Ingerson@epixtech.com wrote: > Bill, > > That's the way I would solve it. But it still remains to be seen whether > you can open a pipe for the command and have it work on Win32/DOS the way > it does with a shell. > > We can figure out all these minor details on Tuesday. Besides we still need > to vote on *which* project we want to do anyway. > > Keep the creative juices flowing, > > Brian > > wwg@tscnet.com@pm.org on 08/11/2000 03:20:16 PM > > Please respond to wwg@tscnet.com > > Sent by: owner-spug-list@pm.org > > To: SPUG@cpan.org > cc: > > Subject: RE: SPUG: SPUG Project Ideas > > Why not just check the $OSNAME variable, and use the > appropriate syntax? We could have two variables: > $nix_quote = a single quote, and > $win_quote = a double quote. > > Then, depending on the value of $OSNAME, use the > appropriate quote variable to enclose the command. This > is similar to what I've done for path separators, > end-of-line chars, etc. > > Regards, > Bill Graham > Software Engineer > 360 Powered Corp. > www.360.com > > Quoting Andy Jacobs : > > > On Win32 there are problems quoting command-line > programs. The shell > > doesn't recognize single quotes as anything special, > so it thinks the > > single > > quote is just an apostrophe in the first parameter > > ========================================= > This mail sent through Sinclair's WebMail > http://mail.sinclair.net > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 11 20:18:13 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: SPUG Project Ideas Message-ID: Absolutely... Jamie Shaffer on 08/11/2000 06:02:28 PM To: B.Ingerson@epixtech.com cc: wwg@tscnet.com, SPUG@cpan.org Subject: Re: SPUG: SPUG Project Ideas Well, if you're going to get creative, I think that "1_r joke" ought to give you a 'one liner'. ;) B.Ingerson@epixtech.com wrote: > Bill, > > That's the way I would solve it. But it still remains to be seen whether > you can open a pipe for the command and have it work on Win32/DOS the way > it does with a shell. > > We can figure out all these minor details on Tuesday. Besides we still need > to vote on *which* project we want to do anyway. > > Keep the creative juices flowing, > > Brian > > wwg@tscnet.com@pm.org on 08/11/2000 03:20:16 PM > > Please respond to wwg@tscnet.com > > Sent by: owner-spug-list@pm.org > > To: SPUG@cpan.org > cc: > > Subject: RE: SPUG: SPUG Project Ideas > > Why not just check the $OSNAME variable, and use the > appropriate syntax? We could have two variables: > $nix_quote = a single quote, and > $win_quote = a double quote. > > Then, depending on the value of $OSNAME, use the > appropriate quote variable to enclose the command. This > is similar to what I've done for path separators, > end-of-line chars, etc. > > Regards, > Bill Graham > Software Engineer > 360 Powered Corp. > www.360.com > > Quoting Andy Jacobs : > > > On Win32 there are problems quoting command-line > programs. The shell > > doesn't recognize single quotes as anything special, > so it thinks the > > single > > quote is just an apostrophe in the first parameter > > ========================================= > This mail sent through Sinclair's WebMail > http://mail.sinclair.net > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From starfire at zipcon.net Sat Aug 12 21:32:08 2000 From: starfire at zipcon.net (Richard Anderson) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: Teaching Materials? References: <20000811174850.7936.qmail@web3104.mail.yahoo.com> Message-ID: <00fa01c0055d$bcffec00$7c0ff93f@adcom133> I recommend Robert Pepper's Perl Tutorial (http://www.netcat.co.uk/rob/perl/win32perltut.html ) It's copyrighted, so you will have to get Robert's permission to use it. Richard.Anderson@raycosoft.com www.zipcon.net/~starfire/home (personal) www.raycosoft.com (corporate) ----- Original Message ----- From: "James Munger" To: Sent: Friday, August 11, 2000 10:48 AM Subject: SPUG: Teaching Materials? > > I'll be teaching Perl basics to some programmers > in our company in a week or so. Are there some > prefab teaching materials out there I could use > for transparencies, handouts, etc? > > Thanks, > James > > > __________________________________________________ > Do You Yahoo!? > Kick off your party with Yahoo! Invites. > http://invites.yahoo.com/ > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Sun Aug 13 19:47:29 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Perl and Fortran Message-ID: Whom it may concern, Back in May when I gave a talk about writing C extensions, someone on the list asked if I knew how to extend Perl w/ Fortran. If you are this person, please contact me. Brian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Mon Aug 14 00:08:11 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: August Meeting Message-ID: <20000813220811.A12705@timji.consultix.wa.com> August 2000 Seattle Perl User's Group Meeting ------------------------------------------------------ Topics: Perl Conference Review; Software Collaborations Speaker: Brian Ingerson, EpixTech Time: August 15th 2000 (Third Tuesday), 7pm-9pm LOCATION: Union Bank of California Bldg, 5th Floor Mtg Room Cost: Free SPUG members who attended the July Perl Conference in Monterey will argue over which were the best talks, the best parties, and the best Monterey Bay Aquarium exhibits. Then Brian Ingerson (b.ingerson@epixtech.com) will discuss the project he's championing to foster collaborative software development projects amongst SPUGsters, with the twin goals of enhancing programming skills and contributing useful software to CPAN. If you want to get to know other members and be challenged to actually create some cool code, you should be there! Finally, we'll discuss some proposals from a spontaneous benefactor about changing the way SPUGsters communicate electronically, and where our Web Page will be hosted. Tim Maher will give out some special prizes in a drawing, and help guide the discussions as usual. Admission is free and open to the general public. Attendees are encouraged to arrive at the building's 5th & Madison door by 6:45pm, which might be locked at other times. Parking We recommend avoiding the parking lot below the Union Bank building, due to the very hefty fee you'll be assessed if you leave after 9pm. Pre/Post-Meeting Gathering Place Come and pass the pre-meeting time with other SPUGsters at the Rock Bottom brewpub, at 1333 5th Ave., (206) 623-3070, in downtown Seattle. Look to your left, near the bar or pool table, for bizarre yet strangely appealing characters wielding laptops and hearty ales. For more information, including driving directions and street addresses, see http://www.halcyon.com/spug/. *========================================================================* | Dr. Tim Maher, CEO, Consultix (206) 781-UNIX/8649; ask for FAX# | | Email: tim@consultix-inc.com Web: http://www.consultix-inc.com | |Training- TIM MAHER: Unix, Perl DAMIAN CONWAY: Adv. Perl, OOP, Parsing | |CLASSES - 8/14: UNIX Fund. 8/21: Shell & Utilities 9/11: Perl&Modules | *========================================================================* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From wwg at tscnet.com Mon Aug 14 12:00:16 2000 From: wwg at tscnet.com (wwg@tscnet.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: August Meeting In-Reply-To: <20000813220811.A12705@timji.consultix.wa.com> References: <20000813220811.A12705@timji.consultix.wa.com> Message-ID: <200008141700.KAA07425@mail.tscnet.net> Hi, Folks -- What time do people usually gather at the Rock Bottom? Not knowing anyone at all yet, I'd like to get there when I'm pretty sure there will be a few folks already in attendance ... ;-> Looking forward to meeting you all, Bill Graham ========================================= This mail sent through Sinclair's WebMail http://mail.sinclair.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Mon Aug 14 16:37:34 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: August Meeting Message-ID: Bill, I'll show up by 6pm. Brian wwg@tscnet.com@pm.org on 08/14/2000 10:00:16 AM Please respond to wwg@tscnet.com Sent by: owner-spug-list@pm.org To: spug-list@pm.org cc: Subject: Re: SPUG: August Meeting Hi, Folks -- What time do people usually gather at the Rock Bottom? Not knowing anyone at all yet, I'd like to get there when I'm pretty sure there will be a few folks already in attendance ... ;-> Looking forward to meeting you all, Bill Graham ========================================= This mail sent through Sinclair's WebMail http://mail.sinclair.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Mon Aug 14 20:17:49 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Status Report Message-ID: SPUG, Well better late than never. I wanted to recap the events and postings leading up to tommorrow night's SPUG-dev meeting. Here they are in chron-order. Read this and you should be "in the know" for the kick-off. See you tommorrow. Brian ___ 7/14 Brian Ingerson Inspired by the Dam-I-athon turnout of SPUGsters, I thought a good idea to promote future attendance would be to start a collaborative CPAN module development effort. I ran it by Tim. 7/14 Tim Maher Tim said, "Make it so". He also suggested that although people could participate through "The List", that major decisions/voting should happen at the meetings, to encourage people to show up. 7/14 Tim Maher Tim also says that he'll be handing out Damian's Quantum::Superpositions summary papers as an extra August meeting incentive. 7/14 Tim Maher Suggests having a one OO module group and one non-OO group. 7/14 Brian Ingerson Applied for the CPAN author handle "SPUG". This would also give us the email address "SPUG@cpan.org" which we could redirect to the email address of our choice. 7/15 Brian Ingerson Sent initial spug-list post to invite SPUG/ESPUG members to participate. 7/16 Andrew Chen Asks how we intend to find a project suiting both Newbies and Gurus. 7/16 Andy Jacobs Suggests a Perl editor or full IDE written in Perl (with Tk?) 7/16 PAUSE The CPAN maintainers approve our author handle of "SPUG". SPUG@cpan.org is set up to forward to spug-list@pm.org 7/17 John Cokos Offers us the use of his servers for the development mailing list. He also registers seattleperl.com. SPUG@cpan.org might be an alias for cpan@seattleperl.com. 7/17 Lorraine Johnson Seasoned programmer (but Perl newbie) excited to learn by working with others on a real project. 7/17 Joe Devlin Has written code worth donating in the past, but hasn't known the procedures for getting it to CPAN. 7/17 Chris Cavnor Confesses to using the mailing list regularly, but skipping the meetings. Also offers to host a CVS repository for the projects. 7/17 John Cokos Offers a SPUG a "windfall" of online resources including: a domain, a web-forum for coders, a search engine, web-space, and listserv software. (Thanks!) 7/18 Barry Sharp Suggests project: Multiple Paned Web Window to Collect multiple web windows (URLs) and present them in a single web window much like a having many frames on single micro fiche film. 7/18 Bill Alford Notes that even list-lurkers will be able to contribute once in a while, and that a collaborative dev effort makes for good lurking fodder. 7/18 Brian Ingerson Promises this report by 7/21 :-) 7/18 David Patterson Worries that too much of this will take place at the WSPUG location. (But encourages *all* ESPUGgers to flock to the August kickoff meeting) 7/19 Bill Graham Offers his "Perl/TK database browser/query tool using DBI" to SPUG as a project to work on. (Generates much interest.) 7/21 Andy Sweger Points out the existence of an "unsponsored project section" at http://www.collab.net , which we could use to find project topics. 7/26 Brian Ingerson Announces that Damian Conway has suggested that SPUG may get to carry on the maintenance of one or more of his modules. One of the most promising possibilities is LlamaCard.pm (a Tk/perl/XML based HyperCard look-alike) written by on of his students, Aaron Wigley. 7/26 Tim Maher and Brian Ingerson Encourage a rather modest project at first, to let us learn how to coordinate the team-work (CVS? Damian's "Programming by Contract?") before taking on something more challenging. 7/26 Terry Nightingale Suggests a resource such as sourceforge.net to provide the necessary coordination tools. 7/27 William Julien Suggests project: module to facilitate the generation of a web based calendar/scheduling system. 8/10 Brian Ingerson Suggests the simpler projects One::Liner and Report::Bug as first project ideas. One::Liner generates some interest. 8/11 Brian Ingerson Posts an itinerary of goals for the kickoff meeting. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Wed Aug 16 09:46:55 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Inline.pm is on th CPAN (and other SPUG-dev) Message-ID: SPUG, Well, for all of you who got an earful of me griping about the state of the CPAN at last night's SPUG meeting, I have some odd news. Although I still have not heard back from any of the maintainers( http://www.xray.mpe.mpg.de/mailing-lists/modules/2000-08/msg00085.html ), my upload to PAUSE actually did get moved into the CPAN proper ( http://search.cpan.org/search?dist=Inline ). This goes against my understanding of how things are supposed to work, but in this case I'm not complaining. :-) Well thanks to everyone who showed up last night to the SPUG-dev kickoff. There were many interesting issues. I hope that we can keep things rolling. I was talking to Jeremy Devenport at the Rock Bottom afterwards. His feeling was that to get something moving forward, someone should put together a bare bones shell of a project. Then we could all evalute it, start filling in the blanks, and enhance the heck out of it. So, if there's any interest in doing the one-liner thing, I'd be happy to get it rolling in a very minimal fashion. I suspect (and hope) that every bit of it would get rewritten by the group. Also last night, I promised to send the URL-s along related to module authoring. Here they are: The Perl 5 Module List: http://www.perl.com/CPAN-local/modules/00modlist.long.html The Modules Mailing List Archive: http://www.xray.mpe.mpg.de/mailing-lists/modules/ PAUSE (The Perl Authors Upload Server) http://www.perl.com/CPAN-local/modules/04pause.html The CPAN FAQ http://www.cpan.org/misc/cpan-faq.html The Scripts Repository http://www.perl.com/CPAN-local/scripts/index.html And the best CPAN interface of all: http://search.cpan.org Brian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 11:43:27 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Seattleperl.com References: Message-ID: <009f01c007a1$1a637a70$28e842cf@iwebx1> A followup on what we talked about last evening from my end. 1. Sourceforge I have installed php on one of our dev boxes and am preparing sourceforge for installation there as well. Should have it done and working in the next few hours. Won't be available from the internet yet, I'll want to spend a few days tinkering with it, then I'll copy the whole #! to a live machine and point a domain like "cpan.seattleperl.com" at it. 2. Seattleperl.com The domain is up, I added a cpan@seattleperl.com mailing list to it (you can signup from the website). For now, we can just monkey with it until we decide that this is the list we actually want to use for this. Also, the "job board" is up and running there now. I would like to see us move the current web content to this domain, there's an online html editor there for whoever will be the maintainer of content (Tim?) John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From scott at sabmail.rresearch.com Wed Aug 16 11:52:23 2000 From: scott at sabmail.rresearch.com (Scott Blachowicz) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Inline.pm is on th CPAN (and other SPUG-dev) In-Reply-To: References: Message-ID: <20000816095223.A93256@sabami.seaslug.org> On Wed, Aug 16, 2000 at 07:46:55AM -0700, B.Ingerson@epixtech.com wrote: > So, if there's any interest in doing the one-liner thing, I'd be happy to > get it rolling in a very minimal fashion. I suspect (and hope) that every > bit of it would get rewritten by the group. OK...to start some discussion now that you mentioned it :-))... Last night, I'd made some comments about thinking of this as a simple database lookup type of thing at its basic level. Something along the lines of a data structure like this: my %db = ( 'schwarzian_transform' => {aliases => ['s_t', 'st', "Randal's Transform"], type => 'template_code', data => 'map {} ...'}, 'primes' => {type => 'runnable_code', data => 'print "2,3,5,7\n"'}, 'valid_zip' => {aliases => ['is_zip', 'zip'], type => 'runnable_regexp', data => '/\d\d\d\d\d(\-?\d\d\d\d)?/'}, 'CPAN' => {aliases => ['cpan.org', 'The Perl Archive'], type => 'URL', data => 'http://www.cpan.org/'}, ); my %aliases; foreach my $key (keys %db) { foreach my $alias (@{$db{$key}->aliases}) { $aliases{$alias} = $key; } } Then, you could have Get functions that check for $db{$KEY} existence, then check for $db{$aliases{$KEY}} existence. You could also probably add a 'keywords' field to do searching/browsing on the db. So, that's one task area - general data storage and retrieval of short bits of text for retrieval by keyword. Another is what you do with the data. The default action could depend on the 'type' field and/or how the script/module is invoked (e.g. via an interactive front end). Another task area could be developing a set of functions that use the data store and do things with the returned data - so an "action" module. Another task area could be developing an interactive command line front end. Maybe another task would be playing with other specific applications (e.g. that Regex::Common stuff, the standard perl oneliners, something similar to the "fortune" program or email signature generators) and deciding if the provided lower level interfaces make sense. Maybe another task would be to think about how one might parameterize the data to be able to provide input to their expansion (kinda like code templates)? Maybe another task would be investigating what other modules are already there that do something similar? Maybe I should get back to "real" work now :-)? -- Scott Blachowicz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 11:47:39 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Spug CPAN References: Message-ID: <00a301c007a1$b0810b30$28e842cf@iwebx1> Just some thoughts on the CPAN module to be written ... We kicked around a few ideas last evening, but never really came to a final resolution on what the actual project will be. Seems like there were a lot of application ideas presented, but not many actual usable module ideas. So perhaps we could think of dividing our efforts into 2 parts one: an appication, and two: a generic usable module. My personal preference is a module. My proposal is one that I mentioned to a few people at Rock Bottom after the meeting: a Wrapper for DBI. I've gotten a good start on this, but it's really a mess and needs TLC. Anyone that's coded with DBD can relate to it's shortcommings, and how much code it can take to get simple things done. The module I propose is a wrapper. Consider: Current DBI Way: my $SQL = qq^ UPDATE sometable SET somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', ^; ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 11:55:55 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN Message-ID: <00bd01c007a2$d7eb1ca0$28e842cf@iwebx1> Apologies, my finger slipped and I sent the mail before I finished it... Just some thoughts on the CPAN module to be written ... We kicked around a few ideas last evening, but never really came to a final resolution on what the actual project will be. Seems like there were a lot of application ideas presented, but not many actual usable module ideas. So perhaps we could think of dividing our efforts into 2 parts one: an appication, and two: a generic usable module. My personal preference is a module. My proposal is one that I mentioned to a few people at Rock Bottom after the meeting: a Wrapper for DBI. I've gotten a good start on this, but it's really a mess and needs TLC. Anyone that's coded with DBD can relate to it's shortcommings, and how much code it can take to get simple things done. The module I propose is a wrapper. Consider: Current DBI Method: return("Some error") if($input{somevalue} !~ /someregexp/); .... and so on for each field. my $SQL = qq^ UPDATE sometable SET somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', ...... ^; $sth = $dbh->prepare($SQL); $rc = $sth->execute; if($DBI::errstr) { print "Failure .... \n"; } else { print "OK\n"; } Proposed Module Method: my ($statuscode, $message) = $sql->isql_update_table( table=>'sometable', values=>\%input ); print $message if( ! $statuscode ); Much less code, for the developer (especially considering that a typical SQL aplication has many many different inserts and updates like that one throughout the code), and a consistent back end that would match the input to the table rows, do error checking, input validation, etc.....and retun a meaningful error message. Routines like that could be / should be written to handle selects statements that give you the data as you want it instead of only one of the 3 ways DBD allows for now, insert statements that do the extensive validations that the update routine does, schema management, etc. Thoughts? John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Wed Aug 16 12:23:37 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: Spug CPAN Message-ID: John, I think I agree with you. If we can get the infrastructure set up to: 1) discuss projects 2) divide up tasks 3) manage source code then I think we could have as many projects as we want to. Since we are all able-minded people, I don't see a really compelling reason to dumb-down this whole process. If someone comes up with a good idea they should be allowed to get the ball rolling on it. Then whoever takes an interest can contribute as they feel like it. If there is no interest, then it probably wasn't a great idea in the first place. I do think that each project should have a coordinator who makes final decisions and keeps that project rolling along. In the Perl tradition, that person will most likely be whoever comes up with the idea in the first place. :-) That said, I propose that: Brian Ingeron will spearhead a One::Liner project. John Cokos will do the same for DBI::Wrapper. I think this would be good for meeting attendance as well. At each meeting, we could devote 5-10 minutes per project for presentation and group discussion. Also, this will allow various people to wear different "hats" on different projects. Whaddya Think? Brian "John Cokos" on 08/16/2000 09:47:39 AM To: , cc: Subject: Spug CPAN Just some thoughts on the CPAN module to be written ... We kicked around a few ideas last evening, but never really came to a final resolution on what the actual project will be. Seems like there were a lot of application ideas presented, but not many actual usable module ideas. So perhaps we could think of dividing our efforts into 2 parts one: an appication, and two: a generic usable module. My personal preference is a module. My proposal is one that I mentioned to a few people at Rock Bottom after the meeting: a Wrapper for DBI. I've gotten a good start on this, but it's really a mess and needs TLC. Anyone that's coded with DBD can relate to it's shortcommings, and how much code it can take to get simple things done. The module I propose is a wrapper. Consider: Current DBI Way: my $SQL = qq^ UPDATE sometable SET somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', somecolumn = '$input{somevalue}', ^; ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From Vince.Skahan at pss.boeing.com Wed Aug 16 12:19:45 2000 From: Vince.Skahan at pss.boeing.com (Skahan, Vince) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN Message-ID: <71D105274EA7D011905700805FFECA5906B8F135@xch-sea-10.ca.boeing.com> Would it be maybe possible for you to set up another mailing list for folks who care about this stuff so we all don't get each message ? It's turning into SPAM for me personally at least. While I'm interested, I sure don't want to see 20 messages a day about it. A pointer to a web page to peek at once in a while would be plenty. Any help would be greatly appreciated. -- -------- Vince.Skahan@boeing.com ------ http://bcstec.ca.boeing.com/~vds/ ------------- Boeing Shared Services Group - Technical Services outside Boeing - http://www.halcyon.com/vince - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From asherr at cs.unm.edu Wed Aug 16 12:33:16 2000 From: asherr at cs.unm.edu (Aryeh "Cody" Sherr) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: DBI shortcomings In-Reply-To: <00a301c007a1$b0810b30$28e842cf@iwebx1> Message-ID: Actually, there are some often overlooked shortcuts in DBI that I would like to share in response to your statement that DBI is long winded: $dbh->do($statement, \%attr, @bind_vals) do prepares, binds, and executes a non SELECT statement so your example would be: $dbh->do("UPDATE some_table SET cola=?, colb=?", undef, $vara, $varb); in one line. if you use bind variables, you also don't have to quote the values in $vara and $varb to prevent them from mangling your SQL statement, quicker and less error prone. @my_arr = selectrow_array($statement, \%attr, @bind_vals) selectrow_array prepares a SELECT statement, binds the values, and fetches your first row back all in one statement. There are more, such as prepared statement handles, the NAME_lc and NAME_uc attributes, and several other functions that not only take fewer lines of code but are also easier, faster, and more efficient. For sources, I recommend the DBI man page or the Perl DBI book from Oreilly. Cody Sherr On Wed, 16 Aug 2000, John Cokos wrote: > Just some thoughts on the CPAN module to be written ... > > We kicked around a few ideas last evening, but never really > came to a final resolution on what the actual project will > be. Seems like there were a lot of application ideas presented, > but not many actual usable module ideas. > > So perhaps we could think of dividing our efforts into 2 parts > one: an appication, and two: a generic usable module. > > My personal preference is a module. My proposal is one > that I mentioned to a few people at Rock Bottom after the meeting: > > a Wrapper for DBI. I've gotten a good start on this, but it's > really a mess and needs TLC. Anyone that's coded with DBD > can relate to it's shortcommings, and how much code it can take > to get simple things done. The module I propose is a wrapper. > > Consider: > Current DBI Way: > my $SQL = qq^ > UPDATE sometable SET > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > > ^; > ======================================== > John Cokos, President / CEO: iWeb Inc. > http://www.iwebsys.com > jcokos@ccs.net > ======================================== > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 12:29:53 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: DBI shortcomings References: Message-ID: <00df01c007a7$96f8bb30$28e842cf@iwebx1> Agreed, but theres no error checking/validation built in. And what if you want back an array of hashrefs? Can't do that with DBD, but with a wrapper, you sure can. John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== ----- Original Message ----- From: "Aryeh "Cody" Sherr" To: "John Cokos" Cc: ; Sent: Wednesday, August 16, 2000 10:33 AM Subject: DBI shortcomings > > Actually, there are some often overlooked shortcuts in DBI that I would > like to share in response to your statement that DBI is long winded: > > $dbh->do($statement, \%attr, @bind_vals) > do prepares, binds, and executes a non SELECT statement > so your example would be: > > $dbh->do("UPDATE some_table SET cola=?, colb=?", undef, $vara, $varb); > > in one line. if you use bind variables, you also don't have to quote the > values in $vara and $varb to prevent them from mangling your SQL > statement, quicker and less error prone. > > @my_arr = selectrow_array($statement, \%attr, @bind_vals) > > selectrow_array prepares a SELECT statement, binds the values, and fetches > your first row back all in one statement. > > There are more, such as prepared statement handles, the NAME_lc and > NAME_uc attributes, and several other functions that not only take fewer > lines of code but are also easier, faster, and more efficient. For > sources, I recommend the DBI man page or the Perl DBI book from Oreilly. > > Cody Sherr > > > On Wed, 16 Aug 2000, John Cokos wrote: > > Just some thoughts on the CPAN module to be written ... > > > > We kicked around a few ideas last evening, but never really > > came to a final resolution on what the actual project will > > be. Seems like there were a lot of application ideas presented, > > but not many actual usable module ideas. > > > > So perhaps we could think of dividing our efforts into 2 parts > > one: an appication, and two: a generic usable module. > > > > My personal preference is a module. My proposal is one > > that I mentioned to a few people at Rock Bottom after the meeting: > > > > a Wrapper for DBI. I've gotten a good start on this, but it's > > really a mess and needs TLC. Anyone that's coded with DBD > > can relate to it's shortcommings, and how much code it can take > > to get simple things done. The module I propose is a wrapper. > > > > Consider: > > Current DBI Way: > > my $SQL = qq^ > > UPDATE sometable SET > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > > > ^; > > ======================================== > > John Cokos, President / CEO: iWeb Inc. > > http://www.iwebsys.com > > jcokos@ccs.net > > ======================================== > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From cmeyer at helvella.org Wed Aug 16 13:23:01 2000 From: cmeyer at helvella.org (Colin Meyer) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Spug CPAN In-Reply-To: <00a301c007a1$b0810b30$28e842cf@iwebx1> References: <00a301c007a1$b0810b30$28e842cf@iwebx1> Message-ID: <20000816112301.F11998@hobart.helvella.org> John, On Wed, Aug 16, 2000 at 09:47:39AM -0700, John Cokos wrote: > Just some thoughts on the CPAN module to be written ... ... > > a Wrapper for DBI. I've gotten a good start on this, but it's > really a mess and needs TLC. Anyone that's coded with DBD > can relate to it's shortcommings, and how much code it can take > to get simple things done. The module I propose is a wrapper. I have played with this idea a bit in the past. The most interesting version that I came up with was a meta-data mapping for data-bearing objects so they could auto-generate sql & make DBI calls to read/insert/update themselves. The style of meta-data maps I used ended up being a bit cumbersome, but it was still easier than hand-writing all of the sql. Unfortunately, this module is owned by a large telco. Are you familiar with any of the DBIx:: wrappers that are available on the CPAN? I have not used any of them, but several look quite interesting: DBIx::Recordset - lots of DWIMity, designed with the idea of webforms in mind. DBIx::Tree - translates tree style structures to relational dbs. DBIx::Schema - pulls/puts data from/to multiple tables at a time. and on and on... -C. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jope-spug at n2h2.com Wed Aug 16 13:16:21 2000 From: jope-spug at n2h2.com (El JoPe Magnifico) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: DBI wrapper In-Reply-To: <00bd01c007a2$d7eb1ca0$28e842cf@iwebx1> Message-ID: You should look at the Alzabo project, whose Runtime subsection has such aspirations... http://alzabo.sourceforge.net/ http://sourceforge.net/projects/alzabo/ It hasn't seen much action over the past couple months (last release July 4th), possibly because nobody knew it existed. Even if you don't use its code, it's a good start when considering how to abstract the many complexities that you'd quickly run into. -jp On Wed, 16 Aug 2000, John Cokos wrote: > a Wrapper for DBI. I've gotten a good start on this, but it's > really a mess and needs TLC. Anyone that's coded with DBD > can relate to it's shortcommings, and how much code it can take > to get simple things done. [...] > Proposed Module Method: > my ($statuscode, $message) = $sql->isql_update_table( > table=>'sometable', values=>\%input ); > print $message if( ! $statuscode ); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From chris at enthusiasm.com Wed Aug 16 13:25:40 2000 From: chris at enthusiasm.com (Christopher Cavnor) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN References: <00bd01c007a2$d7eb1ca0$28e842cf@iwebx1> Message-ID: <399ADCA4.BDEE82BB@enthusiasm.com> I would tend to align with this project. I have written a small mod with an OO interface that allows acts as a DBI wrapper for the application that uses it. The interface is generified and allows overloading (so that you can call $db_wrap->select() and get all results, or call $db_wrap->select(\%query) - where %query is a hash of column = value so that the select statement becomes "select * from table where column = value"). The mod is limited, but could be used as a proof of bigger and better things. -- Christopher Cavnor Software Design Engineer Enthusiasm.com John Cokos wrote: > Apologies, my finger slipped and I sent the mail before I finished it... > > Just some thoughts on the CPAN module to be written ... > > We kicked around a few ideas last evening, but never really > came to a final resolution on what the actual project will > be. Seems like there were a lot of application ideas presented, > but not many actual usable module ideas. > > So perhaps we could think of dividing our efforts into 2 parts > one: an appication, and two: a generic usable module. > > My personal preference is a module. My proposal is one > that I mentioned to a few people at Rock Bottom after the meeting: > > a Wrapper for DBI. I've gotten a good start on this, but it's > really a mess and needs TLC. Anyone that's coded with DBD > can relate to it's shortcommings, and how much code it can take > to get simple things done. The module I propose is a wrapper. > > Consider: > Current DBI Method: > > return("Some error") if($input{somevalue} !~ /someregexp/); > .... and so on for each field. > > my $SQL = qq^ > UPDATE sometable SET > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > somecolumn = '$input{somevalue}', > ...... > ^; > $sth = $dbh->prepare($SQL); > $rc = $sth->execute; > > if($DBI::errstr) { print "Failure .... \n"; } > else { print "OK\n"; } > > Proposed Module Method: > my ($statuscode, $message) = $sql->isql_update_table( table=>'sometable', values=>\%input ); > print $message if( ! $statuscode ); > > Much less code, for the developer (especially considering that a typical SQL > aplication has many many different inserts and updates like that one throughout > the code), and a consistent back end that > would match the input to the table rows, do error checking, input validation, > etc.....and retun a meaningful error message. > > Routines like that could be / should be written to handle selects statements > that give you the data as you want it instead of only one of the 3 ways DBD > allows for now, insert statements that do the extensive validations that the update > routine does, schema management, etc. > > Thoughts? > > John > ======================================== > John Cokos, President / CEO: iWeb Inc. > http://www.iwebsys.com > jcokos@ccs.net > ======================================== > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From algard at cardomain.com Wed Aug 16 13:27:20 2000 From: algard at cardomain.com (Alex Algard) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: DBI shortcomings In-Reply-To: <00df01c007a7$96f8bb30$28e842cf@iwebx1> Message-ID: > Agreed, but theres no error checking/validation built in. IMHO, I think it would be difficult to efficiently do much meaningful error checking/validation in a generic interface. Data type checks might be an option, but they wouldn't work across all DBI databases. ________________________ Alex Algard CarDomain Networks, Inc. 425-820-2244 x11 | fax: 425-820-5951 algard@cardomain.com > -----Original Message----- > From: owner-spug-list@pm.org [mailto:owner-spug-list@pm.org]On Behalf Of > John Cokos > Sent: Wednesday, August 16, 2000 10:30 AM > To: Aryeh "Cody" Sherr > Cc: B.Ingerson@epixtech.com; spug-list@pm.org > Subject: SPUG: Re: DBI shortcomings > > Agreed, but theres no error checking/validation built in. > And what if you want back an array of hashrefs? Can't > do that with DBD, but with a wrapper, you sure can. > > John > ======================================== > John Cokos, President / CEO: iWeb Inc. > http://www.iwebsys.com > jcokos@ccs.net > ======================================== > > ----- Original Message ----- > From: "Aryeh "Cody" Sherr" > To: "John Cokos" > Cc: ; > Sent: Wednesday, August 16, 2000 10:33 AM > Subject: DBI shortcomings > > > > > > Actually, there are some often overlooked shortcuts in DBI that I would > > like to share in response to your statement that DBI is long winded: > > > > $dbh->do($statement, \%attr, @bind_vals) > > do prepares, binds, and executes a non SELECT statement > > so your example would be: > > > > $dbh->do("UPDATE some_table SET cola=?, colb=?", undef, $vara, $varb); > > > > in one line. if you use bind variables, you also don't have to > quote the > > values in $vara and $varb to prevent them from mangling your SQL > > statement, quicker and less error prone. > > > > @my_arr = selectrow_array($statement, \%attr, @bind_vals) > > > > selectrow_array prepares a SELECT statement, binds the values, > and fetches > > your first row back all in one statement. > > > > There are more, such as prepared statement handles, the NAME_lc and > > NAME_uc attributes, and several other functions that not only take fewer > > lines of code but are also easier, faster, and more efficient. For > > sources, I recommend the DBI man page or the Perl DBI book from Oreilly. > > > > Cody Sherr > > > > > > On Wed, 16 Aug 2000, John Cokos wrote: > > > Just some thoughts on the CPAN module to be written ... > > > > > > We kicked around a few ideas last evening, but never really > > > came to a final resolution on what the actual project will > > > be. Seems like there were a lot of application ideas presented, > > > but not many actual usable module ideas. > > > > > > So perhaps we could think of dividing our efforts into 2 parts > > > one: an appication, and two: a generic usable module. > > > > > > My personal preference is a module. My proposal is one > > > that I mentioned to a few people at Rock Bottom after the meeting: > > > > > > a Wrapper for DBI. I've gotten a good start on this, but it's > > > really a mess and needs TLC. Anyone that's coded with DBD > > > can relate to it's shortcommings, and how much code it can take > > > to get simple things done. The module I propose is a wrapper. > > > > > > Consider: > > > Current DBI Way: > > > my $SQL = qq^ > > > UPDATE sometable SET > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > > > > ^; > > > ======================================== > > > John Cokos, President / CEO: iWeb Inc. > > > http://www.iwebsys.com > > > jcokos@ccs.net > > > ======================================== > > > > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - > > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > > Replace ACTION by subscribe or unsubscribe, EMAIL by your > Email-address > > > For full traffic, use spug-list for LIST ; otherwise use > spug-list-digest > > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Wed Aug 16 13:51:16 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN Message-ID: Vince, A new mailing list is being worked on by John Cokos as I write. Please bear with us for just a short time, and the spug-list will resume to "our normally scheduled program". Pardon the dust, Brian "Skahan, Vince" @pm.org on 08/16/2000 10:19:45 AM Sent by: owner-spug-list@pm.org To: spug-list@pm.org cc: Subject: RE: SPUG: spug CPAN Would it be maybe possible for you to set up another mailing list for folks who care about this stuff so we all don't get each message ? It's turning into SPAM for me personally at least. While I'm interested, I sure don't want to see 20 messages a day about it. A pointer to a web page to peek at once in a while would be plenty. Any help would be greatly appreciated. -- -------- Vince.Skahan@boeing.com ------ http://bcstec.ca.boeing.com/~vds/ ------------- Boeing Shared Services Group - Technical Services outside Boeing - http://www.halcyon.com/vince - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From asherr at cs.unm.edu Wed Aug 16 13:55:18 2000 From: asherr at cs.unm.edu (Aryeh "Cody" Sherr) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: DBI shortcomings In-Reply-To: <00df01c007a7$96f8bb30$28e842cf@iwebx1> Message-ID: Good points. $DBI::err and RaiseError facilities are pretty basic. The only explanation I've seen of this is that these are the greates common denominator between all the DBD database modules. How could these be improved? The getting all results back as an array of hash references would be a nice feature, however, my understanding is that each hash still has to be built by the DBI, and having to create all of those columns as keys would be very costly. It might be cool to have a function that returns an array of tied hashes, and those hashes index the array that selectall() returns. It would be convenient, and more efficient. cody On Wed, 16 Aug 2000, John Cokos wrote: > Agreed, but theres no error checking/validation built in. > And what if you want back an array of hashrefs? Can't > do that with DBD, but with a wrapper, you sure can. > > John > ======================================== > John Cokos, President / CEO: iWeb Inc. > http://www.iwebsys.com > jcokos@ccs.net > ======================================== > > ----- Original Message ----- > From: "Aryeh "Cody" Sherr" > To: "John Cokos" > Cc: ; > Sent: Wednesday, August 16, 2000 10:33 AM > Subject: DBI shortcomings > > > > > > Actually, there are some often overlooked shortcuts in DBI that I would > > like to share in response to your statement that DBI is long winded: > > > > $dbh->do($statement, \%attr, @bind_vals) > > do prepares, binds, and executes a non SELECT statement > > so your example would be: > > > > $dbh->do("UPDATE some_table SET cola=?, colb=?", undef, $vara, $varb); > > > > in one line. if you use bind variables, you also don't have to quote the > > values in $vara and $varb to prevent them from mangling your SQL > > statement, quicker and less error prone. > > > > @my_arr = selectrow_array($statement, \%attr, @bind_vals) > > > > selectrow_array prepares a SELECT statement, binds the values, and fetches > > your first row back all in one statement. > > > > There are more, such as prepared statement handles, the NAME_lc and > > NAME_uc attributes, and several other functions that not only take fewer > > lines of code but are also easier, faster, and more efficient. For > > sources, I recommend the DBI man page or the Perl DBI book from Oreilly. > > > > Cody Sherr > > > > > > On Wed, 16 Aug 2000, John Cokos wrote: > > > Just some thoughts on the CPAN module to be written ... > > > > > > We kicked around a few ideas last evening, but never really > > > came to a final resolution on what the actual project will > > > be. Seems like there were a lot of application ideas presented, > > > but not many actual usable module ideas. > > > > > > So perhaps we could think of dividing our efforts into 2 parts > > > one: an appication, and two: a generic usable module. > > > > > > My personal preference is a module. My proposal is one > > > that I mentioned to a few people at Rock Bottom after the meeting: > > > > > > a Wrapper for DBI. I've gotten a good start on this, but it's > > > really a mess and needs TLC. Anyone that's coded with DBD > > > can relate to it's shortcommings, and how much code it can take > > > to get simple things done. The module I propose is a wrapper. > > > > > > Consider: > > > Current DBI Way: > > > my $SQL = qq^ > > > UPDATE sometable SET > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > somecolumn = '$input{somevalue}', > > > > > > ^; > > > ======================================== > > > John Cokos, President / CEO: iWeb Inc. > > > http://www.iwebsys.com > > > jcokos@ccs.net > > > ======================================== > > > > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > > > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > > > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 14:01:02 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: DBI shortcomings References: Message-ID: <016601c007b4$52c517d0$28e842cf@iwebx1> They could very easily be improved. Think out of the "developer" mode and into "end user" mode. You write an app, that has a form that a user inputs data into and your app updates or inserts accordingly. The user enters "A1235" as their zip code, and your insert/update will bomb, and DBI::errstr will return a nice generic warning. With a wrapper, you could do the call as I'd proposed, and before running the insert (based on a schema/definition file) the routine would look at it, and retun an error that states: Your entry of [entry value] for the [fieldname] contains non numeric data, please re-enter Much more meaningful to the user, and you save the expense of the sqlengine trying and failing. On a busy application, that expense could be quite a large savings. That's only a simple example, and you could programatically replicate the error checking in your regular program, but encapsulating it into a single line call would be beautiful. John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== ----- Original Message ----- From: "Aryeh "Cody" Sherr" To: "John Cokos" Cc: ; Sent: Wednesday, August 16, 2000 11:55 AM Subject: Re: SPUG: Re: DBI shortcomings > > Good points. $DBI::err and RaiseError facilities are pretty basic. The > only explanation I've seen of this is that these are the greates common > denominator between all the DBD database modules. How could these be > improved? The getting all results back as an array of hash references > would be a nice feature, however, my understanding is that each hash still > has to be built by the DBI, and having to create all of those columns > as keys would be very costly. > > It might be cool to have a function that returns an array of tied hashes, > and those hashes index the array that selectall() returns. It would be > convenient, and more efficient. > > cody > > > On Wed, 16 Aug 2000, John Cokos wrote: > > > Agreed, but theres no error checking/validation built in. > > And what if you want back an array of hashrefs? Can't > > do that with DBD, but with a wrapper, you sure can. > > > > John > > ======================================== > > John Cokos, President / CEO: iWeb Inc. > > http://www.iwebsys.com > > jcokos@ccs.net > > ======================================== > > > > ----- Original Message ----- > > From: "Aryeh "Cody" Sherr" > > To: "John Cokos" > > Cc: ; > > Sent: Wednesday, August 16, 2000 10:33 AM > > Subject: DBI shortcomings > > > > > > > > > > Actually, there are some often overlooked shortcuts in DBI that I would > > > like to share in response to your statement that DBI is long winded: > > > > > > $dbh->do($statement, \%attr, @bind_vals) > > > do prepares, binds, and executes a non SELECT statement > > > so your example would be: > > > > > > $dbh->do("UPDATE some_table SET cola=?, colb=?", undef, $vara, $varb); > > > > > > in one line. if you use bind variables, you also don't have to quote the > > > values in $vara and $varb to prevent them from mangling your SQL > > > statement, quicker and less error prone. > > > > > > @my_arr = selectrow_array($statement, \%attr, @bind_vals) > > > > > > selectrow_array prepares a SELECT statement, binds the values, and fetches > > > your first row back all in one statement. > > > > > > There are more, such as prepared statement handles, the NAME_lc and > > > NAME_uc attributes, and several other functions that not only take fewer > > > lines of code but are also easier, faster, and more efficient. For > > > sources, I recommend the DBI man page or the Perl DBI book from Oreilly. > > > > > > Cody Sherr > > > > > > > > > On Wed, 16 Aug 2000, John Cokos wrote: > > > > Just some thoughts on the CPAN module to be written ... > > > > > > > > We kicked around a few ideas last evening, but never really > > > > came to a final resolution on what the actual project will > > > > be. Seems like there were a lot of application ideas presented, > > > > but not many actual usable module ideas. > > > > > > > > So perhaps we could think of dividing our efforts into 2 parts > > > > one: an appication, and two: a generic usable module. > > > > > > > > My personal preference is a module. My proposal is one > > > > that I mentioned to a few people at Rock Bottom after the meeting: > > > > > > > > a Wrapper for DBI. I've gotten a good start on this, but it's > > > > really a mess and needs TLC. Anyone that's coded with DBD > > > > can relate to it's shortcommings, and how much code it can take > > > > to get simple things done. The module I propose is a wrapper. > > > > > > > > Consider: > > > > Current DBI Way: > > > > my $SQL = qq^ > > > > UPDATE sometable SET > > > > somecolumn = '$input{somevalue}', > > > > somecolumn = '$input{somevalue}', > > > > somecolumn = '$input{somevalue}', > > > > somecolumn = '$input{somevalue}', > > > > somecolumn = '$input{somevalue}', > > > > somecolumn = '$input{somevalue}', > > > > > > > > ^; > > > > ======================================== > > > > John Cokos, President / CEO: iWeb Inc. > > > > http://www.iwebsys.com > > > > jcokos@ccs.net > > > > ======================================== > > > > > > > > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > > > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > > > > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > > > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > > > > > > > > > > > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 14:02:35 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN References: <00bd01c007a2$d7eb1ca0$28e842cf@iwebx1> <399ADCA4.BDEE82BB@enthusiasm.com> Message-ID: <016e01c007b4$8a0205f0$28e842cf@iwebx1> What I've got so far is about a 80% implementation of it but needs more hands in the pot to think of things that I've forgotten or overlooked, and some TLC. I started it about 6 months ago, when I was first learning OOP, and now with a higher skillset (and others to help out), it could be trimmed down, and made more efficient. John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== ----- Original Message ----- From: "Christopher Cavnor" To: "John Cokos" Cc: Sent: Wednesday, August 16, 2000 11:25 AM Subject: Re: SPUG: spug CPAN > I would tend to align with this project. I have written a small mod with an OO interface that > allows acts as a DBI wrapper for the application that uses it. The interface is generified and > allows overloading (so that you can call $db_wrap->select() and get all results, or call > $db_wrap->select(\%query) - where %query is a hash of column = value so that the select statement > becomes "select * from table where column = value"). > > The mod is limited, but could be used as a proof of bigger and better things. > -- > Christopher Cavnor > Software Design Engineer > Enthusiasm.com > > > John Cokos wrote: > > > Apologies, my finger slipped and I sent the mail before I finished it... > > > > Just some thoughts on the CPAN module to be written ... > > > > We kicked around a few ideas last evening, but never really > > came to a final resolution on what the actual project will > > be. Seems like there were a lot of application ideas presented, > > but not many actual usable module ideas. > > > > So perhaps we could think of dividing our efforts into 2 parts > > one: an appication, and two: a generic usable module. > > > > My personal preference is a module. My proposal is one > > that I mentioned to a few people at Rock Bottom after the meeting: > > > > a Wrapper for DBI. I've gotten a good start on this, but it's > > really a mess and needs TLC. Anyone that's coded with DBD > > can relate to it's shortcommings, and how much code it can take > > to get simple things done. The module I propose is a wrapper. > > > > Consider: > > Current DBI Method: > > > > return("Some error") if($input{somevalue} !~ /someregexp/); > > .... and so on for each field. > > > > my $SQL = qq^ > > UPDATE sometable SET > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > somecolumn = '$input{somevalue}', > > ...... > > ^; > > $sth = $dbh->prepare($SQL); > > $rc = $sth->execute; > > > > if($DBI::errstr) { print "Failure .... \n"; } > > else { print "OK\n"; } > > > > Proposed Module Method: > > my ($statuscode, $message) = $sql->isql_update_table( table=>'sometable', values=>\%input ); > > print $message if( ! $statuscode ); > > > > Much less code, for the developer (especially considering that a typical SQL > > aplication has many many different inserts and updates like that one throughout > > the code), and a consistent back end that > > would match the input to the table rows, do error checking, input validation, > > etc.....and retun a meaningful error message. > > > > Routines like that could be / should be written to handle selects statements > > that give you the data as you want it instead of only one of the 3 ways DBD > > allows for now, insert statements that do the extensive validations that the update > > routine does, schema management, etc. > > > > Thoughts? > > > > John > > ======================================== > > John Cokos, President / CEO: iWeb Inc. > > http://www.iwebsys.com > > jcokos@ccs.net > > ======================================== > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 14:47:04 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Sourceforge .... Message-ID: <019f01c007ba$c0d17d80$28e842cf@iwebx1> I thought it'd be interesting for everyone (maybe educational) to chronicle what I'm doing with sourceforge. 1. I went to sourceforge.com and setup an account for myself, and registered "spug1" for the DBD Wrapper project. I did this mainly so I could actually get logged in and see the backend, and start monkeying with it on their site, not to be assumptive that we're actually taking on my DBD idea.... I'm waiting for them to approve it, and turn our "app" on so we'll have access to it. More to come later on this. 2. I download the sourceforge apps, and am doing the install here on my local linux box..... I had to recompile apache with php support Once done, I made a new virtualhost to point to the sourceforge installation directory (it was simply untarring their files, no install really needed) Now for the fun part, making it work...... John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Wed Aug 16 15:25:39 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: Sourceforge .... References: <019f01c007ba$c0d17d80$28e842cf@iwebx1> Message-ID: <022d01c007c0$2474e610$28e842cf@iwebx1> > Now for the fun part, making it work...... ugh ... PHP. Sourceforge has hardcoded direct Image URLs to their servers all throughout the .php sourcecode, so I'm having to manually go through each file and make all of the image paths relative. Under normal circumstances, this wouldn't be a big deal. But they way they have this thing put together, there's html templates stored inside the SQL database, so the image calls are comming from there. Further, they have their php code set to examine each image to predetermine the proper height and width. Well, since they have everything pointed from images.sourceforge.net, what the php is trying to do is download each image to a tmp directory, examine it, and then draw html with height and width tags. If images.sourceforge.net was a real domain, that'd be peachy, but it's only responding to requests originating from www.sourceforge.net meaning we can't get to them. And around the circle we go.... One of the things I hate about php (and .asp, and .cfm) is that when you depend on the server to parse and execute code within the pages, you not only stress the server, but you tend to get strange results. With normal .cgi you either get a page or a 500 err. With PHP, when a query bombs, or something else goes wrong (as with the image issue above), you get no error, just a page that loads forever, in an infinite loop, waiting for a response from a nonexistant server! Bash on CGI all you want, but atleast you can depend on it. ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tuck at whistlingfish.net Wed Aug 16 15:54:03 2000 From: tuck at whistlingfish.net (Matt Tucker) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Seattleperl.com In-Reply-To: <009f01c007a1$1a637a70$28e842cf@iwebx1> Message-ID: <15440000.966459243@benzene> -- John Cokos spake thusly: > 2. Seattleperl.com > The domain is up, I added a cpan@seattleperl.com mailing list > to it (you can signup from the website). For now, we can > just monkey with it until we decide that this is the list we actually > want to use for this. Also, the "job board" is up and running there > now. I would like to see us move the current web content to > this domain, there's an online html editor there for whoever > will be the maintainer of content (Tim?) Bad timing, I know, but shouldn't this be seattleperl.org? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From casey at haakenson.com Wed Aug 16 15:57:21 2000 From: casey at haakenson.com (casey@haakenson.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: Sourceforge .... In-Reply-To: <022d01c007c0$2474e610$28e842cf@iwebx1> References: <019f01c007ba$c0d17d80$28e842cf@iwebx1> Message-ID: <3.0.6.32.20000816135721.00a06930@web-c.com> You could get around all requests coming from your box by tweaking your /etc/hosts file to point images.sourceforge.net to a local IP, just have apache setup to VirtualHost that IP to the right DocumentRoot on your system to match their directory structure. That way all requests from the PHP engine to images.sourceforge.net will be handled. Not pretty, but it should work. You will still have to change the hardcoded references in the HTML, I don't have any good ideas on that. -Casey At 01:25 PM 8/16/00 -0700, John Cokos wrote: >> Now for the fun part, making it work...... > >ugh ... PHP. > >Sourceforge has hardcoded direct Image URLs to their servers >all throughout the .php sourcecode, so I'm having to manually >go through each file and make all of the image paths relative. > >Under normal circumstances, this wouldn't be a big deal. But >they way they have this thing put together, there's html templates >stored inside the SQL database, so the image calls are comming >from there. Further, they have their php code set to examine each >image to predetermine the proper height and width. Well, since >they have everything pointed from images.sourceforge.net, what >the php is trying to do is download each image to a tmp directory, >examine it, and then draw html with height and width tags. >If images.sourceforge.net was a real domain, that'd be peachy, but >it's only responding to requests originating from www.sourceforge.net >meaning we can't get to them. And around the circle we go.... > > > One of the things I hate about php (and .asp, and .cfm) is that > when you depend on the server to parse and execute code within > the pages, you not only stress the server, but you tend to get > strange results. With normal .cgi you either get a page or a 500 err. > With PHP, when a query bombs, or something else goes wrong > (as with the image issue above), you get no error, just a page > that loads forever, in an infinite loop, waiting for a response from > a nonexistant server! > > Bash on CGI all you want, but atleast you can depend on it. > > > >======================================== > John Cokos, President / CEO: iWeb Inc. > http://www.iwebsys.com > jcokos@ccs.net >======================================== > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From scott at sabmail.rresearch.com Wed Aug 16 16:15:53 2000 From: scott at sabmail.rresearch.com (Scott Blachowicz) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Re: Sourceforge .... In-Reply-To: <3.0.6.32.20000816135721.00a06930@web-c.com> References: <019f01c007ba$c0d17d80$28e842cf@iwebx1> <022d01c007c0$2474e610$28e842cf@iwebx1> <3.0.6.32.20000816135721.00a06930@web-c.com> Message-ID: <20000816141553.A3467@sabami.seaslug.org> On Wed, Aug 16, 2000 at 01:57:21PM -0700, casey@haakenson.com wrote: > You could get around all requests coming from your box by tweaking your > /etc/hosts file to point images.sourceforge.net to a local IP, just have > apache setup to VirtualHost that IP to the right DocumentRoot on your > system to match their directory structure. That way all requests from the > PHP engine to images.sourceforge.net will be handled. Not pretty, but it > should work. Or wave a little perl over the code... find . -type f \( -name '*.php' -o -name '*.htm*' \) -print | xargs grep -l 'images\.sourceforge\.net' | xargs perl -pi.bak -e 's/images\.sourceforge\.net/images.seattleperl.com/g' which doesn't handle the case of no files matching that 'grep', but it's enough to illustrate. The perl "-i.bak" file will do in-place editing of the file, leaving the original in a FILENAME.bak file. The "-p" option wraps the perl code in a loop that takes care of printing each line after the content of the loop is executed. The content of the loop is provided by the "-e '...'" option. Scott - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From smorton at pobox.com Wed Aug 16 16:28:46 2000 From: smorton at pobox.com (Sanford Morton) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: More module ideas Message-ID: <14747.1934.550617.874504@evrtwa1-ar4-128-245.dsl.gtei.net> More E/Spug CPAN module ideas, as if you didn't have enough. I'll be happy to donate any or all of my stuff, which can be found at http://www.pobox.com/~smorton/modules These are probably a bit different from other proposals. The first two are already on CPAN, but there's lots more to do on all. Chart::Plot Chart::Plot is a Perl module that will create graphs of two dimensional datasets. Statistics::OLS Statistics::OLS is a Perl module that will perform ordinary least squares on two dimensional data and calculate some related bivariate statistics. cgidebug.pm cgidebug.pm allows a remote web server to launch an interactive X terminal on your workstation with the perl debugger running on your cgi script and the form data preloaded. A Tour of References, Modules and Objects This is a quick tour of objects in Perl, including a couple of necessary prerequisites, references and modules. Regards, Sandy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From shivan at ici.net Wed Aug 16 16:30:51 2000 From: shivan at ici.net (Mike) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Seattleperl.com In-Reply-To: <15440000.966459243@benzene> References: <009f01c007a1$1a637a70$28e842cf@iwebx1> Message-ID: <4.3.2.7.2.20000816142959.0168b588@pop.ici.net> We could also get: spug.wa.us or seattleperl.wa.us and .STATE.us domains are free At 01:54 PM 8/16/2000 -0700, Matt Tucker wrote: >-- John Cokos spake thusly: > >>2. Seattleperl.com >>The domain is up, I added a cpan@seattleperl.com mailing list >>to it (you can signup from the website). For now, we can >>just monkey with it until we decide that this is the list we actually >>want to use for this. Also, the "job board" is up and running there >>now. I would like to see us move the current web content to >>this domain, there's an online html editor there for whoever >>will be the maintainer of content (Tim?) > >Bad timing, I know, but shouldn't this be seattleperl.org? > > > > > > >- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address >For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From dbitsef at uswest.com Wed Aug 16 16:34:18 2000 From: dbitsef at uswest.com (David Bitseff) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Inline.pm is on th CPAN (and other SPUG-dev) In-Reply-To: <20000816095223.A93256@sabami.seaslug.org> References: <20000816095223.A93256@sabami.seaslug.org> Message-ID: <14747.2266.498296.926285@maakie.uswc.uswest.com> I think the one-liner thing would be preatty cool. Once you had a working module a shell module could be written to query, run, upgrade, etc.. your working set of one-liners. It would work much the same as the DBI::Shell or the CPAN shell. Good idea?? >> On Wed, Aug 16, 2000 at 07:46:55AM -0700, >> B.Ingerson@epixtech.com wrote: >> So, if there's any interest in doing the one-liner thing, I'd be >> happy to get it rolling in a very minimal fashion. I suspect (and >> hope) that every bit of it would get rewritten by the group. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From smorton at pobox.com Wed Aug 16 17:33:12 2000 From: smorton at pobox.com (Sanford Morton) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Web bots and authentication cookies Message-ID: <14747.5800.207188.924438@evrtwa1-ar4-128-245.dsl.gtei.net> Recently I've seen more web sites which use cookies for password authentication. You log into a login page (a web form) on the site, and if successful, a cookie is returned and saved. A valid cookie then becomes your authentication for content pages on the site. This has some advantages over standard htpasswd-type authentication: you can control the expiration more finely (eg, saving it across sessions) and you can do the login on a secure server, then transfer further pages to a faster, unsecured server. The Wall Street Journal does the former, my futures broker (Lind-Waldock) the latter, though I'm not real confident that this is very secure. But this makes for more complex web robots. I've got it working, so I thought I'd share the logic. (I also have a Net::IRC interface if anyone's interested.) Essentially, a login function submits the web form with your username and password, and saves the cookie contained in the response header. Then you browse other pages after retrieving the cookie. Hope this is useful--comments are welcome. --Sandy #!/usr/bin/perl -w my $username= 'xxx'; my $password = 'yyy'; use LWP::UserAgent; use HTTP::Cookies; use strict; $|=1; # create a cookie jar in a file my $jar = HTTP::Cookies->new ('file' => 'my.LWP.cookies', 'autosave' => 1); # url of the login page my $login_url = 'http://.../login.html'; # login, get and save cookie login($login_url, $jar, $username, $password); # page we want to repeatedly poll for new news items my $url = 'http://.../news.html'; my $req = new HTTP::Request ('GET', $url); # add the cookie into the current request $jar->add_cookie_header($req); my $ua = new LWP::UserAgent; my $resp; my ($s,$m,$h); while (1) { $resp = $ua->request($req); if ($resp->is_success) { # analyze the news page, printing only new items process_page( $resp->as_string ); } else { die $resp->as_string; } # report the time as a counter to see if we're still alive # (bots often time out or otherwise fail) ($s,$m,$h) = localtime(time); print " $h:$m "; sleep 60; } # logs in, sets cookies in cookie jar sub login { my ($url, $jar, $username, $password) = @_; my $ua = new LWP::UserAgent; my $req = new HTTP::Request ('POST', $url); # The login page is a web form, where you enter username/password. # Set the content for this request by looking carefully at the source # of the form, including hidden elements. $req->content_type('application/x-www-form-urlencoded'); $req->content("Username=$username&Password=$password&x=1&y=1"); my $resp = $ua->request($req); if ($resp->is_success or $resp->is_redirect) { # extract the cookie from the response and save to cookie jar $jar->extract_cookies($resp); $jar->save; } else { die $resp->as_string; } 1; } # process the news page, remembers last item, prints output if new item # in this case, new items are listed in order above older items on the page { my $last_seen_item = ''; sub process_sp_page { # split on whatever is the news item separator on the page # you may need to cut header material first for (split //is, $_[0]) { # have we already seen the first item on the page? # if not, it must be new return 0 if $last_seen_item eq $_; $last_seen_item = $_; # remove html, format it nicely # ..... print "\n$_\n\n"; } } } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From dbitsef at uswest.com Wed Aug 16 16:34:18 2000 From: dbitsef at uswest.com (David Bitseff) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Inline.pm is on th CPAN (and other SPUG-dev) In-Reply-To: <20000816095223.A93256@sabami.seaslug.org> References: <20000816095223.A93256@sabami.seaslug.org> Message-ID: <14747.2266.498296.926285@maakie.uswc.uswest.com> I think the one-liner thing would be preatty cool. Once you had a working module a shell module could be written to query, run, upgrade, etc.. your working set of one-liners. It would work much the same as the DBI::Shell or the CPAN shell. Good idea?? >> On Wed, Aug 16, 2000 at 07:46:55AM -0700, >> B.Ingerson@epixtech.com wrote: >> So, if there's any interest in doing the one-liner thing, I'd be >> happy to get it rolling in a very minimal fashion. I suspect (and >> hope) that every bit of it would get rewritten by the group. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Wed Aug 16 18:29:38 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Inline.pm for Windows! Message-ID: FYI, Inline.pm 0.23 works on the MSWin32 platform. You need Microsoft Visual C++. Here's what I tested with: Windows NT 4.0 sp5 Visual C++ 6.0 (w/ nmake utility) (This is what ActiveState uses to build ActivePerl) Perl 5.005_03 (ActiveState ActivePerl Build 522) I only needed to tweak about 12 lines of code. And best of all, I didn't ever even need to check what OS I'm running on. ($Config{osname} eq 'MSWin32') See, Tim, portable coding is not that hard. 8-} You should see it on CPAN tommorrow. Brian PS One bummer. The compile phase is an order of magnitude slower. :-( (Maybe gcc for windows is faster) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From wyllie at newsof.com Wed Aug 16 20:25:24 2000 From: wyllie at newsof.com (Andrew Wyllie) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: [JOB]: Seattle - perl/mod_perl programmer Message-ID: <20000816182524.O387@www.newsofgroup.com> The NewSof Group is a Seatlle based company specializing in Content Development and building web based communities. We currently are looking for a Perl Programmer (~3+ yrs exp.) comfortable with working in a UNIX environment to help us build community/collaboration, asset managment and reporting tools. Experience with mod_perl or an interest in learning and using mod_perl required. Experience with MySQL or another SQL based database (using DBI) would also be nice. We are a telecomuting based company, but we will require applicants live in the Seattle area for occasional meetings at the local Tully's. You can check out our website at http://www.newsof.com - BUT beware, it has not been updated in quite a while. You can see some of the work we have done for the American Cancer Society at http://www.acscsn.org (totally mod_perl based site). If you are interested, please forward a resume directly to me at wyllie@newsof.com Thanks, Andrew Wyllie ............................................................................... Andrew Wyllie Open Source Integrator v.206.729.7439 __We can catify or stringify, c.206.851.9876 separately or together!__ perl-5.005_03 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From andy at n2h2.com Wed Aug 16 21:45:14 2000 From: andy at n2h2.com (Andrew Sweger) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN In-Reply-To: <71D105274EA7D011905700805FFECA5906B8F135@xch-sea-10.ca.boeing.com> Message-ID: Is it really that bad? I mean, it is *not* SPAM. It's SPUG. A bunch of people discussing Perl projects on the Seattle __Perl__ Users Group list. Sure, we'll take this to our new list when that's all squared away. But, really, we're on charter. This list has been fairly quiet for a long time (and I've been here since before the start of SPUG). It's not like it's some social chat board like some other Perl Monger groups I could name. So, anyone see what Buffy did? ;) I suppose if it's really turning into SPAM for you, you're probably aware of your options. But before you do that, several people here would like to hear what you hope to gain from your subscription to this list. On Aug 16, 2000 @ 10:19am, Skahan, Vince wrote: > Would it be maybe possible for you to set up another mailing list > for folks who care about this stuff so we all don't get each message ? > > It's turning into SPAM for me personally at least. While I'm interested, > I sure don't want to see 20 messages a day about it. A pointer to a > web page to peek at once in a while would be plenty. > > Any help would be greatly appreciated. -- Andrew Sweger | N2H2, Incorporated Systems Architect | 900 Fourth Avenue, Suite 3400 Advanced Technologies Division | Seattle WA 98164-1059 v=206.336.2947 f=206.336.1541 | http://www.n2h2.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From drmsofhv at hotmail.com Thu Aug 17 01:43:44 2000 From: drmsofhv at hotmail.com (alan strahsburg) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: perl & asp Message-ID: I know there's got to be an easy answer to this, but I have a client that is running ASP with Perl rather than vbscript, While I'm familiar with ASP-vbscript, and familiar with perlscript, I'm having trouble combining the ASP and Perl, namely I have a value imported from form contents using $user = $Request->Form("User"); when $user is checked imediately after this has has the correct value. when I pass it to the sub and check it, it is usually still good, but once I try to concatonate it with another string, it turns into what appears to be a hash ref to WIN32::OLE ex. WIN32::OLE(0xblahblah). I've tried to use 2 different methods to concatonate. $fullpath = $thatpath.$user ($fullpath would now be = to something like 'c:\blah\WIN32::OLE(0x3593a79)' and the same thing with trying to use a join. any help greatly appreciated. ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From dave at dave.org.uk Thu Aug 17 05:19:21 2000 From: dave at dave.org.uk (Dave Cross) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN Message-ID: <170800230.11960@webbox.com> From: Andrew Sweger Date: 8/16/00 7:45:14 PM > Is it really that bad? I mean, it is *not* SPAM. It's > SPUG. A bunch of people discussing Perl projects on the > Seattle __Perl__ Users Group list. Sure, we'll take this > to our new list when that's all squared away. But, > really, we're on charter. This list has been fairly quiet > for a long time (and I've been here since before the > start of SPUG). It's not like it's some social chat board > like some other Perl Monger groups I could name. Oy! I resemble that remark :) You're only saying that to drawn out the lurkers! > So, anyone see what Buffy did? ;) Don't go there. That way lies madness... Dave... -- European Perl Conference (Sept 22/24, ICA, London) "The chances of anything coming from Mars are a million to one", he said. But still they come. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From acme at astray.com Thu Aug 17 05:16:16 2000 From: acme at astray.com (Leon Brocard) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN In-Reply-To: <170800230.11960@webbox.com>; from dave@dave.org.uk on Thu, Aug 17, 2000 at 03:19:21AM -0700 References: <170800230.11960@webbox.com> Message-ID: <20000817111616.B7564@ns0.astray.com> Dave Cross sent the following bits through the ether: > You're only saying that to drawn out the lurkers! What lurkers? ;-P ObTopic: It strikes me that you could have an announcements list for people solely interested in annoucements about meetings or events... Leon -- Leon Brocard.............................http://www.astray.com/ yapc::Europe - September 22-24 London - http://yapc.org/Europe/ ... Error 404: .signature generator ran out of tuits - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From greg at mccarroll.demon.co.uk Thu Aug 17 09:05:38 2000 From: greg at mccarroll.demon.co.uk (Greg McCarroll) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN In-Reply-To: <20000817111616.B7564@ns0.astray.com>; from acme@astray.com on Thu, Aug 17, 2000 at 11:16:16AM +0100 References: <170800230.11960@webbox.com> <20000817111616.B7564@ns0.astray.com> Message-ID: <20000817150538.A12627@mccarroll.demon.co.uk> * Leon Brocard (acme@astray.com) wrote: > Dave Cross sent the following bits through the ether: > > > You're only saying that to drawn out the lurkers! > > What lurkers? ;-P > Did someone mention the 8uffster? Greg -- Greg McCarroll http://www.mccarroll.uklinux.net perl hacker | book collector | wannabee mailing list kook yapc::Europe - September 22-24, London - http://yapc.org/Europe/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From dha at panix.com Thu Aug 17 11:54:26 2000 From: dha at panix.com (David H. Adler) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN In-Reply-To: <20000817111616.B7564@ns0.astray.com>; from acme@astray.com on Thu, Aug 17, 2000 at 11:16:16AM +0100 References: <170800230.11960@webbox.com> <20000817111616.B7564@ns0.astray.com> Message-ID: <20000817125426.F12638@panix.com> On Thu, Aug 17, 2000 at 11:16:16AM +0100, Leon Brocard wrote: > Dave Cross sent the following bits through the ether: > > > You're only saying that to drawn out the lurkers! > > What lurkers? ;-P > > ObTopic: It strikes me that you could have an announcements list for > people solely interested in annoucements about meetings or events... Yeah, but that's no fun... :-) dha -- David H. Adler - - http://www.panix.com/~dha/ "If you want a real optimist, look up Ray Bradbury. Guy's nuts. He actually likes people." - David Brin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From Vince.Skahan at pss.boeing.com Thu Aug 17 12:00:20 2000 From: Vince.Skahan at pss.boeing.com (Skahan, Vince) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN Message-ID: <71D105274EA7D011905700805FFECA5906B8F142@xch-sea-10.ca.boeing.com> I'm not saying it's not on-charter, I'm suggesting it's perhaps time to move the discussion to a special interest (sub)list for those who want to participate at the detail level. I'd guess there have been maybe 50 messages or more discussing low-level arrangements once the decision to do something was made. My opinion is that 20+ messages a day at the detail level is a bit much, but that's just my opinion. I know how to hit 'delete' as needed :-) -- -------- Vince.Skahan@boeing.com ------ http://bcstec.ca.boeing.com/~vds/ ------------- Boeing Shared Services Group - Technical Services outside Boeing - http://www.halcyon.com/vince > ---------- > From: Andrew Sweger[SMTP:andy@n2h2.com] > Sent: Wednesday, August 16, 2000 7:45 PM > To: Skahan, Vince > Cc: spug-list@pm.org > Subject: RE: SPUG: spug CPAN > > Is it really that bad? I mean, it is *not* SPAM. It's SPUG. A bunch of > people discussing Perl projects on the Seattle __Perl__ Users Group list. > Sure, we'll take this to our new list when that's all squared away. But, > really, we're on charter. This list has been fairly quiet for a long time > (and I've been here since before the start of SPUG). It's not like it's > some social chat board like some other Perl Monger groups I could name. > > So, anyone see what Buffy did? ;) > > I suppose if it's really turning into SPAM for you, you're probably aware > of your options. But before you do that, several people here would like to > hear what you hope to gain from your subscription to this list. > > On Aug 16, 2000 @ 10:19am, Skahan, Vince wrote: > > > Would it be maybe possible for you to set up another mailing list > > for folks who care about this stuff so we all don't get each message ? > > > > It's turning into SPAM for me personally at least. While I'm interested, > > I sure don't want to see 20 messages a day about it. A pointer to a > > web page to peek at once in a while would be plenty. > > > > Any help would be greatly appreciated. > > -- > Andrew Sweger | N2H2, Incorporated > Systems Architect | 900 Fourth Avenue, Suite 3400 > Advanced Technologies Division | Seattle WA 98164-1059 > v=206.336.2947 f=206.336.1541 | http://www.n2h2.com/ > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Thu Aug 17 12:38:25 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: spug CPAN References: <71D105274EA7D011905700805FFECA5906B8F142@xch-sea-10.ca.boeing.com> Message-ID: <017101c00871$f20b08f0$28e842cf@iwebx1> Hahhhhh You should subscribe to our tech support list . 3000+ customers and 10 support guys generate about 1500 emails a day to my inbox. SPUG mail is barely noticeable.... John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== ----- Original Message ----- From: "Skahan, Vince" To: "'Andrew Sweger'" Cc: Sent: Thursday, August 17, 2000 10:00 AM Subject: RE: SPUG: spug CPAN > > I'm not saying it's not on-charter, I'm suggesting it's perhaps time to move the > discussion to a special interest (sub)list for those who want to participate > at the detail level. > > I'd guess there have been maybe 50 messages or more discussing > low-level arrangements once the decision to do something was made. > > My opinion is that 20+ messages a day at the detail level is a bit much, > but that's just my opinion. I know how to hit 'delete' as needed :-) > > -- > -------- Vince.Skahan@boeing.com ------ http://bcstec.ca.boeing.com/~vds/ ------------- > Boeing Shared Services Group - Technical Services > outside Boeing - http://www.halcyon.com/vince > > > > ---------- > > From: Andrew Sweger[SMTP:andy@n2h2.com] > > Sent: Wednesday, August 16, 2000 7:45 PM > > To: Skahan, Vince > > Cc: spug-list@pm.org > > Subject: RE: SPUG: spug CPAN > > > > Is it really that bad? I mean, it is *not* SPAM. It's SPUG. A bunch of > > people discussing Perl projects on the Seattle __Perl__ Users Group list. > > Sure, we'll take this to our new list when that's all squared away. But, > > really, we're on charter. This list has been fairly quiet for a long time > > (and I've been here since before the start of SPUG). It's not like it's > > some social chat board like some other Perl Monger groups I could name. > > > > So, anyone see what Buffy did? ;) > > > > I suppose if it's really turning into SPAM for you, you're probably aware > > of your options. But before you do that, several people here would like to > > hear what you hope to gain from your subscription to this list. > > > > On Aug 16, 2000 @ 10:19am, Skahan, Vince wrote: > > > > > Would it be maybe possible for you to set up another mailing list > > > for folks who care about this stuff so we all don't get each message ? > > > > > > It's turning into SPAM for me personally at least. While I'm interested, > > > I sure don't want to see 20 messages a day about it. A pointer to a > > > web page to peek at once in a while would be plenty. > > > > > > Any help would be greatly appreciated. > > > > -- > > Andrew Sweger | N2H2, Incorporated > > Systems Architect | 900 Fourth Avenue, Suite 3400 > > Advanced Technologies Division | Seattle WA 98164-1059 > > v=206.336.2947 f=206.336.1541 | http://www.n2h2.com/ > > > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From asherr at cs.unm.edu Thu Aug 17 17:42:48 2000 From: asherr at cs.unm.edu (Aryeh "Cody" Sherr) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Question: memory usage tracer Message-ID: Can anyone point me towards a module that will profile a cgi written in perl's memory usage? It would be particularly useful if I could print out a snapshot of the size of all variables at a given exection time. I poked around CPAN for a while, and didn't see anything. Thanks in advance for any suggestions, Cody - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 18 03:59:42 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Question: memory usage tracer Message-ID: Cody, Sounds like a good SPUG-dev project. I appoint you as project lead :-) You should Inline.pm and the perl Internal API. Brian "Aryeh \"Cody\" Sherr" @pm.org on 08/17/2000 03:42:48 PM Sent by: owner-spug-list@pm.org To: spug-list@pm.org cc: Subject: SPUG: Question: memory usage tracer Can anyone point me towards a module that will profile a cgi written in perl's memory usage? It would be particularly useful if I could print out a snapshot of the size of all variables at a given exection time. I poked around CPAN for a while, and didn't see anything. Thanks in advance for any suggestions, Cody - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 18 04:06:23 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:33 2004 Subject: SPUG: Question: memory usage tracer Message-ID: Cody, Sounds like a good SPUG-dev project. I appoint you as project lead :-) You should Inline.pm and the perl Internal API. Brian "Aryeh \"Cody\" Sherr" @pm.org on 08/17/2000 03:42:48 PM Sent by: owner-spug-list@pm.org To: spug-list@pm.org cc: Subject: SPUG: Question: memory usage tracer Can anyone point me towards a module that will profile a cgi written in perl's memory usage? It would be particularly useful if I could print out a snapshot of the size of all variables at a given exection time. I poked around CPAN for a while, and didn't see anything. Thanks in advance for any suggestions, Cody - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From starfire at zipcon.net Sun Aug 20 12:52:46 2000 From: starfire at zipcon.net (Richard Anderson) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: SPUG (JOB): Perl/Unix/shell script contractors needed! Message-ID: <006c01c00acf$754973f0$7b0ff93f@adcom133> Essential skills: Perl, Unix (Solaris), shell scripts Desired skills: HTML, project management, Perl programming for Win32, previous contracting experience Length: eight to ten weeks Rate: $45-60 per hour, based on qualifications and experience Terms: W-9 contract (corp-to-corp) Start date: ASAP Location: Seattle The client is an Internet security technology provider (firewalls, VPN's, web access control, etc.). The project involves developing scripts for installation, monitoring and management of security software. Contact: Richard Anderson, Richard.Anderson@raycosoft.com, 206.547.6903 www.raycosoft.com Richard.Anderson@raycosoft.com www.raycosoft.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Sun Aug 20 13:50:24 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: SPUG (JOB): Perl/Unix/shell script contractors needed! In-Reply-To: <006c01c00acf$754973f0$7b0ff93f@adcom133>; from starfire@zipcon.net on Sun, Aug 20, 2000 at 10:52:46AM -0700 References: <006c01c00acf$754973f0$7b0ff93f@adcom133> Message-ID: <20000820115024.A6829@timji.consultix.wa.com> Richard (and other list readers), Job ads are not supposed to be posted directly to the spug-list, but instead emailed to spug@halcyon.com, so that I have a chance to ensure that all relevant details are there before the ad gets posted. In this case, you actually included everything that was needed (thanks for that), but if you hadn't, an incomplete description of the job would already have reached the list, causing dozens of people to respond to the poster with questions like "What's the hourly rate", and "Do I have to be incorporated", which is exactly what the verification pass through me is meant to avoid. So everybody, please remember to submit job ads to spug@halcyon.com in the future. Thanks! -Tim *========================================================================* | Dr. Tim Maher, CEO, Consultix (206) 781-UNIX/8649; ask for FAX# | | Email: tim@consultix-inc.com Web: http://www.consultix-inc.com | |Training- TIM MAHER: Unix, Perl DAMIAN CONWAY: Adv. Perl, OOP, Parsing | |CLASSES - 8/21: Shell & Utilities 9/11: Perl&Modules 10/16: Int. Perl | I========================================================================* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Sun Aug 20 16:27:47 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: SPUG (JOB): Perl/Unix/shell script contractors needed! In-Reply-To: <39A82B6C.96575FB6@ocwebpros.com>; from jeff@planetoid.net on Sat, Aug 26, 2000 at 01:41:16PM -0700 References: <006c01c00acf$754973f0$7b0ff93f@adcom133> <20000820115024.A6829@timji.consultix.wa.com> <39A82B6C.96575FB6@ocwebpros.com> Message-ID: <20000820142747.A7235@timji.consultix.wa.com> On Sat, Aug 26, 2000 at 01:41:16PM -0700, jeff saenz wrote: > What about including if the position is open to off-site developers? That's covered by the requirement, listed on the web-page, of job-postings to state whether "telecommuting" is allowed, unless I misunderstand what you mean by "off-site developers". Hmm.... did Richard remember to comment on that? NO! Precisely why I'm supposed to preview the postings first(ly). He also neglected to comment on whether applicants would talk directly to the company, or go through a recruiter (is that his role?). -Tim ========================================================== | Tim Maher, Ph.D. Tel: (206) 781-UNIX | | SPUG Founder & Leader Email: spug@halcyon.com | | Seattle Perl Users Group HTTP: www.halcyon.com/spug | ========================================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From dougb at scalar.org Mon Aug 21 16:06:20 2000 From: dougb at scalar.org (Doug Beaver) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: Question: memory usage tracer In-Reply-To: ; from asherr@cs.unm.edu on Thu, Aug 17, 2000 at 04:42:48PM -0600 References: Message-ID: <20000821140620.A75326@scalar.org> On Thu, Aug 17, 2000 at 04:42:48PM -0600, Aryeh Cody Sherr wrote: > > Can anyone point me towards a module that will profile a cgi written > in perl's memory usage? It would be particularly useful if I could > print out a snapshot of the size of all variables at a given exection > time. I poked around CPAN for a while, and didn't see anything. There really are no modules for this, but you might find some helpful information in the perldebug page under the heading 'Debugging Perl memory usage'. perldoc perldebug for more info... It's possible to get statistics from perl's malloc if you use that instead of the system malloc, and you can also get allocation info from the -DL switch if you compiled perl with -g. I haven't used either method, unfortunately. Devel::Peek has a mstat() function that seems to let you dump the memory statistics from perl's malloc at any given time, although you'll still have to figure out a way to make sense from the data that you get back from it. I wonder if you could combine Devel::Symdump and Devel::Peek to make a guesstimate of the memory usage of the different variables. If you knew that a SvPVIV struct took 40 bytes of memory plus the length of the string it was pointing to, then you could look at this output from Devel::Peek: SV = PVIV(0x81fdfd0) at 0x81e4980 REFCNT = 1 FLAGS = (IOK,POK,pIOK,pPOK) IV = 42 PV = 0x820a040 "42"\0 CUR = 2 LEN = 3 and just add the LEN field to the size for an empty SvPVIV and determine that it's probably 43 bytes for that variable. This seems like a lot more trouble than it's worth, but it would sure be cool. ;-) If you pass a second argument to Dump, it will print out that many elements of the structure (otherwise it stops on 4 or 5). Try creating something really hairy in the debugger and then do this: Dump \%big_nasty_hash, 1E9 That will dump the hash and include nested output for everything, so if you have a hash where the keys are strings and the values are integers, Dump() will print all the information about the hash and also information about each value in the hash and what it points to. You could then figure out that a 100 key hash with 10 character keys and integers for values takes 9KB of memory (or whatever it takes). I guess it's something to try if you get bored or the other two options don't work out for you... Doug -- Smithers: I'm afraid we have a bad image, Sir. Market research shows people see you as somewhat of an ogre. Burns: I ought to club them and eat their bones! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From largest at largest.org Mon Aug 21 21:11:42 2000 From: largest at largest.org (Joel Grow) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: UW Perl Class In-Reply-To: <20000816182524.O387@www.newsofgroup.com> Message-ID: Hello SPUG-nation, There was some discussion of the UW Perl class earlier this year on the list. I wanted to let you know about this year's upcoming class. This eight-month program is taught by yours truly and meets once/week in the new UW laptop computer lab at their downtown Seattle location at 4th and Union (it was in Bellevue last year). The program is split up into three ten-class units: beginning Perl, advanced/OO Perl, and Perl and the web. We start at the beginning and go in-depth on many Perl topics, including regular expressions, complex data structures, object oriented Perl, database access, CGI programming, and lots more. There is a free information meeting about the course this Thursday, August 24th from 6-7 PM at the UW Extension downtown, 1325 4th Ave Suite 400. Another free info session will be held on Wednesday September 6 from noon-1 PM at the same location. More info is available at http://www.outreach.washington.edu/extinfo/certprog/per/per_main.asp Email me if you'd like references from students from last year's class. And feel free to email me with questions! thanks Joel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Thu Aug 24 08:38:42 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: 7 Perl contracts, Seattle Message-ID: <20000824063842.A21028@timji.consultix.wa.com> From: Tony Schwarzler Subject: ConsultNet needs your help..... Date: Wed, 23 Aug 2000 21:54:01 -0700 Good evening. It was suggested by a current member of this listserver that I contact your group. My name is Tony Schwaerzler and I am a Sr. Technical Recruiter with ConsultNet. I am requesting assistance from this organization with a need that I had come across my desk today. I have a client in downtown Seattle that has a need for 7 Perl Programmers. Details listed below...... Rates: Are open, per client Location: DT Seattle Contract length: 6-9 months Contracting through ConsultNet. Will accept W2, 1099 (Corp-corp or sole proprietor) Client is a company that develops on-line services for the automotive industry. Description: Needed for scripting and systems programming for website and on-line databases. Minimum of 3 years programming in Perl with familiarity with HTML, UNIX, and CGI preferred. Java programming, for web applicaitons and experience with UNIX-based Oracle Databases would be a plus. Backgrounds in OO programming and User interface design are also pluses. The need is immediate and if there is anyone interested, they can contact: Tony Schwaerzler (425)637-9700, (877)287-9526 tony@consultnet-nw.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Fri Aug 25 08:50:48 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: O'Reilly Univ. of Perl, 2000 Message-ID: <20000825065048.A2136@timji.consultix.wa.com> O'REILLY BRINGS ITS EXPERTISE TO YOU AT UNIVERSITY OF PERL 2000 O'Reilly University of Perl 2000 is a four-city tour offering two-day tutorials featuring the best Perl training available. This cross-country tour will start in Seattle and move to Los Angeles and Atlanta, ending in New York City. O'Reilly University of Perl 2000 will be taught by top-rated leaders in the Perl community; Damian Conway, Mark-Jason Dominus, Brian D. Foy, Dan Klein, Michael Rodriquez, Randal Schwartz, and Nathan Torkington. These fearless leaders will teach you solutions to your programming problems, offer advanced programming techniques and much more. Eleven courses in all, the tutorials will focus on: 'Perl 101' for programmers new to Perl Perl CGI and Web programming Advanced Perl Programming techniques mod_perl Dates and Locations: October 2 & 3: Seattle, Hyatt Regency Bellevue October 5 & 6: Los Angeles, The Westin Los Angeles Airport October 16 & 17: Atlanta, Sheraton Atlanta October 19 & 20: New York City, New York Marriott East Side For more information about O'Reilly University of Perl 2000, go to: http://conferences.oreilly.com/uperl2k/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From toddw at wrq.com Fri Aug 25 10:59:20 2000 From: toddw at wrq.com (Todd Wells) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: O'Reilly Univ. of Perl, 2000 Message-ID: <1654BC972546D31189DA00508B318AC801C87F9F@charmander.wrq.com> Tim, I notice the home page says this: Perl User Groups You can receive a 20% discount on all fees for tutorials by entering your user group code in the discount field. Is there a SPUG code? -Todd -----Original Message----- From: Tim Maher/CONSULTIX [mailto:tim@consultix-inc.com] Sent: Friday, August 25, 2000 6:51 AM To: spug-list@pm.org Subject: SPUG: O'Reilly Univ. of Perl, 2000 O'REILLY BRINGS ITS EXPERTISE TO YOU AT UNIVERSITY OF PERL 2000 O'Reilly University of Perl 2000 is a four-city tour offering two-day tutorials featuring the best Perl training available. This cross-country tour will start in Seattle and move to Los Angeles and Atlanta, ending in New York City. O'Reilly University of Perl 2000 will be taught by top-rated leaders in the Perl community; Damian Conway, Mark-Jason Dominus, Brian D. Foy, Dan Klein, Michael Rodriquez, Randal Schwartz, and Nathan Torkington. These fearless leaders will teach you solutions to your programming problems, offer advanced programming techniques and much more. Eleven courses in all, the tutorials will focus on: 'Perl 101' for programmers new to Perl Perl CGI and Web programming Advanced Perl Programming techniques mod_perl Dates and Locations: October 2 & 3: Seattle, Hyatt Regency Bellevue October 5 & 6: Los Angeles, The Westin Los Angeles Airport October 16 & 17: Atlanta, Sheraton Atlanta October 19 & 20: New York City, New York Marriott East Side For more information about O'Reilly University of Perl 2000, go to: http://conferences.oreilly.com/uperl2k/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From benwa at ocentrix.com Fri Aug 25 11:07:37 2000 From: benwa at ocentrix.com (Ben Burnett) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: O'Reilly Univ. of Perl, 2000 In-Reply-To: <20000825065048.A2136@timji.consultix.wa.com> Message-ID: <4.2.0.58.20000825084600.00a4dd58@mail.oz.net> Hey Tim, I'm looking over the course list for the University of Perl and I'm having a tough time deciding what to attend. I would really like to go to them all especially the Damian Conway OOP course, but if I can hear him speak at another time, maybe I can attend some other things at the university. I seem to remember you mentioning something at the last meeting about him giving some talks to the SPUG while he was in town. Is this right or is it just my overactive imagination? Thanks, Ben - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From damian at cs.monash.edu.au Fri Aug 25 15:37:46 2000 From: damian at cs.monash.edu.au (Damian Conway) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: O'Reilly Univ. of Perl, 2000 Message-ID: <200008252037.GAA29717@indy05.csse.monash.edu.au> Tim explained: > Damian will give a talk to SPUG in early October, but it will be one of > his short, brilliantly wacky ones, probably Lingua::Romana::Perligata > (about programming in Latin using Perl), not one of the serious seminars. To comply with truth in advertising laws, I should point out that the serious seminars are pretty "wacky" in parts too! ;-) Damian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Fri Aug 25 17:47:09 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: Inline.pm for Windows! Message-ID: Lorraine, Thanks for the pointer. User's of Inline.pm on ActivePerl will need the nmake utility *and* the cl.exe compiler. I don't suppose there's a place to get *that* for free, is there? Anyway, a free nmake is good for people who just want to install pure-Perl CPAN modules on ActivePerl. Inline also works with Perl compiled under the Cygwin porting layer, which is a free and complete Unix layer for windows. It has the entire glibc, gcc, bash, etc. Brian lorraine@nw.saic.com (Lorraine Johnson) on 08/24/2000 10:02:03 AM To: B.Ingerson@epixtech.com cc: Subject: Re: SPUG: Inline.pm for Windows! Hi Brian, If you're using Visual C++ just for the nmake utility, and not for some feature of the IDE, then you can just download nmake from Microsoft. (At a much better price!) Go to ftp://ftp.microsoft.com/Softlib/MSLFILES/ and scroll down to nmake15.exe (~52k). This is a self-extracting/installing executable, which just puts nmake, an error log, and a readme file in whatever directory you launch it from. Fairly painless. Cheers, Lorraine At 04:29 PM 8/16/00 -0700, you wrote: >Inline.pm 0.23 works on the MSWin32 platform. You need Microsoft Visual >C++. > >Here's what I tested with: > >Windows NT 4.0 sp5 >Visual C++ 6.0 (w/ nmake utility) (This is what ActiveState uses to build >ActivePerl) ................................... J. Lorraine Johnson SAIC/Sea Technology lorraine@nw.saic.com v: (425) 482-3316 f: (425) 485-5566 http://www.nw.saic.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From Dakotta at csrtech.com Fri Aug 25 18:49:13 2000 From: Dakotta at csrtech.com (Dakotta Alex) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: Howdy! Message-ID: Hey every1, I dont normally do this, but I've got some great gig's available now, and was wondering if anyone knew of anyone, that would be interested.. basically i need several perl guys/ gals =) 2+ years of exp. with perl, cgi, and experience creating database driven webpages.. a code sample w/ the resume would be awesome!!! oh yah, and these are permanent positions. and its with a kewl company??? appreciate your feedback!! Cheers, Dakotta <<...>> Email: Dakotta@csrtech.com Web: www.csrtech.com Tel: 206-382-5555 x 101 Fax: 206-382-5556 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From marlingreene at mindspring.com Fri Aug 25 20:05:18 2000 From: marlingreene at mindspring.com (marlin) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: mysql Message-ID: <39A717CE.B78F5472@mindspring.com> OK... first thanks to those who help me a few days ago with the "mysql won't start" problem. It still won't start--that is at machine reboot or startup. It will start manually if I type in "safe_mysqld -u root" Fact about this case: 1. The mysql config file has the line "mysql_daemon_user=mysql" 2. Watching the lines at startup reveals that mysql daemon starts, then immediately stops. 3. This can be confirmed if (after logging on) I try to start the mysql daemon from the cmd line with "safe_mysqld start" -- I see "starting mysql" then immediately "stopping mysql" just like when the startup script is executing. 4. I can make it run from the cmd line with "safe_mysqld start -u root" Can anyone explain why it won't start automatically, as directed by the startup config, before anyone is logged in? I am concerned that something is configured incorrectly, but I don't know where else to look. I have tried changing the owner of mysql folder and data files to "mysql" and that doesn't seem to matter. Thanks... Marlin -- 3 Hats Design INTERNET PRINT ILLUSTRATION 5201 15 Ave NW Suite 220 Seattle, WA 98107 206.784.1641 phone 206.784.2231 fax marlin@3hats.com http://www.3hats.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From marlingreene at mindspring.com Fri Aug 25 20:39:44 2000 From: marlingreene at mindspring.com (marlin) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: online cc software or mechanism? Message-ID: <39A71FE0.850DF8CA@mindspring.com> Can anyone suggest software/services for credit card varification that will run work smoothly with Perl/Linux? I have several merchants with website catalogs who already have merchant credit card accounts. They would like to speed up the process. Presently we ship the web orders to them via email and they call in the credit card for approval after the fact. My take on how it would work is that our order scripts would send the vital information about the card to a service that chases down the cardholder's data and returns the results. Does this require software, or can it be done by mail? Would love to see a presentation at a user-group meeting about setting this up. Marlin -- 3 Hats Design INTERNET PRINT ILLUSTRATION 5201 15 Ave NW Suite 220 Seattle, WA 98107 206.784.1641 phone 206.784.2231 fax marlin@3hats.com http://www.3hats.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From tim at consultix-inc.com Fri Aug 25 20:57:36 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: Howdy, from a Job-SPAMMER In-Reply-To: ; from Dakotta@csrtech.com on Fri, Aug 25, 2000 at 04:49:13PM -0700 References: Message-ID: <20000825185736.A5181@timji.consultix.wa.com> On Fri, Aug 25, 2000 at 04:49:13PM -0700, Dakotta Alex wrote: > Hey every1, > I dont normally do this, but I've got some great gig's available now, and Why don't you normally do this? Getting scorched by "flames" too unpleasant? 8-} > was wondering if anyone knew of anyone, that would be interested.. PLEASE NOTE: We don't allow direct job-postings to our mailing list. If you want to communicate your job ads to our members, please read and follow the directions at our web site. Many of our members already have serious doubts about the integrity of people in the recruiting industry, and your flagrant violation of our job-posting rules has just added more evidence to support that already unfavorable impression. MEMBERS: If this kind of activity continues, we'll have to tighten our software filters to prevent recurrences. For the time being, please do NOT encourage illicit postings by following up with spammers about the jobs being offered. Please respond only to authorized job-postings (i.e., those posted by tim@consultix-inc.com). ========================================================== | Tim Maher, Ph.D. Tel: (206) 781-UNIX | | SPUG Founder & Leader Email: spug@halcyon.com | | Seattle Perl Users Group HTTP: www.halcyon.com/spug | ========================================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jeremy at weezel.com Sat Aug 26 00:28:10 2000 From: jeremy at weezel.com (Jeremy Devenport) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: Howdy! In-Reply-To: Message-ID: This is exactly why non subscribed aliases should not be allowed to post. It is standard practice for just about every mailing list I've ever been on. What is the major objection? Jeremy -----Original Message----- From: owner-spug-list@pm.org [mailto:owner-spug-list@pm.org]On Behalf Of Dakotta Alex Sent: Friday, August 25, 2000 4:49 PM To: 'spug-list@pm.org' Subject: SPUG: Howdy! Hey every1, I dont normally do this, but I've got some great gig's available now, and was wondering if anyone knew of anyone, that would be interested.. basically i need several perl guys/ gals =) 2+ years of exp. with perl, cgi, and experience creating database driven webpages.. a code sample w/ the resume would be awesome!!! oh yah, and these are permanent positions. and its with a kewl company??? appreciate your feedback!! Cheers, Dakotta <<...>> Email: Dakotta@csrtech.com Web: www.csrtech.com Tel: 206-382-5555 x 101 Fax: 206-382-5556 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From scott at sabmail.rresearch.com Sat Aug 26 00:39:41 2000 From: scott at sabmail.rresearch.com (Scott Blachowicz) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: Howdy! In-Reply-To: References: Message-ID: <20000825223941.A93727@sabami.seaslug.org> On Fri, Aug 25, 2000 at 10:28:10PM -0700, Jeremy Devenport wrote: > This is exactly why non subscribed aliases should not be allowed to post. It > is standard practice for just about every mailing list I've ever been on. > What is the major objection? It's a pain in the neck if you read & send email from several addresses. Or even if you send from the same one, but the configuration of the transport changes (to masquerade or not to masquerade), depending in which "from" addresses the non-subscriber rejection matching looks at. Also...don't at least some of the packages have non-subscriber rejection processes that let you specify certain addresses to let through? (either by the administrator or maybe each subscriber could list their aliases?) -- Scott Blachowicz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jmunger1 at yahoo.com Sat Aug 26 00:44:56 2000 From: jmunger1 at yahoo.com (James Munger) Date: Wed Aug 4 00:07:34 2004 Subject: Fwd: SPUG: online cc software or mechanism? Message-ID: <20000826054457.19886.qmail@web3103.mail.yahoo.com> > Can anyone suggest software/services for credit card varification > that will run work smoothly with Perl/Linux? At my last job, I made the first version of our billing system. I spent the first few weeks researching third-party companies that do this sort of thing (this was spring of '99). The industry leader is CyberCash, but I found them to be slow to respond to questions, and their code interface was very kludgy. Instead, I went with authorize.net, which was faster, had relatively simple means of communicating with their tools, and had better customer service. > I have several merchants with website catalogs who already have > merchant credit card accounts. They would like to speed up the > process. Presently we ship the web orders to them via email and > they call in the credit card for approval after the fact. If they want to speed it up from this, then you need to either keep their information on site, or have them submit it each time through a web interface. The latter is probably more safe (see below), but doesn't save as much time. > My take on how it would work is that our order scripts would send > the vital information about the card to a service that chases down > the cardholder's data and returns the results. Does this require > software, or can it be done by mail? It's done by web interface. The lowdown is thus, if using authorize.net: - Version A (information not yet available) - User submits cc information via your web page (SSL). This includes "name on the card" and zip code. These are the only two pieces of information (besides cc# and expiration) really needed to verify a valid holder of that card, if I remember correctly. - The form that gets this information goes to a script that sends this information to the site. In my case, I used LWP to connect to their "input cc order by hand" web page, which returns another page that you scrape back with LWP and hopefully has "Authorization Accepted" (or something, I forget) on it. Otherwise there's an error message you can parse out for the user. - One it's accepted, you do what you do with the order, knowing you'll get your money. - Version B (information on site, automated) - If your users have their own identifier (e-mail, whatever), then you can save their information on site, and bring it up and the submit page when they get to that part. If you want to do this, though, you'll still have to have them go through step A the first time through, of course. Whether or not you want to keep the clients' information digitally is a whole other issue, involving lots of security questions. As I'm a programmer, and not a systems person, and the system I worked on never made it into production (don't ask), I can't help much with this part (yeah, I'm copping out here). The transaction works like this: You submit the information, and it's accepted. However, you don't have your money right away. It goes into a large batch of transactions for the company (authorize.net in this case) to submit to banks at the end of the day. When the actual transactions are done, the money all goes into an account you've set up at some other bank. From this same account, authorize.net takes its cut once a month. The cost for authorize.net was $15 a month and $.35 per transaction. Asides: You can submit batches of comma-delimited (or was it tabs?) to a different page. This is useful for subscriptions and other recurrent charges. Also, it takes checks. Submit the routing number, account number, and bank name, and you can deduct right from the user's checking account. Same cost, I think. > Would love to see a presentation at a user-group meeting about > setting this up. (I feel like I should be charging billable hours :) Unfortunately, I wouldn't feel up to snuff enough to go through a full presentation on this, as I haven't touched it in just over a year. I can feel "the little things" trying to resurface as I type this. I know there are some other such clearing houses out there, maybe on Yahoo! or some of the other big names (which probably bought or partnered for the technology, but I digress). James Munger IS, Cobalt Group Disclaimer: I am not affiliated with authorize.net or anyone else in its market. __________________________________________________ Do You Yahoo!? Yahoo! Mail - Free email you can access from anywhere! http://mail.yahoo.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From ericj at cubesearch.com Sat Aug 26 04:59:36 2000 From: ericj at cubesearch.com (Eric Johanson) Date: Wed Aug 4 00:07:34 2004 Subject: Fwd: SPUG: online cc software or mechanism? In-Reply-To: <20000826054457.19886.qmail@web3103.mail.yahoo.com> Message-ID: On Fri, 25 Aug 2000, James Munger wrote: > > > Can anyone suggest software/services for credit card varification > > that will run work smoothly with Perl/Linux? > > At my last job, I made the first version of our billing system. > I spent the first few weeks researching third-party companies > that do this sort of thing (this was spring of '99). > > The industry leader is CyberCash, but I found them to be > slow to respond to questions, and their code interface was > very kludgy. Instead, I went with authorize.net, which > was faster, had relatively simple means of communicating > with their tools, and had better customer service. I would agree with your notes about cybercash; It would seem that they have not really done any software updates in a few years, and it also seams that they want to make $$$ for each phone call. :( I used them for CC processing a few years ago, back when it was free! (It was a good deal then... but now... umm..) > > > I have several merchants with website catalogs who already have > > merchant credit card accounts. They would like to speed up the > > process. Presently we ship the web orders to them via email and > > they call in the credit card for approval after the fact. > > If they want to speed it up from this, then you need to either > keep their information on site, or have them submit it each > time through a web interface. The latter is probably more > safe (see below), but doesn't save as much time. > > > My take on how it would work is that our order scripts would send > > the vital information about the card to a service that chases down > > the cardholder's data and returns the results. Does this require > > software, or can it be done by mail? > > It's done by web interface. > > The lowdown is thus, if using authorize.net: > > - Version A (information not yet available) > - User submits cc information via your web page (SSL). > This includes "name on the card" and zip code. These > are the only two pieces of information (besides cc# > and expiration) really needed to verify a valid holder > of that card, if I remember correctly. > - The form that gets this information goes to a script > that sends this information to the site. In my case, I > used LWP to connect to their "input cc order by hand" > web page, which returns another page that you scrape > back with LWP and hopefully has "Authorization Accepted" > (or something, I forget) on it. Otherwise there's an > error message you can parse out for the user. > - One it's accepted, you do what you do with the order, > knowing you'll get your money. This is true unless they do a charge back on the card. Then you are out of your money. :) > > - Version B (information on site, automated) > - If your users have their own identifier (e-mail, > whatever), then you can save their information > on site, and bring it up and the submit page when > they get to that part. If you want to do this, > though, you'll still have to have them go through > step A the first time through, of course. > > Whether or not you want to keep the clients' information > digitally is a whole other issue, involving lots of > security questions. As I'm a programmer, and not a > systems person, and the system I worked on never made > it into production (don't ask), I can't help much with > this part (yeah, I'm copping out here). > Using a standard RDMS of some sort, you can record all of the transaction history on your own, and keep track of the CC info. Security is a big issue; I setup an external RDMS using Sybase... (not on the same server, on a server that only allowed DB connections from the webserver thanks to a firewall) I setup a customer_billing_info table that the web_db_user only had write perms. This way, you can store CC info without having rights to read it. Is this wise? I'm not sure, it's worked well for me. If you can get your systems people to have faith in the security of the DB, (and it really is secure!), it should be ok. Regarding Version A/B; I did something completely different. :P They have something (poorly documented) called ADC (Automated Direct Connect). Under ADC, you can effectivly call the services directly from a HTTPS Post, passing all of the parms (billing info, amount, account number) to it, where it will then return a delimited string to parse out. It was quite basic to setup; one you have the Crypt::SSLeay module setup for SSL stuff, you should be ready to go. (or Net::SSLeay) http://www.authorizenet.com/support/docs/ > The transaction works like this: > > You submit the information, and it's accepted. However, > you don't have your money right away. It goes into a > large batch of transactions for the company (authorize.net > in this case) to submit to banks at the end of the day. > When the actual transactions are done, the money all goes > into an account you've set up at some other bank. From > this same account, authorize.net takes its cut once a > month. > > The cost for authorize.net was $15 a month and $.35 > per transaction. One of my customers told me that http://www.rtware.net/ was cheaper. I don't know for sure, but I know they use the same servers as authorize.com. (three IPs apart, same docs) You might check them out. > > Asides: > > You can submit batches of comma-delimited (or was it > tabs?) to a different page. This is useful for subscriptions > and other recurrent charges. > I personally found it easier to just have my code submit batches via the ADC for things like subscriptions/monthly billing. The web-import for delimited files was just to buggy, and painfully manual each month. But I have heard of some folks using it sucessfully. > Also, it takes checks. Submit the routing number, account > number, and bank name, and you can deduct right from the > user's checking account. Same cost, I think. > > > Would love to see a presentation at a user-group meeting about > > setting this up. > > (I feel like I should be charging billable hours :) > > Unfortunately, I wouldn't feel up to snuff enough to > go through a full presentation on this, as I haven't > touched it in just over a year. I can feel "the little > things" trying to resurface as I type this. If I can find the time, I may be able to pull some info on this to present. I would also like to note that I'm no expert on this, but I have setup 5 E-Commerce systems using this method of CC Processing. (2 in perl, 1 ASP/ 1 ColdFusion) The bad part is most of my code is under NDA; so anything I present would just be 'how to do it yourself'. :) Somebody shout if they are interested. (Any contribs welcomed!) > > I know there are some other such clearing houses out > there, maybe on Yahoo! or some of the other big names > (which probably bought or partnered for the technology, > but I digress). > I'm sure that there are other options; CC processing is getting (is?) a huge market. I know what works; and I've had good luck with it. :) -Eric Johanson See James Munger's great Disclaimer below. > James Munger > IS, Cobalt Group > > Disclaimer: I am not affiliated with authorize.net or anyone else > in its market. > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Sat Aug 26 11:44:12 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: mysql In-Reply-To: <39A717CE.B78F5472@mindspring.com> Message-ID: Check the userid that your startup script tells the mysql daemon to start as. I've found that if it's not set to "root" then it won't autostart on LInux machines. John > From: marlin > Reply-To: marlingreene@mindspring.com > Date: Fri, 25 Aug 2000 18:05:18 -0700 > To: spug-list@pm.org > Subject: SPUG: mysql > > OK... first thanks to those who help me a few days ago with the "mysql > won't start" problem. > > It still won't start--that is at machine reboot or startup. > > It will start manually if I type in "safe_mysqld -u root" > > Fact about this case: > > 1. The mysql config file has the line "mysql_daemon_user=mysql" > 2. Watching the lines at startup reveals that mysql daemon starts, > then immediately stops. > 3. This can be confirmed if (after logging on) I try to start the > mysql daemon from the cmd line with "safe_mysqld start" -- I see > "starting mysql" then immediately "stopping mysql" just like when > the startup script is executing. > 4. I can make it run from the cmd line with "safe_mysqld start -u root" > > Can anyone explain why it won't start automatically, as directed by > the startup config, before anyone is logged in? > > I am concerned that something is configured incorrectly, but I don't > know where else to look. I have tried changing the owner of mysql folder > and data files to "mysql" and that doesn't seem to matter. > > Thanks... > > Marlin > > -- > 3 Hats Design > INTERNET PRINT ILLUSTRATION > 5201 15 Ave NW > Suite 220 > Seattle, WA 98107 > 206.784.1641 phone > 206.784.2231 fax > marlin@3hats.com > http://www.3hats.com > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Sat Aug 26 11:45:24 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: online cc software or mechanism? In-Reply-To: <39A71FE0.850DF8CA@mindspring.com> Message-ID: I have about 10 different perl integration scripts that work with Verisign Payflow Pro, Websitebilling, Echo, etc. Email me privately with your current setup (merchant provider, etc) and I'll see if I have a stock one that you can start with. John > From: marlin > Reply-To: marlingreene@mindspring.com > Date: Fri, 25 Aug 2000 18:39:44 -0700 > To: spug-list@pm.org > Subject: SPUG: online cc software or mechanism? > > Can anyone suggest software/services for credit card varification that > will run work smoothly with Perl/Linux? > > I have several merchants with website catalogs who already have merchant > credit card accounts. They would like to speed up the process. Presently > we ship the web orders to them via email and they call in the credit card > for approval after the fact. > > My take on how it would work is that our order scripts would send the vital > information about the card to a service that chases down the cardholder's > data and returns the results. Does this require software, or can it be done > by mail? > > Would love to see a presentation at a user-group meeting about setting > this up. > > Marlin > > -- > 3 Hats Design > INTERNET PRINT ILLUSTRATION > 5201 15 Ave NW > Suite 220 > Seattle, WA 98107 > 206.784.1641 phone > 206.784.2231 fax > marlin@3hats.com > http://www.3hats.com > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From starfire at zipcon.net Sat Aug 26 13:09:03 2000 From: starfire at zipcon.net (Richard Anderson) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: Re: online cc software or mechanism? References: <39A71FE0.850DF8CA@mindspring.com> Message-ID: <00ad01c00f88$baf82f50$6e0ff93f@adcom133> I spent a long time looking for an online credit card processor that was low-cost and had a simple interface. I use Charge Solutions (a subsidiary of Merchant Online, http://www.chargesolutions.com/). You can take a look at the integration between my site and theirs by starting the purchase sequence at http://www.raycosoft.com/cgi-bin/purchase1.pl (Don't enter your credit card info unless you really want to buy!) Things I like about their system: Very simple interface between my site and theirs. I just have the user fill out a form on my site specifying what they are buying and submit the form to their secure server with the purchase price and associated information. The user enters their credit information on the Charge Solutions secure server and is returned to my site with an approval or disapproval code. My CGI script at the return URL reads the returned parameters and takes appropriate action. I can pass some data with the transaction that is preserved and returned to my receiving CGI script. I don't need a secure server at my site, since the user enters the credit card info on Charge Solutions' secure server. Relatively low transaction fees, although they recently implemented a $25 per month "account fee". (Mastercard and Visa raised their rates industry-wide last year and are under investigation by the DOJ.) They have a sophisticated merchant administration system. I can get detailed records on all transactions and fine-tune security parameters (do I want to accept Discover, do I want to accept transactions where the address cannot be confirmed, etc.). I can also void out transactions and process a credit or debit transaction manually. They automatically send e-mail confirmation of each transaction to the merchant and customer. I also get daily and weekly summary e-mails detailing all activity. Customer support is good. Once a customer had a problem completing a transaction because of an account configuration blunder on my part and contacted Charge Solutions instead of me. The CS rep analyzed the problem correctly and fixed it immediately, without waiting to contact me. I have looked at other e-commerce systems and found them to be inferior. Richard.Anderson@raycosoft.com www.zipcon.net/~starfire/home (personal) www.raycosoft.com (corporate) ----- Original Message ----- From: "marlin" To: Sent: Friday, August 25, 2000 6:39 PM Subject: SPUG: online cc software or mechanism? > Can anyone suggest software/services for credit card varification that > will run work smoothly with Perl/Linux? > > I have several merchants with website catalogs who already have merchant > credit card accounts. They would like to speed up the process. Presently > we ship the web orders to them via email and they call in the credit card > for approval after the fact. > > My take on how it would work is that our order scripts would send the vital > information about the card to a service that chases down the cardholder's > data and returns the results. Does this require software, or can it be done > by mail? > > Would love to see a presentation at a user-group meeting about setting > this up. > > Marlin > > -- > 3 Hats Design > INTERNET PRINT ILLUSTRATION > 5201 15 Ave NW > Suite 220 > Seattle, WA 98107 > 206.784.1641 phone > 206.784.2231 fax > marlin@3hats.com > http://www.3hats.com > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From shivan at ici.net Mon Aug 28 13:51:04 2000 From: shivan at ici.net (Mike) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: CPAN Project In-Reply-To: References: <39A717CE.B78F5472@mindspring.com> Message-ID: <4.3.2.7.2.20000828114944.016fff08@pop.ici.net> Now I'm usually lurking on this list, but I do remember that last meeting we talked about a CPAN project. And SorceForge and a whole bunch of other fun stuff. What happened to that. Perhaps I haven't been paying attention to much, but I haven't heard any talk about it. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Mon Aug 28 23:47:46 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: CPAN Project In-Reply-To: <4.3.2.7.2.20000828114944.016fff08@pop.ici.net> Message-ID: A quick update. I had installed Sourceforge on my test server to test it out for possible use in our controlled environment, and also signed spug up for an account on the "real" sourceforge. Not liking the Sourceforge interface (all php :( ... ) all that much, I decided to install and compile CVS in it's entirety on my server. Good results with it so far. On Thursday, my ISP decided to be extra nice and return a Linux (cobalt) machine that I had loaned to them last month. I expect it to arrive in a few days. Once it gets here, I'll wipe it out, set it up, move seattleperl.com to it, and install CVS there. It'll be a totally naked machine, for SPUG use only. As soon as it gets in, I'll set it up, and open the gates to all of the developers in SPUG that wish to contribute to the project. I'll send another email to this list later in the week with those details, as well as the signup info for the spug-CPAN developers mailing list. John Cokos > From: Mike > Date: Mon, 28 Aug 2000 11:51:04 -0700 > To: > Subject: SPUG: CPAN Project > > Now I'm usually lurking on this list, but I do remember that last meeting > we talked about a CPAN project. And SorceForge and a whole bunch > of other fun stuff. What happened to that. Perhaps I haven't been paying > attention to much, but I haven't heard any talk about it. > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org > Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL > Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address > For full traffic, use spug-list for LIST ; otherwise use spug-list-digest > Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From B.Ingerson at epixtech.com Tue Aug 29 00:39:42 2000 From: B.Ingerson at epixtech.com (B.Ingerson@epixtech.com) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: CPAN Project Message-ID: Sorry Gang, Right after the SPUG meeting, I (and Colin) went to Chicago for a week on business. Then after that I got an opportunity to do something really cool and Perl related which you guys will find out about this Fall (hint). Anyway, Mike's right. Let's not lose the momentum. I'll get the basics for One::Liner down later this week. I'm booked through Weds. How about everyone else? Let's get a few projects started and see what gains momentum. John, how's the seattleperl.com site, and the sourceforge stuff coming along? Make sure to ask for help if you need it. Ciao for now, Brian Sent by: owner-spug-list@pm.org To: cc: Subject: SPUG: CPAN Project Now I'm usually lurking on this list, but I do remember that last meeting we talked about a CPAN project. And SorceForge and a whole bunch of other fun stuff. What happened to that. Perhaps I haven't been paying attention to much, but I haven't heard any talk about it. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/archives/spug-list/attachments/20000828/41065e76/attachment.htm From tim at consultix-inc.com Wed Aug 30 19:54:43 2000 From: tim at consultix-inc.com (Tim Maher/CONSULTIX) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: M$FT Perl JobS, Redmond Message-ID: <20000830175443.A3559@timji.consultix.wa.com> I am looking for someone who has PERL, Strong Communication skills, is a Problem Solver and it would be a bonus if they have Config Management tool experience such as Visual Source Safe. The position title is Builder. This is a permanent position at Microsoft, W-2 status. The benefits are excellent, as well as stock options. At this time, the position does not provide a telecommuting opportunity. The group is the Windows 2000 Core Build Team. The physical location is in Redmond, Washington. We have at least 3 positions to fill. This position is being handled by a Recruiter, however once the candidate has been submitted, the organization takes full ownership for "closing". DawnAnn Griffeth v-dawnag@microsoft.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jeremy at weezel.com Wed Aug 30 23:08:13 2000 From: jeremy at weezel.com (Jeremy Devenport) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: M$FT Perl JobS, Redmond In-Reply-To: <20000830175443.A3559@timji.consultix.wa.com> Message-ID: And as an added bonus you'll get to work with me... Jeremy -----Original Message----- From: owner-spug-list@pm.org [mailto:owner-spug-list@pm.org]On Behalf Of Tim Maher/CONSULTIX Sent: Wednesday, August 30, 2000 5:55 PM To: spug-list@pm.org Subject: SPUG: M$FT Perl JobS, Redmond I am looking for someone who has PERL, Strong Communication skills, is a Problem Solver and it would be a bonus if they have Config Management tool experience such as Visual Source Safe. The position title is Builder. This is a permanent position at Microsoft, W-2 status. The benefits are excellent, as well as stock options. At this time, the position does not provide a telecommuting opportunity. The group is the Windows 2000 Core Build Team. The physical location is in Redmond, Washington. We have at least 3 positions to fill. This position is being handled by a Recruiter, however once the candidate has been submitted, the organization takes full ownership for "closing". DawnAnn Griffeth v-dawnag@microsoft.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For full traffic, use spug-list for LIST ; otherwise use spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For daily traffic, use spug-list for LIST ; for weekly, spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/ From jcokos at ccs.net Thu Aug 31 18:07:24 2000 From: jcokos at ccs.net (John Cokos) Date: Wed Aug 4 00:07:34 2004 Subject: SPUG: cvs / cpan ... getting closer Message-ID: <003801c013a0$397dba50$28e842cf@iwebx1> The new server arrived today. I moved all of the seattleperl.com stuff to it, and repointed the DNS to point at this new machine. CVS is installed there as well, along with a nifty little web interface. I need to wait for the DNS to propagate before I can finish the remote cvs testing, but it all looks good. Our own little, humble, naked server is almost ready. John ======================================== John Cokos, President / CEO: iWeb Inc. http://www.iwebsys.com jcokos@ccs.net ======================================== - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - POST TO: spug-list@pm.org PROBLEMS: owner-spug-list@pm.org Subscriptions; Email to majordomo@pm.org: ACTION LIST EMAIL Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address For daily traffic, use spug-list for LIST ; for weekly, spug-list-digest Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/