From cp at onsitetech.com Tue Feb 5 18:18:57 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> Message-ID: <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> Sorry it's taken so long to get this message out. The next pdx.pm meeting will be Wednesday, February 13th. Same time and place as last time (see http://portland.pm.org/). Austin Shutz will be giving a presentation on standard error handling and reporting. Austin is the author of Expect.pm and IO::Stty. He is also a network engineer for Global Crossing. I'm looking forward to seeing this. So many programmers fail to give this area the attention that it's due, so don't skip it! Unfortunately, we're still meeting at Produce Row cafe (again, see the Web site for details). Since I haven't been able to locate any other meeting space, this seems to be the only convenient spot. The only other option is to have a social meeting and then have everyone *drive* over to the technical meeting spot. That could get a bit messy, but if people think that's okay, I can scout for a better (read: roomier) social meeting spot). Cheers, Curtis "Ovid" POe -- "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push @A, $_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift @a;shift @a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From merlyn at stonehenge.com Wed Feb 6 01:00:06 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> Message-ID: >>>>> "Curtis" == Curtis Poe writes: Curtis> Sorry it's taken so long to get this message out. The next Curtis> pdx.pm meeting will be Wednesday, February 13th. Same time Curtis> and place as last time (see http://portland.pm.org/). Curtis> Austin Shutz will be giving a presentation on standard error Curtis> handling and reporting. Austin is the author of Expect.pm and Curtis> IO::Stty. He is also a network engineer for Global Crossing. Well, I'm sorry to not be there. Just when the group is getting started. :) I would have liked to have seen this too, as the author of the now deprecated chat2.pl. :( -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From tex at off.org Wed Feb 6 17:33:10 2002 From: tex at off.org (Austin Schutz) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: ; from merlyn@stonehenge.com on Tue, Feb 05, 2002 at 11:00:06PM -0800 References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> Message-ID: <20020206153310.F16266@gblx.net> On Tue, Feb 05, 2002 at 11:00:06PM -0800, Randal L. Schwartz wrote: > >>>>> "Curtis" == Curtis Poe writes: > > Curtis> Sorry it's taken so long to get this message out. The next > Curtis> pdx.pm meeting will be Wednesday, February 13th. Same time > Curtis> and place as last time (see http://portland.pm.org/). > > Curtis> Austin Shutz will be giving a presentation on standard error > Curtis> handling and reporting. Austin is the author of Expect.pm and > Curtis> IO::Stty. He is also a network engineer for Global Crossing. > > Well, I'm sorry to not be there. Just when the group is getting > started. :) I would have liked to have seen this too, as the > author of the now deprecated chat2.pl. :( > Well I'm not giving a talk on Expect, though I could if people wanted. :) I would think it would be worthwhile to meet at produce row and then move, btw. Produce row is a pretty good spot socially, but I can't imagine trying to give a talk there. Austin TIMTOWTDI From cp at onsitetech.com Wed Feb 6 17:35:47 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> Message-ID: <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> ----- Original Message ----- From: "Austin Schutz" To: "Randal L. Schwartz" Cc: "Curtis Poe" ; Sent: Wednesday, February 06, 2002 3:33 PM Subject: Re: Next pdx.pm meeting > Well I'm not giving a talk on Expect, though I could if people > wanted. :) > > I would think it would be worthwhile to meet at produce row and > then move, btw. Produce row is a pretty good spot socially, but I can't > imagine trying to give a talk there. > > Austin Oh, there appears to be a slight misunderstanding. Produce Row is the social meeting and the technical meeting will be at ONSITE! offices, half a block away. Same details as the last meeting (which are on http://portland.pm.org/, which I keep putting off updating) Cheers, -- Curtis "Ovid" Poe, Senior Programmer, ONSITE! Technology Someone asked me how to count to 10 in Perl: push @A, $_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift @a;shift @a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From merlyn at stonehenge.com Wed Feb 6 17:40:52 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> Message-ID: >>>>> "Curtis" == Curtis Poe writes: Curtis> Same details as the last meeting (which are on Curtis> http://portland.pm.org/, which I keep putting off updating) When you enter "emacs index.html", you can type "backspace" "h" to get help on how to use it. Or try pico... it's even easier. :-) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From poec at yahoo.com Wed Feb 6 17:59:35 2002 From: poec at yahoo.com (Curtis Poe) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: Message-ID: <20020206235935.44194.qmail@web9101.mail.yahoo.com> --- "Randal L. Schwartz" wrote: > >>>>> "Curtis" == Curtis Poe writes: > > > Curtis> Same details as the last meeting (which are on > Curtis> http://portland.pm.org/, which I keep putting off updating) > > When you enter "emacs index.html", you can type "backspace" "h" to > get help on how to use it. Or try pico... it's even easier. > > :-) I'm going to pretend you didn't insult me by saying pico and you can pretend that I don't use vi. Fair enough? [time passes] There, I updated the page. Are you happy? Did you enjoy nagging me? Did adding to my life's pressures bring you intense enjoyment? If I didn't know better, I'd think you were my ex-wife. :-) Where the heck does that stuff come from? Anyone know where I put my medication? Cheers, Curtis "Ovid" Poe ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __________________________________________________ Do You Yahoo!? Send FREE Valentine eCards with Yahoo! Greetings! http://greetings.yahoo.com TIMTOWTDI From mikeraz at patch.com Wed Feb 6 18:50:13 2002 From: mikeraz at patch.com (mikeraz@patch.com) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: ; from merlyn@stonehenge.com on Wed, Feb 06, 2002 at 03:40:52PM -0800 References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> Message-ID: <20020206165013.A7410@patch.com> On Wed, Feb 06, 2002 at 03:40:52PM -0800, Randal L. Schwartz typed: > When you enter "emacs index.html", you can type "backspace" "h" to > get help on how to use it. Or try pico... it's even easier. What is this blather? emacs? pico? What happened to using real tools like sed and awk? -- Michael Rasmussen aka mikeraz Be appropriate && Follow your curiosity "They that give up essential liberty to obtain temporary safety, deserve neither liberty nor safety." -- Benjamin Franklin But keep in mind: Any member introducing a dog into the Society's premises shall be liable to a fine of one pound. Any animal leading a blind person shall be deemed to be a cat. -- Rule 46, Oxford Union Society, London TIMTOWTDI From Ian_Shaughnessy at NAI.com Wed Feb 6 20:05:05 2002 From: Ian_Shaughnessy at NAI.com (Ian_Shaughnessy@NAI.com) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting Message-ID: <75256BFE0332D4118969009027E77E7C798D4B@SNC-5-14.nai.com> I personally prefer Microsoft Word. Err.. I mean... *runs from the pitchfork wielding mob* -----Original Message----- From: mikeraz@patch.com [mailto:mikeraz@patch.com] Sent: Wednesday, February 06, 2002 4:50 PM To: Randal L. Schwartz Cc: Curtis Poe; Austin Schutz; pdx-pm-list@pm.org Subject: Re: Next pdx.pm meeting On Wed, Feb 06, 2002 at 03:40:52PM -0800, Randal L. Schwartz typed: > When you enter "emacs index.html", you can type "backspace" "h" to > get help on how to use it. Or try pico... it's even easier. What is this blather? emacs? pico? What happened to using real tools like sed and awk? -- Michael Rasmussen aka mikeraz Be appropriate && Follow your curiosity "They that give up essential liberty to obtain temporary safety, deserve neither liberty nor safety." -- Benjamin Franklin But keep in mind: Any member introducing a dog into the Society's premises shall be liable to a fine of one pound. Any animal leading a blind person shall be deemed to be a cat. -- Rule 46, Oxford Union Society, London TIMTOWTDI TIMTOWTDI From topica at n4n.org Thu Feb 7 10:18:15 2002 From: topica at n4n.org (David Pool) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> Message-ID: <002801c1aff3$0bda3c90$6680e53f@Ralph> Curtis, >From the web site: Note: the page has been updated with vi. Not emacs and certainly not pico (how could you say such a thing, Randal? - sob). It's not entirely clear here...are you sobbing or calling names? :^) David ----------------------------------------------------------------- Of course, the entire effort is to put oneself Outside the ordinary range Of what are called statistics. -Stephen Spender in Chaos by James Gleick TIMTOWTDI From ckuskie at dalsemi.com Thu Feb 7 12:03:46 2002 From: ckuskie at dalsemi.com (Colin Kuskie) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: <20020206165013.A7410@patch.com>; from mikeraz@patch.com on Wed, Feb 06, 2002 at 04:50:13PM -0800 References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> <20020206165013.A7410@patch.com> Message-ID: <20020207100346.B5968@dalsemi.com> On Wed, Feb 06, 2002 at 04:50:13PM -0800, mikeraz@patch.com wrote: > On Wed, Feb 06, 2002 at 03:40:52PM -0800, Randal L. Schwartz typed: > > When you enter "emacs index.html", you can type "backspace" "h" to > > get help on how to use it. Or try pico... it's even easier. > > What is this blather? > > emacs? pico? What happened to using real tools like sed and awk? How dare you mention those 'other' programs on a Perl Mongers mailing list! I'm going to call Larry and have him revoke your $_ privileges. Colin TIMTOWTDI From mikeraz at patch.com Thu Feb 7 13:45:07 2002 From: mikeraz at patch.com (mikeraz@patch.com) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: <20020207100346.B5968@dalsemi.com>; from ckuskie@dalsemi.com on Thu, Feb 07, 2002 at 10:03:46AM -0800 References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> <20020206165013.A7410@patch.com> <20020207100346.B5968@dalsemi.com> Message-ID: <20020207114507.A15120@patch.com> Don't forget to get my @_ privs pulled too, the omission of shell was unintentional. pico ... bah! Hey you all missed someone on another list telling Randal that he was wrong - no need for Postgres over MySQL because you can script the functionality missing from MySQL in Perl. Randal's response showed why Perl is not the tool for EveryJob. On Thu, Feb 07, 2002 at 10:03:46AM -0800, Colin Kuskie typed: > On Wed, Feb 06, 2002 at 04:50:13PM -0800, mikeraz@patch.com wrote: > > On Wed, Feb 06, 2002 at 03:40:52PM -0800, Randal L. Schwartz typed: > > > When you enter "emacs index.html", you can type "backspace" "h" to > > > get help on how to use it. Or try pico... it's even easier. > > > > What is this blather? > > > > emacs? pico? What happened to using real tools like sed and awk? > > How dare you mention those 'other' programs on a Perl Mongers > mailing list! I'm going to call Larry and have him revoke your > $_ privileges. > > Colin -- Michael Rasmussen aka mikeraz Be appropriate && Follow your curiosity "They that give up essential liberty to obtain temporary safety, deserve neither liberty nor safety." -- Benjamin Franklin But keep in mind: You speak of courage. Obviously you do not know the difference between courage and foolhardiness. Always it is the brave ones who die, the soldiers. -- Kor, the Klingon Commander, "Errand of Mercy", stardate 3201.7 TIMTOWTDI From cp at onsitetech.com Thu Feb 7 13:58:37 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> <20020206165013.A7410@patch.com> <20020207100346.B5968@dalsemi.com> <20020207114507.A15120@patch.com> Message-ID: <009901c1b011$d5631e60$1a01a8c0@ot.onsitetech.com> ----- Original Message ----- From: To: "Colin Kuskie" Cc: "Randal L. Schwartz" ; "Curtis Poe" ; "Austin Schutz" ; Sent: Thursday, February 07, 2002 11:45 AM Subject: Re: Next pdx.pm meeting > Don't forget to get my @_ privs pulled too, the omission of > shell was unintentional. > > pico ... bah! > > Hey you all missed someone on another list telling Randal that > he was wrong - no need for Postgres over MySQL because you > can script the functionality missing from MySQL in Perl. > > Randal's response showed why Perl is not the tool for EveryJob. I saw the thread and it was, um, interesting. Randal's point was that database functionality belongs in (surprise!) the database. Pushing it into the program is a sure sign that someone probably didn't think things through. Perl may be the Swiss Army Chainsaw of programming, but let's face it, when was the last time someone used a Swiss Army Knife for building a boat? Yeah, you might be able to do it, but just because someone *can* do something doesn't mean they should. That, incidentally, is related to why I hate programming language bigotry (unless you're talking about COBOL and JCL - I still have nightmares). Sure, I have some serious problems with how Java does some things (for example, StringBuffer was created because the String class blows chunks and it displays some fundamental design problems with the language) but I have no problem with Java. It's a great tool if it's what you need. Heck, even VB has its uses. Yes, I have problems with VB also, but it's perfectly appropriate for many programming tasks. Perl advocacy is great, so long as we recognize that we might be putting on blinders. In short, use tools for their strengths, not their weaknesses. Cheers, -- Curtis "Ovid" Poe, Senior Programmer, ONSITE! Technology Someone asked me how to count to 10 in Perl: push @A, $_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift @a;shift @a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From mikeraz at patch.com Thu Feb 7 13:45:07 2002 From: mikeraz at patch.com (mikeraz@patch.com) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: <20020207100346.B5968@dalsemi.com>; from ckuskie@dalsemi.com on Thu, Feb 07, 2002 at 10:03:46AM -0800 References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> <20020206165013.A7410@patch.com> <20020207100346.B5968@dalsemi.com> Message-ID: <20020207114507.A15120@patch.com> Don't forget to get my @_ privs pulled too, the omission of shell was unintentional. pico ... bah! Hey you all missed someone on another list telling Randal that he was wrong - no need for Postgres over MySQL because you can script the functionality missing from MySQL in Perl. Randal's response showed why Perl is not the tool for EveryJob. On Thu, Feb 07, 2002 at 10:03:46AM -0800, Colin Kuskie typed: > On Wed, Feb 06, 2002 at 04:50:13PM -0800, mikeraz@patch.com wrote: > > On Wed, Feb 06, 2002 at 03:40:52PM -0800, Randal L. Schwartz typed: > > > When you enter "emacs index.html", you can type "backspace" "h" to > > > get help on how to use it. Or try pico... it's even easier. > > > > What is this blather? > > > > emacs? pico? What happened to using real tools like sed and awk? > > How dare you mention those 'other' programs on a Perl Mongers > mailing list! I'm going to call Larry and have him revoke your > $_ privileges. > > Colin -- Michael Rasmussen aka mikeraz Be appropriate && Follow your curiosity "They that give up essential liberty to obtain temporary safety, deserve neither liberty nor safety." -- Benjamin Franklin But keep in mind: You speak of courage. Obviously you do not know the difference between courage and foolhardiness. Always it is the brave ones who die, the soldiers. -- Kor, the Klingon Commander, "Errand of Mercy", stardate 3201.7 TIMTOWTDI From almeria at earthlink.net Thu Feb 7 18:17:56 2002 From: almeria at earthlink.net (Raphael Almeria) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: <20020207114507.A15120@patch.com> Message-ID: >Hey you all missed someone on another list telling Randal that >he was wrong - no need for Postgres over MySQL because you >can script the functionality missing from MySQL in Perl. > >Randal's response showed why Perl is not the tool for EveryJob. MySQL is for wimps...I always roll-my-own SQL-engine in perl. It works better! ;) TIMTOWTDI From dave at runkle.com Thu Feb 7 19:07:41 2002 From: dave at runkle.com (Dave Runkle) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting In-Reply-To: <009901c1b011$d5631e60$1a01a8c0@ot.onsitetech.com> Message-ID: <20020207170329.D58965-100000@trittico.fiddi.com> On Thu, 7 Feb 2002, Curtis Poe wrote: > Perl may be the Swiss Army Chainsaw of programming, but let's face > it, when was the last time someone used a Swiss Army Knife for > building a boat? > [snip] > Cheers, > -- > Curtis "Ovid" Poe, Senior Programmer, ONSITE! Technology > Someone asked me how to count to 10 in Perl: > push @A, $_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; > shift @a;shift @a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A Oh, about the same time someone used Perl to count to ten! Dave TIMTOWTDI From jeff at vpservices.com Thu Feb 7 16:48:29 2002 From: jeff at vpservices.com (Jeff Zucker) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> <20020206165013.A7410@patch.com> <20020207100346.B5968@dalsemi.com> <20020207114507.A15120@patch.com> Message-ID: <3C63043D.421CAAE6@vpservices.com> mikeraz@patch.com wrote: > > Hey you all missed someone on another list telling Randal that > he was wrong - no need for Postgres over MySQL because you > can script the functionality missing from MySQL in Perl. > > Randal's response showed why Perl is not the tool for EveryJob. I missed that discussion, what list was it on, are archives available? -- Jeff TIMTOWTDI From cp at onsitetech.com Fri Feb 8 12:42:10 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:29 2004 Subject: Next pdx.pm meeting References: <20020128210024.57218.qmail@web9101.mail.yahoo.com> <007d01c1aea3$dedcd040$1a01a8c0@ot.onsitetech.com> <20020206153310.F16266@gblx.net> <022501c1af67$018b6750$1a01a8c0@ot.onsitetech.com> <20020206165013.A7410@patch.com> <20020207100346.B5968@dalsemi.com> <20020207114507.A15120@patch.com> <3C63043D.421CAAE6@vpservices.com> Message-ID: <004c01c1b0d0$518e9730$1a01a8c0@ot.onsitetech.com> ----- Original Message ----- From: "Jeff Zucker" To: Sent: Thursday, February 07, 2002 2:48 PM Subject: Re: Next pdx.pm meeting > mikeraz@patch.com wrote: > > > > Hey you all missed someone on another list telling Randal that > > he was wrong - no need for Postgres over MySQL because you > > can script the functionality missing from MySQL in Perl. > > > > Randal's response showed why Perl is not the tool for EveryJob. > > I missed that discussion, what list was it on, are archives available? > > -- > Jeff > TIMTOWTDI Jeff, It was on the PLUG list. Here's a link: http://plug.skylab.org/200202/msg00344.html The thread actually goes on quite a bit. Enjoy! -- Curtis "Ovid" Poe, Senior Programmer, ONSITE! Technology Someone asked me how to count to 10 in Perl: push @A, $_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift @a;shift @a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From poec at yahoo.com Fri Feb 8 14:52:35 2002 From: poec at yahoo.com (Curtis Poe) Date: Wed Aug 4 00:05:29 2004 Subject: Intro to Perl In-Reply-To: <004c01c1b0d0$518e9730$1a01a8c0@ot.onsitetech.com> Message-ID: <20020208205235.52236.qmail@web9107.mail.yahoo.com> I just made a post to Perlmonks (http://www.perlmonks.org/index.pl?lastnode_id=6364&node_id=144213) regarding starting an "Intro to Perl" seminar. I won't be able to start this right away, but I was hoping to guage the "real" level of interest in this. I've have received a fair amount of email from people who want to learn Perl, so I wonder if they're really willing to jump through the hoops outlined in the post. Also, any suggestions would be welcome. Finding a place to actually do this would be great. We can do it at my company's offices (probably), but it wouldn't be very convenient. Below is the text of the post. ------------------------------ Camel Fishing I was chatting with merlyn one day (ooh, I'm such a shameless name dropper :) about the lack of Portland Perl Monger meetings and he said "why don't you run it?" Well, sometimes I'm not very bright, so I took over pdx.pm. It's been fun and we've had one social and one technical meeting (with the next meeting coming up). However, I am constantly getting email from people who ask a variant of the following question: I want to learn Perl. I've signed up for the mailing list but some of the conversations are intimidating. Are these meetings okay for a beginner? I always respond that we welcome any and all, from the "just looking" to the gurus. However, there has been a lot of interest in learning Perl, but not everyone can afford to pay for training. Further, just learning from a book can be deathly dull for some people (it is to me, for example). To deal with this, I'm thinking of a one-day (eight hour) Intro to Perl seminar. This is not to teach someone to program Perl. Rather, the intent is to give them enough exposure to the language that they will know where to look for answers when they want to get something done. I don't have the time or the resources to teach full time (even though I would love to). The intent is not to give them a fish, but to teach them how (hence, the title of this node and possibly of the seminar). There were some very interesting ideas presented in the Teaching a class thread, but again, I am not trying to teach Perl. Here is the minimum of what I'm shooting for: 1. They must supply their own copy of "Learning Perl" 2. We'll build a small app illustrating a key point from chapters 1 through 12 of Learning Perl 3. Teach them how to use perldoc and online resources 4. Small seminars with at max 5 attendees? 5. Printed seminar materials that they can later review for the highlights Item 1 would show they are serious. Maybe I could require they work through the LLama's Chapter 1 "Whirlwind tour" prior to attending? They could email me working copies of their programs as the price of admission :) I would probably request a very, very tiny change to the program just to show they didn't download the code from somewhere. I think that writing a very simplistic BlackJack game (file I/O demonstrated by saving high scores) would address item 2. Item 3 would teach them how to fish and item 4 would make it easier to manage and help them. Learning Perl would be used because it's fairly straightforward. The curricula could open each section by briefly explaining the topic (scalars, arrays, regexes(!)) and then using that to build a new part of the BlackJack program. I don't want to commit to teaching them everything, but giving them a starting point seems workable. Is this too ambitious for an 8 hour seminar? Can anyone suggest resources for developing a curriculum? I have three guinea pigs here at the office, so the first "real" seminar would not be totally new to me, but I could use some advice here. The one thing that really worries me is a comment that Tom Phoenix made to me (there I go name dropping again): "I never realized how much I didn't know about Perl until I started teaching it." That scares the heck out of me. Any common teaching pitfalls that I should be aware of? Cheers, Ovid ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __________________________________________________ Do You Yahoo!? Send FREE Valentine eCards with Yahoo! Greetings! http://greetings.yahoo.com TIMTOWTDI From moiraine at qwest.net Fri Feb 8 22:04:43 2002 From: moiraine at qwest.net (E J) Date: Wed Aug 4 00:05:29 2004 Subject: Alphabet References: <20020208205235.52236.qmail@web9107.mail.yahoo.com> Message-ID: <3C649FDB.8070302@qwest.net> > ===== > "Ovid" on http://www.perlmonks.org/ > Someone asked me how to count to 10 in Perl: > push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; > shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A > so how would you say (print..?) the alphabet. I wrote a script to display (in my browser) a list of the doc directories in my /usr/share/doc dir by the letter of the alphabet. Apache's index listing didn't do it for me, because it displayed *all* of them, and took quite a while. This is the default output of the script. ----------- Alphabet Pick a Letter: a b c d e f g h i j k l m n o p q r s t u v w x y z ---------- Alphabet is a link back to this page. Each letter is a link thusly: docs.cgi?letter=X where X is the letter that you want. This is the pertitant portion of the script; ------------ my $alphabet = "abcdefghijklmnopqrstuvwxyz"; for $item (split //, $alphabet) { print $q->a({-href=>"docs.cgi?letter=$item"},$item),"\ \n"; } --------- It's a cheesy little question, but one I was seeing a way to obsfucate...er...however you spell that. TIMTOWTDI From tex at off.org Sat Feb 9 02:20:32 2002 From: tex at off.org (Austin Schutz) Date: Wed Aug 4 00:05:29 2004 Subject: Alphabet In-Reply-To: <3C649FDB.8070302@qwest.net>; from moiraine@qwest.net on Fri, Feb 08, 2002 at 08:04:43PM -0800 References: <20020208205235.52236.qmail@web9107.mail.yahoo.com> <3C649FDB.8070302@qwest.net> Message-ID: <20020209002032.N16266@gblx.net> On Fri, Feb 08, 2002 at 08:04:43PM -0800, E J wrote: > > > ===== > > "Ovid" on http://www.perlmonks.org/ > > Someone asked me how to count to 10 in Perl: > > push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; > > shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A > > > > so how would you say (print..?) the alphabet. I wrote a script to > display (in my browser) a list of the doc directories in my > /usr/share/doc dir by the letter of the alphabet. Apache's index > listing didn't do it for me, because it displayed *all* of them, and > took quite a while. > Something like: print join(' ', 'a' .. 'z' ) . "\n"; Which will output: a b c d e f g h i j k l m n o p q r s t u v w x y z The important part of which is the .. operator, which returns an array representing the range between 'a' and 'z'. Range in this case refers to the ascii characters between 'a' and 'z'. > This is the pertitant portion of the script; > ------------ > my $alphabet = "abcdefghijklmnopqrstuvwxyz"; > for $item (split //, $alphabet) { > print $q->a({-href=>"docs.cgi?letter=$item"},$item),"\ \n"; > } > The equivalent would look something like: foreach $item ('a' .. 'z') { print $q->a({-href=>"docs.cgi?letter=$item"},$item),"\ \n"; } If you want to get fancy, you can do it with the map function, which would look something like: print map ( $q->a({-href=>"docs.cgi?letter=$_"},$_)."\ \n", 'a' .. 'z' ); where map works somewhat like a for ('a' .. 'z') { ... } loop. Austin TIMTOWTDI From moiraine at qwest.net Sat Feb 9 03:08:53 2002 From: moiraine at qwest.net (E J) Date: Wed Aug 4 00:05:29 2004 Subject: Alphabet References: <20020208205235.52236.qmail@web9107.mail.yahoo.com> <3C649FDB.8070302@qwest.net> <20020209002032.N16266@gblx.net> Message-ID: <3C64E725.1040805@qwest.net> Austin Schutz wrote: An answer to my question causing me to go "Duh!" realy loud to no one in particular and slap my forhead. Thank You both truthfully for the help, and sarcastically 'cause my forhead hurts. Elizabeth > On Fri, Feb 08, 2002 at 08:04:43PM -0800, E J wrote: > >>>===== >>>"Ovid" on http://www.perlmonks.org/ >>>Someone asked me how to count to 10 in Perl: >>>push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; >>>shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A >>> >>> >>so how would you say (print..?) the alphabet. TIMTOWTDI From tex at off.org Sat Feb 9 03:27:47 2002 From: tex at off.org (Austin Schutz) Date: Wed Aug 4 00:05:29 2004 Subject: Alphabet In-Reply-To: <3C64E725.1040805@qwest.net>; from moiraine@qwest.net on Sat, Feb 09, 2002 at 01:08:53AM -0800 References: <20020208205235.52236.qmail@web9107.mail.yahoo.com> <3C649FDB.8070302@qwest.net> <20020209002032.N16266@gblx.net> <3C64E725.1040805@qwest.net> Message-ID: <20020209012747.O16266@gblx.net> On Sat, Feb 09, 2002 at 01:08:53AM -0800, E J wrote: > Austin Schutz wrote: > > An answer to my question causing me to go "Duh!" realy loud to no one in > particular and slap my forhead. > It's always obvious once you know the answer :-) Austin TIMTOWTDI From mikeraz at patch.com Sat Feb 9 10:22:38 2002 From: mikeraz at patch.com (mikeraz@patch.com) Date: Wed Aug 4 00:05:29 2004 Subject: Intro to Perl In-Reply-To: <20020208205235.52236.qmail@web9107.mail.yahoo.com>; from poec@yahoo.com on Fri, Feb 08, 2002 at 12:52:35PM -0800 References: <004c01c1b0d0$518e9730$1a01a8c0@ot.onsitetech.com> <20020208205235.52236.qmail@web9107.mail.yahoo.com> Message-ID: <20020209082238.B30208@patch.com> Curtis, This is a great idea. If you are looking for a co-teacher I'd like to get in line. I've been mulling over your statement and these ideas have emerged: Time planning for the course is a difficult thing for a non teacher. The first couple of passes will probably be bumpy as a result. 12 chapters of Llama seems really aggressive. That's a chapter every 45 minutes. If the material can be presented that fast can it be assimilated and practiced? The one day format is good. Perhaps include a week of homework. Each morning for the week following the class you'll email the students a program to create. This will transfer the class setting to the work/home setting and give them the experience of doing Perl in their own life context. It seems that the format you have in mind would have 2 primary objectives: - teach the student where to get answers quickly - show the student some capabilities of Perl through the construction of a program I suggest adding: - build the students confidence that they can write Perl And in fact I would put that ahead of the display of Perl capabilities. To illustrate: To the end of building confidence I would suggest having them write 6 to 12 extremely, very, completely simple programs. (if they can be called programs) These simple program problems should be designed to be assimilated and typed within 10 minutes. They should take something that is (to the student at this point) some concept that they've read about and turn it into something that they have typed and made real (as real as any bunch of bits in a computer). A off the top of my head progression might be: 1st program: scalar assignment and printing 2nd program: list assignment and printing 3rd program: scalar modification 4th program: the while(<>) {...} construct 5th program: the if(//) construct on $_ # at this point we have a simple grep, real world useful 6th program: something more complex ... The intent here is to have them type something in see it work. To type things in Perl syntax into a file that Perl and interpret and give the student feedback "Yes! I've done it!" (hmm? replace "hello World!" with "Yes! I've done it!" must consider implications) Then type in more things and see them work. I think the actual typing is important. I think the repetition of typing and seeing results is important - you build the familiarity of making a program so that later they have a starting point where they have the comfort of familiarity. Overall structure: $complexity = 0; while() { type_Perl_program; see_it_work; $complexity++; # += .2 instead? adjust to class? } Save the iterations of the simple programs so that at the end of the day you review whatever level of complexity is achieved through showing how the end program is in essence the combination of all those very simple little programs. At the time you illustrate that big programs are collections of little program subroutines, objects, pipelines and such can be introduced. You can point out how they have learned some things and they can now use Perl. To do more things they just need to add in more simple program pieces to what they have. Since they just spent a day typing Perl and seeing it work they will have (at least to a small extent) internalized "Yes! I can do it!" On Fri, Feb 08, 2002 at 12:52:35PM -0800, Curtis Poe typed: > I just made a post to Perlmonks > (http://www.perlmonks.org/index.pl?lastnode_id=6364&node_id=144213) regarding starting an "Intro > to Perl" seminar. I won't be able to start this right away, but I was hoping to guage the "real" > level of interest in this. I've have received a fair amount of email from people who want to > learn Perl, so I wonder if they're really willing to jump through the hoops outlined in the post. > Also, any suggestions would be welcome. Finding a place to actually do this would be great. We > can do it at my company's offices (probably), but it wouldn't be very convenient. > > Below is the text of the post. > > ------------------------------ > Camel Fishing > > I was chatting with merlyn one day (ooh, I'm such a shameless name dropper :) about the lack of > Portland Perl Monger meetings and he said "why don't you run it?" Well, sometimes I'm not very > bright, so I took over pdx.pm. It's been fun and we've had one social and one technical meeting > (with the next meeting coming up). However, I am constantly getting email from people who ask a > variant of the following question: > > I want to learn Perl. I've signed up for the > mailing list but some of the conversations are > intimidating. Are these meetings okay for a > beginner? > > I always respond that we welcome any and all, from the "just looking" to the gurus. However, there > has been a lot of interest in learning Perl, but not everyone can afford to pay for training. > Further, just learning from a book can be deathly dull for some people (it is to me, for example). > To deal with this, I'm thinking of a one-day (eight hour) Intro to Perl seminar. This is not to > teach someone to program Perl. Rather, the intent is to give them enough exposure to the language > that they will know where to look for answers when they want to get something done. I don't have > the time or the resources to teach full time (even though I would love to). The intent is not to > give them a fish, but to teach them how (hence, the title of this node and possibly of the > seminar). > > There were some very interesting ideas presented in the Teaching a class thread, but again, I am > not trying to teach Perl. Here is the minimum of what I'm shooting for: > > 1. They must supply their own copy of "Learning Perl" > 2. We'll build a small app illustrating a key point > from chapters 1 through 12 of Learning Perl > 3. Teach them how to use perldoc and online resources > 4. Small seminars with at max 5 attendees? > 5. Printed seminar materials that they can later review > for the highlights > > Item 1 would show they are serious. Maybe I could require they work through the LLama's Chapter 1 > "Whirlwind tour" prior to attending? They could email me working copies of their programs as the > price of admission :) I would probably request a very, very tiny change to the program just to > show they didn't download the code from somewhere. > > I think that writing a very simplistic BlackJack game (file I/O demonstrated by saving high > scores) would address item 2. Item 3 would teach them how to fish and item 4 would make it easier > to manage and help them. > > Learning Perl would be used because it's fairly straightforward. The curricula could open each > section by briefly explaining the topic (scalars, arrays, regexes(!)) and then using that to build > a new part of the BlackJack program. I don't want to commit to teaching them everything, but > giving them a starting point seems workable. > > Is this too ambitious for an 8 hour seminar? Can anyone suggest resources for developing a > curriculum? I have three guinea pigs here at the office, so the first "real" seminar would not be > totally new to me, but I could use some advice here. The one thing that really worries me is a > comment that Tom Phoenix made to me (there I go name dropping again): "I never realized how much I > didn't know about Perl until I started teaching it." That scares the heck out of me. Any common > teaching pitfalls that I should be aware of? > > Cheers, > Ovid > > > ===== > "Ovid" on http://www.perlmonks.org/ > Someone asked me how to count to 10 in Perl: > push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; > shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A > > __________________________________________________ > Do You Yahoo!? > Send FREE Valentine eCards with Yahoo! Greetings! > http://greetings.yahoo.com > TIMTOWTDI -- Michael Rasmussen aka mikeraz Be appropriate && Follow your curiosity "They that give up essential liberty to obtain temporary safety, deserve neither liberty nor safety." -- Benjamin Franklin But keep in mind: There is no such thing as a problem without a gift for you in its hands. TIMTOWTDI From al at shadowed.net Sat Feb 9 22:41:59 2002 From: al at shadowed.net (Allison Randal) Date: Wed Aug 4 00:05:29 2004 Subject: Intro to Perl In-Reply-To: <20020208205235.52236.qmail@web9107.mail.yahoo.com> References: <004c01c1b0d0$518e9730$1a01a8c0@ot.onsitetech.com> <20020208205235.52236.qmail@web9107.mail.yahoo.com> Message-ID: <20020210044159.GF6431@shadowed.net> On Fri, Feb 08, 2002 at 12:52:35PM -0800, Curtis Poe wrote: > > Learning Perl would be used because it's fairly straightforward. The curricula could open each > section by briefly explaining the topic (scalars, arrays, regexes(!)) and then using that to build > a new part of the BlackJack program. I don't want to commit to teaching them everything, but > giving them a starting point seems workable. > > Is this too ambitious for an 8 hour seminar? For the most part, I'd say you're on target: a little theory, a little practice and an easy way to review. You may be a little ambitious in the number of subjects you want to cover though. Consider the fact that merlyn's Learning Perl course takes a full week of 8 hour days. There's only so much a brain can absorb in a single 8 hour period. > Can anyone suggest resources for developing a curriculum? You're free to use stuff off of linuxuniversity.org (giving credit where relevant). The curriculum was designed to stretch over 11 weeks of 2 hour classes, but it would give you a place to start, assignments for various topics, etc. (The presentation also leaves something to be desired, but there's some good content.) > Any common teaching pitfalls that I should be aware of? Yeah, that guy who talks merely to hear the sound of his own voice. There's one student like this in every class. :) Some things to keep in mind: - "Free" tends to attract alot of people, you may have trouble restricting it to 5 attendees (I get 50 the first week, trickling down to a managable 20 by the end). - Not everyone who comes to a free course will be serious about learning, no matter how hard you try to screen them. It works out though, because you can focus on the ones who are serious. - You might want to set up a separate "class" mailing list. It helps isolate the newbies from the flamers (or merely intimidating), and provides an environment where "there are no stupid questions". Call it "teaching" or not, but you are opening the door for the curious to become interested and the interested to become involved. This is the best task a teacher can hope to accomplish. Good luck! We can always use "open source" training in open source software. Allison -- "Everything you think you know is wrong." -- Jack L. Chalker, "The Cybernetic Walrus" TIMTOWTDI From jhoblitt at mysun.com Sat Feb 9 22:39:52 2002 From: jhoblitt at mysun.com (josh hoblitt) Date: Wed Aug 4 00:05:29 2004 Subject: Intro to Perl Message-ID: <6416c62aa4.62aa46416c@mysun.com> Curtis, It being many years (4+) since my last programming course this comment may be out of date. But I've found that biggest (and most usefull) feature that all intro classes seem to skip is presistance. I think most perl courses go into simple file IO but that it would be highly useful to also cover the basics of DBI/DBD. I'm not advocating teaching SQL syntax but simply how to connect and make queries. I think that will atleast open to the door to more useful, perhaps buisness class, applications as the students progresses on their own. I'd also like to suggest a community review process of the course content that would hopefully lead to base material for intro to perl courses (for instructors). Once or twice I've considered giving a lecture on perl (although that maybe optomistic of my own perl skills) but been intimidated by the sheer volumne of matterial that needs to be covered. Good luck, -Joshua Hoblitt -- jhoblitt@mysun.com ----- Original Message ----- From: Curtis Poe Date: Friday, February 8, 2002 10:52 am Subject: Intro to Perl > I just made a post to Perlmonks > (http://www.perlmonks.org/index.pl?lastnode_id=6364&node_id=144213) regarding starting an "Intro > to Perl" seminar. I won't be able to start this right away, but I > was hoping to guage the "real" > level of interest in this. I've have received a fair amount of > email from people who want to > learn Perl, so I wonder if they're really willing to jump through > the hoops outlined in the post. > Also, any suggestions would be welcome. Finding a place to > actually do this would be great. We > can do it at my company's offices (probably), but it wouldn't be > very convenient. > > Below is the text of the post. > > ------------------------------ > Camel Fishing > > I was chatting with merlyn one day (ooh, I'm such a shameless name > dropper :) about the lack of > Portland Perl Monger meetings and he said "why don't you run it?" > Well, sometimes I'm not very > bright, so I took over pdx.pm. It's been fun and we've had one > social and one technical meeting > (with the next meeting coming up). However, I am constantly > getting email from people who ask a > variant of the following question: > > I want to learn Perl. I've signed up for the > mailing list but some of the conversations are > intimidating. Are these meetings okay for a > beginner? > > I always respond that we welcome any and all, from the "just > looking" to the gurus. However, there > has been a lot of interest in learning Perl, but not everyone can > afford to pay for training. > Further, just learning from a book can be deathly dull for some > people (it is to me, for example). > To deal with this, I'm thinking of a one-day (eight hour) Intro to > Perl seminar. This is not to > teach someone to program Perl. Rather, the intent is to give them > enough exposure to the language > that they will know where to look for answers when they want to > get something done. I don't have > the time or the resources to teach full time (even though I would > love to). The intent is not to > give them a fish, but to teach them how (hence, the title of this > node and possibly of the > seminar). > > There were some very interesting ideas presented in the Teaching a > class thread, but again, I am > not trying to teach Perl. Here is the minimum of what I'm shooting > for: > 1. They must supply their own copy of "Learning Perl" > 2. We'll build a small app illustrating a key point > from chapters 1 through 12 of Learning Perl > 3. Teach them how to use perldoc and online resources > 4. Small seminars with at max 5 attendees? > 5. Printed seminar materials that they can later review > for the highlights > > Item 1 would show they are serious. Maybe I could require they > work through the LLama's Chapter 1 > "Whirlwind tour" prior to attending? They could email me working > copies of their programs as the > price of admission :) I would probably request a very, very tiny > change to the program just to > show they didn't download the code from somewhere. > > I think that writing a very simplistic BlackJack game (file I/O > demonstrated by saving high > scores) would address item 2. Item 3 would teach them how to fish > and item 4 would make it easier > to manage and help them. > > Learning Perl would be used because it's fairly straightforward. > The curricula could open each > section by briefly explaining the topic (scalars, arrays, > regexes(!)) and then using that to build > a new part of the BlackJack program. I don't want to commit to > teaching them everything, but > giving them a starting point seems workable. > > Is this too ambitious for an 8 hour seminar? Can anyone suggest > resources for developing a > curriculum? I have three guinea pigs here at the office, so the > first "real" seminar would not be > totally new to me, but I could use some advice here. The one thing > that really worries me is a > comment that Tom Phoenix made to me (there I go name dropping > again): "I never realized how much I > didn't know about Perl until I started teaching it." That scares > the heck out of me. Any common > teaching pitfalls that I should be aware of? > > Cheers, > Ovid > > > ===== > "Ovid" on http://www.perlmonks.org/ > Someone asked me how to count to 10 in Perl: > push@A,$_ for reverse > q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//;shift@a;shift@a > if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A > > __________________________________________________ > Do You Yahoo!? > Send FREE Valentine eCards with Yahoo! Greetings! > http://greetings.yahoo.com > TIMTOWTDI > TIMTOWTDI From poec at yahoo.com Sat Feb 9 23:04:28 2002 From: poec at yahoo.com (Curtis Poe) Date: Wed Aug 4 00:05:29 2004 Subject: Intro to Perl In-Reply-To: <20020210044159.GF6431@shadowed.net> Message-ID: <20020210050428.42933.qmail@web9105.mail.yahoo.com> First, to everyone who replied to me either personally or off list: thanks. Next: this idea is *not* to teach Perl. It's not a class on Perl. In fact, it's barely a class. It's more of a seminar. The intent is to be just enough "hands-on" stuff to give 'em a fishing pole. Whether or not they fish is up to them :) That being said, I can see now that I simply failed to do the math and trying to do too much. So, what I need to do is rethink this somewhat. The first change should probably be focusing on having them create a smaller, but fun, program (any suggestions?) and second, getting a good introduction to Perl culture (why didn't I have this the first time?). That may be too simplistic for what people want, but I think that walking prior to running is a Good Thing. Also, I've got some leads at PCC to check out re: classroom space. The ONSITE! office could hold a few people, but not many, so I'll keep researching venues. Cheers, Curtis ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __________________________________________________ Do You Yahoo!? Send FREE Valentine eCards with Yahoo! Greetings! http://greetings.yahoo.com TIMTOWTDI From merlyn at stonehenge.com Sun Feb 10 07:48:04 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:30 2004 Subject: Intro to Perl In-Reply-To: <20020210050428.42933.qmail@web9105.mail.yahoo.com> References: <20020210050428.42933.qmail@web9105.mail.yahoo.com> Message-ID: >>>>> "Curtis" == Curtis Poe writes: Curtis> That being said, I can see now that I simply failed to do the Curtis> math and trying to do too much. So, what I need to do is Curtis> rethink this somewhat. The first change should probably be Curtis> focusing on having them create a smaller, but fun, program Curtis> (any suggestions?) and second, getting a good introduction to Curtis> Perl culture (why didn't I have this the first time?). In 8 hours, you can spend 4 hours "in depth" getting to a sample program that uses decision and repetition (if, while) and scalars. But you probably won't get to arrays. But then you can use the other 4 hours to do a quick "survey of the remaining land", and show example syntax for each of the other concepts... just enough to say "Perl can do this, and here's how to find out where". Maybe it's more sales than training, but if you whet the appetitite, and at least give good keywords so they know what we're talking about, they'll feel OK to come to the meetings. In 4 hours you can probably cover 200 bullet points at a minute or so a piece. So just pick 200 mini-topics and give a sample line of code. You can group them (maybe 20 each on array and hash) for better comprehension. That's probably what I'd do with 8 hours for a newbie. -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From poec at yahoo.com Sun Feb 10 09:06:48 2002 From: poec at yahoo.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: Intro to Perl In-Reply-To: Message-ID: <20020210150648.63314.qmail@web9107.mail.yahoo.com> --- "Randal L. Schwartz" wrote: > In 8 hours, you can spend 4 hours "in depth" getting to a sample > program that uses decision and repetition (if, while) and scalars. > But you probably won't get to arrays. But then you can use the other > 4 hours to do a quick "survey of the remaining land", and show example > syntax for each of the other concepts... just enough to say "Perl can > do this, and here's how to find out where". Maybe it's more sales > than training, but if you whet the appetitite, and at least give good > keywords so they know what we're talking about, they'll feel OK to > come to the meetings. In 4 hours you can probably cover 200 bullet > points at a minute or so a piece. So just pick 200 mini-topics and > give a sample line of code. You can group them (maybe 20 each on > array and hash) for better comprehension. > > That's probably what I'd do with 8 hours for a newbie. Thanks for that. Since you do this for a living, I suspect you *probably* know what you're talking about ;) Quick question: I think I want to make them work through Learning Perl's "Whirlwind Tour" and email me the results as the price of admission. I'd request a minor change such as "take out the part of the program that gives people with the username of Randal a back door" (since it doesn't check to see if "Randal" has a password) to make sure they actually *did* something rather than just download the code from somewhere. If they accomplish that, is it realistic to assume that the class could move along faster? Cheers, Curtis ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __________________________________________________ Do You Yahoo!? Send FREE Valentine eCards with Yahoo! Greetings! http://greetings.yahoo.com TIMTOWTDI From merlyn at stonehenge.com Sun Feb 10 09:56:25 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:30 2004 Subject: Intro to Perl In-Reply-To: <20020210150648.63314.qmail@web9107.mail.yahoo.com> References: <20020210150648.63314.qmail@web9107.mail.yahoo.com> Message-ID: >>>>> "Curtis" == Curtis Poe writes: Curtis> Quick question: I think I want to make them work through Curtis> Learning Perl's "Whirlwind Tour" and email me the results as Curtis> the price of admission. I'd request a minor change such as Curtis> "take out the part of the program that gives people with the Curtis> username of Randal a back door" (since it doesn't check to see Curtis> if "Randal" has a password) to make sure they actually *did* Curtis> something rather than just download the code from somewhere. Curtis> If they accomplish that, is it realistic to assume that the Curtis> class could move along faster? Perhaps you haven't seen "Learning Perl, 3rd edition" yet? Your eyes have the mist of the smoke from a distant fire... -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From sechrest at peak.org Sun Feb 10 09:59:32 2002 From: sechrest at peak.org (John Sechrest) Date: Wed Aug 4 00:05:30 2004 Subject: Intro to Perl In-Reply-To: Your message of Sun, 10 Feb 2002 07:06:48 PST. <20020210150648.63314.qmail@web9107.mail.yahoo.com> Message-ID: <200202101559.g1AFxWL05066@tpol.peak.org> Pre-screening and pre-filtering the class people coming in is an excellent way to speed up the class. In the classes that I teach, I find that I spend a good deal of time trying to please the extremes. The more you can eliminate both the people at the top end who know most of it and the people at the bottom end who are not up to speed, the more effective your class can be. I have tried in the past to solve this problem by setting up 3 classes: Perl for the self taught A perl introduction and scripting for novices But from a marketing point of view, this does not work well at all. Curtis Poe writes: % --- "Randal L. Schwartz" wrote: % > In 8 hours, you can spend 4 hours "in depth" getting to a sample % > program that uses decision and repetition (if, while) and scalars. % > But you probably won't get to arrays. But then you can use the other % > 4 hours to do a quick "survey of the remaining land", and show example % > syntax for each of the other concepts... just enough to say "Perl can % > do this, and here's how to find out where". Maybe it's more sales % > than training, but if you whet the appetitite, and at least give good % > keywords so they know what we're talking about, they'll feel OK to % > come to the meetings. In 4 hours you can probably cover 200 bullet % > points at a minute or so a piece. So just pick 200 mini-topics and % > give a sample line of code. You can group them (maybe 20 each on % > array and hash) for better comprehension. % > % > That's probably what I'd do with 8 hours for a newbie. % % Thanks for that. Since you do this for a living, I suspect you *probably* know what you're % talking about ;) % % Quick question: I think I want to make them work through Learning Perl's "Whirlwind Tour" and % email me the results as the price of admission. I'd request a minor change such as "take out the % part of the program that gives people with the username of Randal a back door" (since it doesn't % check to see if "Randal" has a password) to make sure they actually *did* something rather than % just download the code from somewhere. If they accomplish that, is it realistic to assume that % the class could move along faster? % % Cheers, % Curtis % % ===== % "Ovid" on http://www.perlmonks.org/ % Someone asked me how to count to 10 in Perl: % push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; % shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A % % __________________________________________________ % Do You Yahoo!? % Send FREE Valentine eCards with Yahoo! Greetings! % http://greetings.yahoo.com % TIMTOWTDI ----- John Sechrest . Helping people use CEO PEAK - . computers and the Internet Public Electronic . more effectively Access to Knowledge,Inc . 1600 SW Western, Suite 180 . Internet: sechrest@peak.org Corvallis Oregon 97333 . (541) 754-7325 . http://www.peak.org/~sechrest TIMTOWTDI From poec at yahoo.com Wed Feb 13 16:26:30 2002 From: poec at yahoo.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: Meeting reminder In-Reply-To: <200202101559.g1AFxWL05066@tpol.peak.org> Message-ID: <20020213222630.13593.qmail@web9101.mail.yahoo.com> You're going to be there tonight, right? Right? You promised me you would. If I cry myself to sleep, it will be YOUR fault. Info is at http://portland.pm.org/ Cheers, Ovid ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __________________________________________________ Do You Yahoo!? Send FREE Valentine eCards with Yahoo! Greetings! http://greetings.yahoo.com TIMTOWTDI From merlyn at stonehenge.com Wed Feb 13 17:18:36 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:30 2004 Subject: Meeting reminder In-Reply-To: <20020213222630.13593.qmail@web9101.mail.yahoo.com> References: <20020213222630.13593.qmail@web9101.mail.yahoo.com> Message-ID: >>>>> "Curtis" == Curtis Poe writes: Curtis> You're going to be there tonight, right? Right? You promised me you would. If I cry myself to Curtis> sleep, it will be YOUR fault. I said nothing of the kind! :-) "Laugh monkey boy while you still have the chance!" -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From moiraine at qwest.net Thu Feb 14 12:20:42 2002 From: moiraine at qwest.net (E J) Date: Wed Aug 4 00:05:30 2004 Subject: 2 Qs XML(loosly) and reinventing the wheel Message-ID: <3C6BFFFA.7000008@qwest.net> First question: I'm slowly getting the whole XML thing. I was poking around trying to find some stuff on Perl and XML. There's a lot, but I feel a little overwhelmed. I read the O'Reilly XML book, so I understand the basics...I guess, I'm just looking for a good resource of info on how to play around with xml...er...using Perl :-). I have a whole bunch of the libXML modules (libXML-libXMl...anyone?anyone? I guess it's a debian dpkg thing...), so I have *some* of the documentation. I have a Perl cgi script that displays/searches my /usr/share/doc dir for doc dirs. Anyway, I understand the basics, but does anyone know of examples of playing with XML? Hm.....lets rephrase the question. Does anyone know the location of a variety of examples from simple to complex of Perl parsing XML? That was better...hehe. Second Question: Reinventing the wheel is one of those concepts that is rough to define isn't it? That's not the question, but you can answer if you want...of course, I can't stop you because if you're reading this you have a copy on your computer and you can do anything you want on your comptuer...where was I? That's not the question either. When is it reinventing the wheel? Ok...I downloaded a few Perl apps (message boards) to compare. Some I like better than others, but none of them *did* it for me. (btw, a lot of them look almost exactly alike) So, there's this one that *looks* good, but under that hood it's practically disgusting. Well, it's more than just content. On the outside it has a logical structure and it works. Except for the code looking like a monkey got into the computer and messed around with it, it's practically perfect. Now, I've taken it upon myself to clean up the code. At first it was simple, but I've gone a lot deeper. It's taken me a long time to find one I'm remotely comfortable with (requirments: configurablity, simplicity, threads (important), and Perl (very very important:-). Oh yes...I'm also cleaning it up for mod_perl. The first step type, use strict, save, run, clean up all errors...hehe. Another thing I've noticed is that delving into someone else's code has helped me learn a fair amount. Get an alternative perspective. I guess the code isn't all that ugly realy...I'm just used to use strict. Ok...back to the question. Delving has taken a little while already. Should I wade through more forum apps trying to find another one I like, or should I continue to play with the code? btw. The licence is Free, but I do want to notify the author before putting it up anywhere "public". Thanks for reading this hideously long thing, and thanks for advance for your answers. Elizabeth remind me not to post before 11am ever ever again, as there's a decided lack of coffee running through my system. thnx again. ----- sig missing because I have several accounts and several browsers and I keep forgetting to mark the whole attached thing. It has my Perl Geek Code :-) TIMTOWTDI From mharris at lclark.edu Thu Feb 14 13:31:55 2002 From: mharris at lclark.edu (mharris@lclark.edu) Date: Wed Aug 4 00:05:30 2004 Subject: Module Installation Question Message-ID: <74033514.1013686315@mcafee-43-73.lclark.edu> Hi, I new to the PDX perl mongers and this is my very first posting. If I'm not folowing protocol or proper group etiquette, then please let me know. Thanks in advance for your time. Question: I am trying to install a module on a Win32 system which has not been pre-compiled or tested on a Win32 system. The module's name is "Algorithm::Permute" and I downloaded it from CPAN. Now, I've tried to read as much documentation as I can find on installing and compiling modules, but I've come accross an error message for which I can find no solution. Here's the scenario: I extracted the tar.gz file to a tar file and then further extracted the tar file to the directory c:\perl\permute. Next, from the command prompt, I typed 'perl makefile.pl' to run the makefile program included with the module. Now here is where my problem lies. I execute 'nmake' from the command prompt from the same directory and get the following error message: 'NMAKE : fatal eror U1081: 'cl' : program not found' The line before this error message ends with 'permute.c', so I'm wondering if the error is caused by this file being misnamed. I'm not too familiar with nmake or other compilers, and thus have a limited ability deciphering nmake error messages. I've also tried copying the *.pm files that came with the module directly into my c:\perl\lib directory, but that didn't help. Any help would be appreciated, although I know that if I were just running Unix, I probably wouldn't have this problem. Thanks again for your time. Matt TIMTOWTDI From todd_caine at eli.net Thu Feb 14 14:33:27 2002 From: todd_caine at eli.net (Todd Caine) Date: Wed Aug 4 00:05:30 2004 Subject: Module Installation Question References: <74033514.1013686315@mcafee-43-73.lclark.edu> Message-ID: <3C6C1F17.FAE0EF0B@eli.net> Hello, The error message you are getting is telling you that the Microsoft C Compiler (cl) is either not installed or the path to it isn't set in your PATH environment variable. You can check the environment by typing 'set' at the DOS prompt. Do you have a C compiler on your computer for windows? The module you are trying to install is basically a Perl wrapper for a C library. So in order to get it to work you must be able to compile the C code that xsubpp is going to create from the .xs file. I hope that helps a little. Cheers, Todd mharris@lclark.edu wrote: > I execute 'nmake' > from the command prompt from the same directory and get the following > error message: > > 'NMAKE : fatal eror U1081: 'cl' : program not found' > I've also tried copying the *.pm files that came with the module > directly into my c:\perl\lib > directory, but that didn't help. TIMTOWTDI From Ian_Shaughnessy at NAI.com Thu Feb 14 14:43:56 2002 From: Ian_Shaughnessy at NAI.com (Ian_Shaughnessy@NAI.com) Date: Wed Aug 4 00:05:30 2004 Subject: Debug::Toolkit Message-ID: <75256BFE0332D4118969009027E77E7C798D71@SNC-5-14.nai.com> Just trying to remember, where do I find that again? I should have written it down. By the way, last night was a great presentation. :) Thanks TIMTOWTDI From tex at off.org Thu Feb 14 15:37:32 2002 From: tex at off.org (Austin Schutz) Date: Wed Aug 4 00:05:30 2004 Subject: Debug::Toolkit In-Reply-To: <75256BFE0332D4118969009027E77E7C798D71@SNC-5-14.nai.com>; from Ian_Shaughnessy@NAI.com on Thu, Feb 14, 2002 at 02:43:56PM -0600 References: <75256BFE0332D4118969009027E77E7C798D71@SNC-5-14.nai.com> Message-ID: <20020214133732.C16266@gblx.net> On Thu, Feb 14, 2002 at 02:43:56PM -0600, Ian_Shaughnessy@NAI.com wrote: > Just trying to remember, where do I find that again? I should have written > it down. By the way, last night was a great presentation. :) Thanks > TIMTOWTDI Ok, I got off my butt and packaged it: http://off.org/Debug-Toolkit-1.0.58.tar.gz Please let me know how it works for you. I'd like to get more eyes on it before I dump it on CPAN. Thanks! Austin TIMTOWTDI From todd_caine at eli.net Thu Feb 14 16:02:47 2002 From: todd_caine at eli.net (Todd Caine) Date: Wed Aug 4 00:05:30 2004 Subject: 2 Qs XML(loosly) and reinventing the wheel References: <3C6BFFFA.7000008@qwest.net> Message-ID: <3C6C3407.86F8BE93@eli.net> Good afternoon. E Jwrote: > First question: > Does anyone know the location of a variety of examples from simple to > complex of Perl parsing XML? I don't know of any one place that has a set of examples organized in the fashion that your looking for but here are some good URLs that might be of interest. http://www.perl.com/search/index.ncsp?sp-q=XML http://www.xml.com/pub/rg/Perl_Implementations http://www.xml.com/ I've been doing a some work recently with Perl and XML. I needed to be able to take a Juniper router configuration file which was stored as a very large XML document and generate db files for the DNS with A, PTR, and CNAME records. I used XML::XPath to pluck out very specific interface information that I wanted. I found XML::XPath to be very easy to use (assuming you are familiar with XPATH) for plucking data of XML files. > Second Question: > When is it reinventing the wheel? > Ok...I downloaded a few Perl apps (message boards) to compare. Some I > like better than others, but none of them *did* it for me. (btw, a lot > of them look almost exactly alike) So, there's this one that *looks* > good, but under that hood it's practically disgusting. As far as applications written in Perl go I wouldn't be overly concerned with reinventing the wheel. If you don't like the way it's done or the features it supports by all means rewrite the darn thing. There are a lot of apps out there that should just be recoded from the ground up after some proper planning is done. I think reinventing the wheel is talking more about generic peices of functionality such as a module, component or a class. For example if you were going to write a CGI script it would probably be a waste of time to not use CGI.pm. I don't think that rewriting a CGI script is neccessarily reinventing a wheel. > Should I wade through more forum apps trying to find another one I like, > or should I continue to > play with the code? This is really your call. In my opinion, if you see something close to what you want it would probably be better to start a dialogue with the author, find out where the project is heading, see if they need some help, and if they are willing to listen give them suggestions on how it could be improved (patches never hurt either ;). If they aren't willing to work with you or listen to any of your suggestions then it's time to move on either looking for another application with simular features or start planning your own. > btw. The licence is Free, but I do want to notify the author before > putting it up anywhere "public". I would recommend giving your code back to the maintainer of the application so that you can improve on an existing application rather than clutter the net with yet another forum app. > remind me not to post before 11am ever ever again, as there's a decided > lack of coffee running through my system. thnx again. Hey Elizabeth, don't post before 11 am ever again. 8'P Just kidding, these are good questions. just my $0.02, Todd TIMTOWTDI From cp at onsitetech.com Thu Feb 14 16:24:08 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: 2 Qs XML(loosly) and reinventing the wheel References: <3C6BFFFA.7000008@qwest.net> Message-ID: <007301c1b5a6$5230e820$1a01a8c0@ot.onsitetech.com> ----- Original Message ----- From: "E J" > Second Question: > Reinventing the wheel is one of those concepts that is rough to define > isn't it? That's not the question, but you can answer if you want...of > course, I can't stop you because if you're reading this you have a copy > on your computer and you can do anything you want on your > comptuer...where was I? That's not the question either. > When is it reinventing the wheel? I'm at work and don't have a lot of time, but I want to take a moment to address this issue. > The first step type, use strict, save, > run, clean up all errors...hehe. Another thing I've noticed is that > delving into someone else's code has helped me learn a fair amount. Get > an alternative perspective. I guess the code isn't all that ugly > realy...I'm just used to use strict. Good for you! Damian Conway gets away with not using strict. Mark-Jason Dominus gets away with not using strict (he actually has stated that it's over-rated). Many people would even be surprised to discover that CGI.pm does not use strict. Unless a programmer can legitimately claim to be on par with them, they should probably be using strict. Oh, I'm not saying for a one-liner or a throw-away script to analyze logs must have strict. I'm talking about real programs that are likely to be re-used. Let's take Damian Conway's code. He has stated that he tends not to make the types of errors that strict guards against and much of his code would be inhibited by strict. He often doesn't want strict references, for example. Most of his code would work just fine if you tossed 'use strict' at the top (and turning it off in the scope where he abuses this feature). However, when was the last time you installed a Conway module without copious tests? If a programmer comes to me with code that really, really needs strict turned off in several places and has a reasonable test suite in places to guard against problems that "use strict" will catch, I won't be worried as much about not using this pragma. Anyone else is probably going to fail my code review. "strict" lets us guard against failure in subtle ways that those who fail to use strict usually don't appreciate. So, that being blathered, you're absolutely correct to want to get that code to run under strict. Some can avoid strict for good reasons. Most who avoid strict are PRECISELY THE PROGRAMMERS WHO SHOULD BE USING IT. Pardon my shouting :) > Ok...back to the question. > Delving has taken a little while already. Should I wade through more > forum apps trying to find another one I like, or should I continue to > play with the code? That's purely a matter of personal choice. If this was a business decision, you'd have to look at how cost-effective it is. If it's a personal decision, you have to decide how much you value your free time :) As for reinventing wheels, let's consider the classic reinvention: CGI.pm. Why do most people reinvent this? 1. It's bloated. 2. They won't "learn" CGI if they use the module. 3. CGI.pm syntax seems intimidating to some people. Well, the first reason is valid. The other two are bogus, but rather than repeat again what I've said many times before, I'll skip to the real reasons someone might want to rewrite CGI.pm: 1. It's bloated (then use CGI::Lite) 2. Tries to cater to too many "needs" and thus confuses people (read the docs for how many ways you can call CGI::param()) 3. It doesn't use strict (many disagree with this reason) 4. Excessive use of globals make maintenance difficult I know of one (and only one) programmer who is working on a new CGI parsing module who is addressing some of these issues and addressing them *correctly*. We disagreed on the problem with globals, but he wants it backwards compatible and who am I to argue? Aside from this programmer, I've had a standing bet with CGI programmers that if they have written their own implementation, I'll find a minimum of 5 bugs or limitations. I usually find many more. That means that people who reinvent wheels are usually people who don't have enough Perl skill to do so adequately. Wheels should be reinvented to make better wheels, not different ones. Most wheels should be added to, not rewritten. This includes many modules on the CPAN. Discussion board software downloaded from the 'net does not usually qualify as a "wheel", however :) (In fact, I almost vetoed using Bugzilla here at work due to the pitiful code quality and its reliance on MySQL. However, it was free and easy to install, so we used it.) If you have the desire to clean up the code, that's great. I object, for example, to anyone using anything from Matt's Script Archive. Even though he has managed to get most of the bugs and security holes out of his code, the code quality is simply awful. We Perl programmers have a bad enough rap without using/spreading bad code. Summary of above rant: reinventing should be for improvement, not just change for change's sake. Most of the heavily used CPAN modules should not be reinvented without an excellent reason. Poorly written stuff, such as discussion boards, that others are not overly reliant on is another story. Hmm... I guess I had more time than I thought! ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From tex at off.org Thu Feb 14 17:07:08 2002 From: tex at off.org (Austin Schutz) Date: Wed Aug 4 00:05:30 2004 Subject: 2 Qs XML(loosly) and reinventing the wheel In-Reply-To: <007301c1b5a6$5230e820$1a01a8c0@ot.onsitetech.com>; from cp@onsitetech.com on Thu, Feb 14, 2002 at 02:24:08PM -0800 References: <3C6BFFFA.7000008@qwest.net> <007301c1b5a6$5230e820$1a01a8c0@ot.onsitetech.com> Message-ID: <20020214150708.J16266@gblx.net> > > The first step type, use strict, save, > > run, clean up all errors...hehe. Another thing I've noticed is that > > delving into someone else's code has helped me learn a fair amount. Get > > an alternative perspective. I guess the code isn't all that ugly > > realy...I'm just used to use strict. > > Good for you! Damian Conway gets away with not using strict. Mark-Jason > Dominus gets away with not using strict (he actually has stated that it's > over-rated). Many people would even be surprised to discover that CGI.pm > does not use strict. > > Unless a programmer can legitimately claim to be on par with them, they > should probably be using strict. Oh, I'm not saying for a one-liner or a > throw-away script to analyze logs must have strict. I'm talking about real > programs that are likely to be re-used. > I use strict in my code religiously. Here's one example of how it saves my bacon: Occasionally I forget something like my($html); at the top of a sub, particularly a long and complex one, e.g: #use strict sub text_to_html_header { my($string) = shift; $html .= "

$string

"; return $html; } Now, since $html is a package scoped variable by default, every time you run this sub the return will get larger and larger. This is obviously quite simplified, but this kind of error can be infuriating to try to find and often quite confusing in symptom. use strict totally trivializes debugging: Global symbol "$html" requires explicit package name at test.pl line 7. Global symbol "$html" requires explicit package name at test.pl line 8. Execution of test.pl aborted due to compilation errors. I'm not sure what the performance penalty is for use strict. I have been known to use it for testing, then leave it off in working code. Austin TIMTOWTDI From cp at onsitetech.com Thu Feb 14 17:48:23 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: 2 Qs XML(loosly) and reinventing the wheel References: <3C6BFFFA.7000008@qwest.net> <007301c1b5a6$5230e820$1a01a8c0@ot.onsitetech.com> <20020214150708.J16266@gblx.net> Message-ID: <00aa01c1b5b2$175de480$1a01a8c0@ot.onsitetech.com> ----- Original Message ----- From: "Austin Schutz" > I'm not sure what the performance penalty is for use strict. I > have been known to use it for testing, then leave it off in working code. > > Austin Great example you gave of having problems when not using strict. As for performance issues of not using strict, here's some wild speculation. For globals, perl has to go through a hash lookup (finding the variable in the symbol table for the namespace), find the appropriate slot in the typeglob that resides there and then get to the actual variable in question. Normally, these variables are bound (is this the right term?) at compile time to their actual location so Perl doesn't have to jump through all of those hoops. However, if one falls into the trap of using variable variables, you lose this benefit and incur the overhead: $fool = 'Ovid'; $idiot = 'fool'; print $$idiot; # prints Ovid Also, I understand that "local" also has this issue (since you can only use local with globals). Lexically scoped variables, though, are stored directly in a "scratchpad" assigned to the respective scope. Scratchpads are special anonymous arrays that hold the variables directly. There is no intervening typeglob that the variable is stored in (thus, in the pad, $foo and @foo have no relation to one another, unlike globals). It's my understanding that variable lookup in a pad is quick (are these also bound at runtime?) and without the typeglob, my variables are faster than local ones. So, as far as I am aware, strict becomes a performance issue when you force Perl to go back to a symbol table and look things up. However, I'm of the "don't worry about performance up front" camp, so this is the least of my worries. My worry is when someone accidentally does things like this: $foo = '['; $bar = 'foo'; print $$bar; # prints [ That might seem innocent, but guess what this does: $$foo = 3; If that follows the above code, you've just made the first index of all arrays 3 instead of zero (see perldoc perlvar and lookup $[). Try and debug that :) Cheers, Curtis "Ovid" POe ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From moiraine at qwest.net Fri Feb 15 12:05:32 2002 From: moiraine at qwest.net (E J) Date: Wed Aug 4 00:05:30 2004 Subject: 2 Qs XML(loosly) and reinventing the wheel References: <3C6BFFFA.7000008@qwest.net> <007301c1b5a6$5230e820$1a01a8c0@ot.onsitetech.com> Message-ID: <3C6D4DEC.5040009@qwest.net> Curtis Poe wrote: > > So, that being blathered, you're absolutely correct to want to get that code > to run under strict. Some can avoid strict for good reasons. Most who > avoid strict are PRECISELY THE PROGRAMMERS WHO SHOULD BE USING IT. Pardon > my shouting :) I totally understand. The programmer for the script/app in question is definately on use should use it. Especially, since I'm running it under mod_perl. Well, the origional script is regular cgi, but the new and improved I'm working on is mod_perl. Of course, after I typed this, I decided to make it work under regular cgi, first, then deal with mod_perl probs... > >>Ok...back to the question. >>Delving has taken a little while already. Should I wade through more >>forum apps trying to find another one I like, or should I continue to >>play with the code? >> > > That's purely a matter of personal choice. If this was a business decision, > you'd have to look at how cost-effective it is. If it's a personal > decision, you have to decide how much you value your free time :) It's kinda' both. I have Ikonboard, but it's not threaded. > As for reinventing wheels, let's consider the classic reinvention: CGI.pm. > Why do most people reinvent this? > > 1. It's bloated. use CGI qw(:standard) or use CGI qw(:html) > 2. They won't "learn" CGI if they use the module. yah...what.e.ver. > 3. CGI.pm syntax seems intimidating to some people. perldoc perltoot ;-) > Well, the first reason is valid. The other two are bogus, but rather than > repeat again what I've said many times before, I'll skip to the real reasons > someone might want to rewrite CGI.pm: hehe. > 1. It's bloated (then use CGI::Lite) or that, too. > 2. Tries to cater to too many "needs" and thus confuses people (read the > docs for how many ways you can call CGI::param()) Eh...understandable. I'm still not quite getting XML...I am, but not. > 3. It doesn't use strict (many disagree with this reason) Yes, but it's still more secure than plain cgi. > 4. Excessive use of globals make maintenance difficult that's what perl -d is for...hehe > > I know of one (and only one) programmer who is working on a new CGI parsing > module who is addressing some of these issues and addressing them > *correctly*. We disagreed on the problem with globals, but he wants it > backwards compatible and who am I to argue? Aside from this programmer, > I've had a standing bet with CGI programmers that if they have written their > own implementation, I'll find a minimum of 5 bugs or limitations. I usually > find many more. I wouldn't doubt it. Despite the various printing features, there's all the html packing and unpacking, proper header format with nothing more than print header(), file uploading handeling. All sorts of nifty stuff one doesn't think of when trying to rebuild it. The script I'm rewriting doesn't use CGI.pm at all, so builds a global %QUERY hash that contains...the query. A subroutine about 10-20 lines long is called each time the script is run to parse the queary string and put it in %QUERY. When, the whole time he coulda just said my $name = $q->param('name'); or whatever. And gotten rid of the hash and the subroutine. I don't doubt for a minute you'd find bugs. > That means that people who reinvent wheels are usually people who don't have > enough Perl skill to do so adequately. Wheels should be reinvented to make > better wheels, not different ones. Most wheels should be added to, not > rewritten. This includes many modules on the CPAN. Yup. > Discussion board software downloaded from the 'net does not usually qualify > as a "wheel", however :) (In fact, I almost vetoed using Bugzilla here at > work due to the pitiful code quality and its reliance on MySQL. However, it > was free and easy to install, so we used it.) If you have the desire to > clean up the code, that's great. Groovey...just making sure. :-) > I object, for example, to anyone using > anything from Matt's Script Archive. Even though he has managed to get most > of the bugs and security holes out of his code, the code quality is simply > awful. We Perl programmers have a bad enough rap without using/spreading > bad code. My fiance, who's JAPH, says the same thing. I ran across it, but didn't download anything, thank [+ $diety +]. > Summary of above rant: reinventing should be for improvement, not just > change for change's sake. Most of the heavily used CPAN modules should not > be reinvented without an excellent reason. Poorly written stuff, such as > discussion boards, that others are not overly reliant on is another story. :-) yay > Hmm... I guess I had more time than I thought! Yeah...I know what u mean. Elizabeth --- gotta get this sig up and show off my Perl Geek Code TIMTOWTDI From kellert at ohsu.edu Fri Feb 15 12:11:22 2002 From: kellert at ohsu.edu (Tom Keller) Date: Wed Aug 4 00:05:30 2004 Subject: performance question Message-ID: I hope this isn't off topic. I'm using perl for the following: Parse a list of start and stop positions for a fairly large (217061 chars) file of DNA sequence data (m/[acgt]+/i - hopefully Not alphabetized!). I have about 200 putative genes demarcated with these start and stop positions within that sequence that I wish to further analyze. From a performance pov, am I better off reading the same larger file 200 times or should I read the large file into memory, create 200 smaller files, then pass each of these to my next program? Thanks, Tom -- Thomas J. Keller, Ph.D. MMI Research Core Facility Oregon Health & Science University 3181 SW Sam Jackson Park Rd Portland, Oregon 97201 TIMTOWTDI From jkeroes at eli.net Fri Feb 15 12:35:42 2002 From: jkeroes at eli.net (Joshua Keroes) Date: Wed Aug 4 00:05:30 2004 Subject: performance question Message-ID: <01c1b64f$92b40ef0$cfad0010@sandbox> Why not store them in memory, and instead of calling another program, call another subroutine? This would save a number of file opens and some forking. Regardless, since it's only 200 files and calls to launch the other program, that probably won't amount to more than a few seconds or minutes at the most. Your call. Joshua PS When in doubt, benchmark. -----Original Message----- From: Tom Keller To: PDX Perl List Date: Friday, February 15, 2002 10:12 AM Subject: performance question >I hope this isn't off topic. I'm using perl for the following: >Parse a list of start and stop positions for a fairly large (217061 >chars) file of DNA sequence data (m/[acgt]+/i - hopefully Not >alphabetized!). I have about 200 putative genes demarcated with these >start and stop positions within that sequence that I wish to further >analyze. From a performance pov, am I better off reading the same >larger file 200 times or should I read the large file into memory, >create 200 smaller files, then pass each of these to my next program? TIMTOWTDI From jeff at vpservices.com Fri Feb 15 12:35:41 2002 From: jeff at vpservices.com (Jeff Zucker) Date: Wed Aug 4 00:05:30 2004 Subject: performance question References: Message-ID: <3C6D54FD.BFFEC90C@vpservices.com> Tom Keller wrote: > > Parse a list of start and stop positions for a fairly large (217061 > chars) file Do you mean a 217*k* file or 217*mb* file? If it's 217k, I wouldn't call that large :-). > of DNA sequence data (m/[acgt]+/i - hopefully Not > alphabetized!). I have about 200 putative genes demarcated with these > start and stop positions within that sequence that I wish to further > analyze. Do you mean something like this: A string in a data file (obviously not real data): gggCCCggggTTTTgggg An array of start/stop pairs: ( [3,5], [10,13] ) And you want to get the parts of the string demarcated by those positions (e.g. the first would be 'CCC' and the second 'TTTT'? If so, then you could 1. sort your start_stop codes to be in order by start position 2. open the data file 3. foreach (start-stop-pair) 3a. seek start pos 3b. read (stop_pos less start_pos) number of chars 3c. process or store the resulting string 3d. repeat from 3a as needed This would never slurp the entire data file and would only go through it once. (Although if you have overlapping start/stop positions it will do some backtracking). -- Jeff TIMTOWTDI From mharris at lclark.edu Fri Feb 15 13:23:24 2002 From: mharris at lclark.edu (mharris@lclark.edu) Date: Wed Aug 4 00:05:30 2004 Subject: performance question In-Reply-To: <01c1b64f$92b40ef0$cfad0010@sandbox> Message-ID: <159922434.1013772204@mcafee-43-73.lclark.edu> I would think if you're dealing with roughly 217kb of data, the performance gain of one sort method over the other should be negligible. --On Friday, February 15, 2002 10:35 AM -0800 Joshua Keroes wrote: > > Why not store them in memory, and instead of calling another program, > call another subroutine? This would save a number of file opens and > some forking. Regardless, since it's only 200 files and calls to > launch the other program, that probably won't amount to more than a > few seconds or minutes at the most. > > Your call. > Joshua > > PS When in doubt, benchmark. > > -----Original Message----- > From: Tom Keller > To: PDX Perl List > Date: Friday, February 15, 2002 10:12 AM > Subject: performance question > > >> I hope this isn't off topic. I'm using perl for the following: >> Parse a list of start and stop positions for a fairly large (217061 >> chars) file of DNA sequence data (m/[acgt]+/i - hopefully Not >> alphabetized!). I have about 200 putative genes demarcated with these >> start and stop positions within that sequence that I wish to further >> analyze. From a performance pov, am I better off reading the same >> larger file 200 times or should I read the large file into memory, >> create 200 smaller files, then pass each of these to my next program? > > TIMTOWTDI TIMTOWTDI From karic at lclark.edu Mon Feb 18 18:13:04 2002 From: karic at lclark.edu (Kari Chisholm) Date: Wed Aug 4 00:05:30 2004 Subject: performance question References: <159922434.1013772204@mcafee-43-73.lclark.edu> Message-ID: <3C719890.A4A0994D@lclark.edu> Perl'ers... A little endorsement of Perl, from the inventor of the 100+ terabyte WayBack Machine (archive.org) FULL ARTICLE http://www.oreillynet.com/pub/a/webservices/2002/01/18/brewster.html QUOTE Koman: What are the crawlers written in? Kahle: Combinations of C and Perl. Almost everything we can, we do in Perl -- for ease of portability, maintability, flexibility. Because there's so much horsepower we don't really require a tight system. The crawlers record pages into 100MB files in a standard archive file format, and then store it on one of the storage machines. Those are just normal PCs with four IDE hard drives, and its just writes along until it's filled up and then it goes to the next one. It goes through a couple of these machines a day: hundreds of gigabytes a day. The total gathering speed when everything is moving is about 10 terabytes a month, or half a Library of Congress a month. ======== -kari. TIMTOWTDI From larowgavin at qwest.net Mon Feb 18 20:57:37 2002 From: larowgavin at qwest.net (GAVIN LAROWE) Date: Wed Aug 4 00:05:30 2004 Subject: FreeBSD 4.5 In-Reply-To: <3C719890.A4A0994D@lclark.edu> Message-ID: Before spending 4-6 hrs downloading, I was wondering if anyone had/knew of a local mirror where I could get the 4.5 ISO images? Thanks, Gavin larowgavin@qwest.net PDX Pug Member TIMTOWTDI From almeria at earthlink.net Mon Feb 18 22:15:15 2002 From: almeria at earthlink.net (Raphael Almeria) Date: Wed Aug 4 00:05:30 2004 Subject: DNA performance question In-Reply-To: <01c1b64f$92b40ef0$cfad0010@sandbox> Message-ID: >Why not store them in memory, and instead of calling another program, call >another subroutine? This would save a number of file opens and some forking. >Regardless, since it's only 200 files and calls to launch the other program, >that probably won't amount to more than a few seconds or minutes at the >most. I agree. Storing your sequence data in memory is faster although if your data set is small then it probably won't matter too much if you read/write files as opposed to having everything in memory. If you have MBs of data then you should definitely store it in memory and process it there. TIMTOWTDI From cp at onsitetech.com Tue Feb 19 12:32:26 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: Lost and found References: Message-ID: <004b01c1b973$c7fe6480$1a01a8c0@ot.onsitetech.com> The last pdx.pm meeting was great, but there was one little detail that I forgot to bring up: lost and found :( A hat and a coat were left behind at out offices. If you can supply a brief description, I'd be happy to arrange getting them back to you. They were at separate ends of the office, so they don't appear to belong to the same owner. -- Cheers, Curtis Poe Senior Programmer ONSITE! Technology, Inc. www.onsitetech.com 503-233-1418 Taking e-Business and Internet Technology To The Extreme! TIMTOWTDI From kellert at ohsu.edu Tue Feb 19 16:14:46 2002 From: kellert at ohsu.edu (Tom Keller) Date: Wed Aug 4 00:05:30 2004 Subject: performance question In-Reply-To: References: Message-ID: Thanks all for your help. I ended up combining several ideas into two subroutines. Besides our own pdx-perl ideas I found Beginning Perl for Bioinformatics, James Tisdall, very useful. The main program takes a fasta format sequence file and a glimmer "gene predictor" output file. I can then process the putative genes directly, identified by the "glimmer id#" as the key to my genes_hash, or create a secondary input file to plug into the pipeline (not shown). [The latter refers to the GCG "Wisconsin package" of bioinformatics programs. It's a suite of utilities and analysis tools that many universities buy for analyzing biological data. It includes such things as fragment assembly and the blast genbank database query tool, and many other programs. ] sub create_segment_list { my ($glim_file, $seq_file, $prefix) = @_; print "in sub, glim_file and prefix($prefix) are: $glim_file of $seq_file\n"; ## sanity check my ($annotation, $putative_genes, @putative_genes); open GLIMMER_O, "$glim_file" or die "Can't open $glim_file\n"; undef $/ ; my $record = ; $/ = my $save_input_separator; #resets $/ ($annotation, $putative_genes) = ($record =~ /^(.*Putative Genes:\s*\n)(.*)/s); close GLIMMER_O; @putative_genes = split "\n", $putative_genes; return $annotations, \@putative_genes; } sub create_genes_hash { #input: list of putative genes (last section of glimmer output) my $array_ref = shift; my @input = @{$array_ref}; my ($id, $start, $stop, $comment, %pairs); foreach my $line (@input) { if ( $line =~ m/^\s+(\d+)\s+(\d+)\s+(\d+)\s+\[(.*)\]/ ) { $id = $1; $start = $2; $stop = $3; $comment= $4; $pairs{$id} = [ $start, $stop, $comment ]; ## hash, key=id, value=array_ref to list of start, stop, and comment } } return \%pairs; } Thanks for your help. Tom -- Thomas J. Keller, Ph.D. MMI Research Core Facility Oregon Health & Science University 3181 SW Sam Jackson Park Rd Portland, Oregon 97201 TIMTOWTDI From todd_caine at eli.net Wed Feb 20 17:02:38 2002 From: todd_caine at eli.net (Todd Caine) Date: Wed Aug 4 00:05:30 2004 Subject: If it breaks, you get both halves... Message-ID: <3C742B0E.EAFF91F0@eli.net> Doesn't this seem like strange behavior? perl -MSocket -e 'print inet_ntoa(gethostbyname("www.eli.net"))' prints: Usage: Socket::inet_ntoa(ip_address_sv) at -e line 1 but.... perl -MSocket -e 'print inet_ntoa("".gethostbyname("www.eli.net"))' does the right thing and prints the IP address in dotted decimal notation. Seems like a kludge to me. Shouldn't gethostbyname() return a scalar and inet_ntoa() accept one? I know Socket.pm is basically a Perl wrapper but other XS modules seem to convert their arguments and return values appropriately. Foo! Todd TIMTOWTDI From robb at empire2.com Wed Feb 20 17:19:33 2002 From: robb at empire2.com (Rob Bloodgood) Date: Wed Aug 4 00:05:30 2004 Subject: If it breaks, you get both halves... In-Reply-To: <3C742B0E.EAFF91F0@eli.net> Message-ID: > Doesn't this seem like strange behavior? > > perl -MSocket -e 'print > inet_ntoa(gethostbyname("www.eli.net"))' > > prints: > > Usage: Socket::inet_ntoa(ip_address_sv) at -e line 1 > > but.... > > perl -MSocket -e 'print > inet_ntoa("".gethostbyname("www.eli.net"))' > > does the right thing and prints the IP address in dotted > decimal notation. Wow... you actually found a workaround for that! I had to give up and use IO::Socket (I think, I don't really remember but it was another incarnation of same). L8r, Rob #!/usr/bin/perl -w use Disclaimer qw/:standard/; TIMTOWTDI From karic at lclark.edu Thu Feb 21 12:04:17 2002 From: karic at lclark.edu (Kari Chisholm) Date: Wed Aug 4 00:05:30 2004 Subject: decision trees Message-ID: <3C7536A1.A9D25A43@lclark.edu> I found this interesting perl implementation on the net: http://www.smalltime.com/dictator.html Naturally, there are all kinds of big ugly ways to go about building something like this - but it seems that it's recursive nature might make it a simple little routine. Any general ideas? -kari. TIMTOWTDI From merlyn at stonehenge.com Thu Feb 21 13:43:39 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:30 2004 Subject: decision trees In-Reply-To: <3C7536A1.A9D25A43@lclark.edu> References: <3C7536A1.A9D25A43@lclark.edu> Message-ID: >>>>> "Kari" == Kari Chisholm writes: Kari> I found this interesting perl implementation on the net: Kari> http://www.smalltime.com/dictator.html Kari> Naturally, there are all kinds of big ugly ways to go about building Kari> something like this - but it seems that it's recursive nature might Kari> make it a simple little routine. Any general ideas? Yeah, at its heart, it's the game "Animal". Here's a sample implementation, which I wrote for a magazine column but haven't used yet: #!/usr/bin/perl -w use strict; use Data::Dumper; my $info = "dog"; { try($info); redo if (yes("play again?")); } print "Bye!\n"; print Dumper($info); sub try { my $this = $_[0]; if (ref $this) { return try($this->{yes($this->{Question}) ? 'Yes' : 'No' }); } if (yes("Is it a $this")) { print "I got it!\n"; return 1; }; print "no!? What was it then? "; chomp(my $new = ); print "And a question that distinguishes a $this from a $new would be? "; chomp(my $question = ); my $yes = yes("And for a $new, the answer would be..."); $_[0] = { Question => $question, Yes => $yes ? $new : $this, No => $yes ? $this : $new, }; return 0; } sub yes { print "@_ (yes/no)?"; =~ /^y/i; } -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From cp at onsitetech.com Fri Feb 22 11:03:05 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: Perl job References: <3C7536A1.A9D25A43@lclark.edu> Message-ID: <004301c1bbc2$cbe0c740$1a01a8c0@ot.onsitetech.com> I am, fortunately, employed. For those of my Perl brethren who are not, however, there is a position open at Intel in Hillsboro for a "Senior Perl/Internet Software Engineer" Good luck! http://jobs.perl.org/job/239 Cheers, Curtis "Ovid" Poe -- "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From cp at onsitetech.com Thu Feb 28 10:04:25 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: Next meeting References: <3C7536A1.A9D25A43@lclark.edu> <004301c1bbc2$cbe0c740$1a01a8c0@ot.onsitetech.com> Message-ID: <000701c1c071$984e72c0$1a01a8c0@ot.onsitetech.com> Hi all, The next meeting is Wednesday, March 13th. Location is undetermined, but we've been thinking about A Beautiful Pizza at 3341 SE Belmont. Phone is 503-233-5444. It's my understanding that they have a room we might be able to use. We can scout the room and see if it will work for us. Other suggestions are welcome. The next meeting, incidentally, is just a social one. I'd like to be able to discuss how the meetings have been so far and if any suggestions or improvements can be made (or alternate locations provided!). Of course, if you have any general Perl issues that you would like to discuss, those are welcome, too :) -- "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From merlyn at stonehenge.com Thu Feb 28 11:40:50 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:30 2004 Subject: Next meeting In-Reply-To: <000701c1c071$984e72c0$1a01a8c0@ot.onsitetech.com> References: <3C7536A1.A9D25A43@lclark.edu> <004301c1bbc2$cbe0c740$1a01a8c0@ot.onsitetech.com> <000701c1c071$984e72c0$1a01a8c0@ot.onsitetech.com> Message-ID: >>>>> "Curtis" == Curtis Poe writes: Curtis> The next meeting is Wednesday, March 13th. Location is Curtis> undetermined, but we've been thinking about A Beautiful Pizza Curtis> at 3341 SE Belmont. Phone is 503-233-5444. Would love to be there... again. Had it been either of the following two weeks, no problem. {sigh} Curtis - you're conspiring against me again! A conspiracy of one! How do you manage? :) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From cp at onsitetech.com Thu Feb 28 12:29:57 2002 From: cp at onsitetech.com (Curtis Poe) Date: Wed Aug 4 00:05:30 2004 Subject: Next meeting References: <3C7536A1.A9D25A43@lclark.edu><004301c1bbc2$cbe0c740$1a01a8c0@ot.onsitetech.com><000701c1c071$984e72c0$1a01a8c0@ot.onsitetech.com> Message-ID: <002101c1c085$ed4749a0$1a01a8c0@ot.onsitetech.com> ----- Original Message ----- From: "Randal L. Schwartz" > Would love to be there... again. Had it been either of the following > two weeks, no problem. {sigh} > > Curtis - you're conspiring against me again! A conspiracy of one! > How do you manage? :) Randal, You can't even begin to imagine how difficult it was, on that first social meeting, to get everyone (including you) to agree on a date that everyone was comfortable with yet still ensured limited presence on your part :) Personally, I think you're deliberately booking the second Wednesday of every month because you're jealous of my cool earrings. Naturally, though, I harbor no ill feelings and if you still need some help with your fledgling Perl skills, I'll be there for you. (Somehow, I suspect I'm going to live to regret that last little wisecrack :) -- "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A TIMTOWTDI From karic at lclark.edu Thu Feb 28 17:12:31 2002 From: karic at lclark.edu (Kari Chisholm) Date: Wed Aug 4 00:05:30 2004 Subject: decision trees References: <3C7536A1.A9D25A43@lclark.edu> Message-ID: <3C7EB95F.8FC8411A@lclark.edu> Randal-- Noticed the AmIHotorNot thing on your site. Is that magazine article out there somewhere - or would you be willing to post the code? I think I'd like to build a system for rating webpages where the voting mechanism is in a left frame - and the right frame includes the website. Your code would be a good place to start... -kari. TIMTOWTDI From merlyn at stonehenge.com Thu Feb 28 17:17:06 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:30 2004 Subject: decision trees In-Reply-To: <3C7EB95F.8FC8411A@lclark.edu> References: <3C7536A1.A9D25A43@lclark.edu> <3C7EB95F.8FC8411A@lclark.edu> Message-ID: >>>>> "Kari" == Kari Chisholm writes: Kari> Randal-- Kari> Noticed the AmIHotorNot thing on your site. Is that magazine article Kari> out there somewhere - or would you be willing to post the code? Kari> I think I'd like to build a system for rating webpages where the Kari> voting mechanism is in a left frame - and the right frame includes the Kari> website. Your code would be a good place to start... Yeah, it's in the article that is referenced from that page! I don't put links in there for no reason. :) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From karic at lclark.edu Thu Feb 28 17:22:16 2002 From: karic at lclark.edu (Kari Chisholm) Date: Wed Aug 4 00:05:30 2004 Subject: decision trees References: <3C7536A1.A9D25A43@lclark.edu> <3C7EB95F.8FC8411A@lclark.edu> Message-ID: <3C7EBBA8.11017B19@lclark.edu> Um... The copy there says > Check out my "Am I Hoot-er-not?" voting system, again from an upcoming column. -k. "Randal L. Schwartz" wrote: > > >>>>> "Kari" == Kari Chisholm writes: > > Kari> Randal-- > > Kari> Noticed the AmIHotorNot thing on your site. Is that magazine article > Kari> out there somewhere - or would you be willing to post the code? > > Kari> I think I'd like to build a system for rating webpages where the > Kari> voting mechanism is in a left frame - and the right frame includes the > Kari> website. Your code would be a good place to start... > > Yeah, it's in the article that is referenced from that page! > I don't put links in there for no reason. :) > > -- > Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 > > Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. > See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI From merlyn at stonehenge.com Thu Feb 28 17:25:56 2002 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed Aug 4 00:05:30 2004 Subject: decision trees In-Reply-To: <3C7EBBA8.11017B19@lclark.edu> References: <3C7536A1.A9D25A43@lclark.edu> <3C7EB95F.8FC8411A@lclark.edu> <3C7EBBA8.11017B19@lclark.edu> Message-ID: >>>>> "Kari" == Kari Chisholm writes: Kari> Um... Kari> The copy there says >> Check out my "Am I Hoot-er-not?" voting system, again from an upcoming column. And on the hooternot page, notice the link to /merlyn/WebTechniques/ down near the bottom, right? Oh, you're thrown by the word "upcoming". Well, when I put it up, it was upcoming. :) It's long past now. Fixed. -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! TIMTOWTDI