From wildwood_players at yahoo.com Mon Mar 1 10:55:03 2004 From: wildwood_players at yahoo.com (Richard Wood) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: talk proposal: Perl debugger intro In-Reply-To: Message-ID: <20040301165503.50014.qmail@web11507.mail.yahoo.com> I haven't seen much chatter on this topic. I would like to see this session. I haven't used the debugger, that I recall. I usually just instrument my code with print statements. Andrew, are you planning a session? Rich Wood --- Andrew Sweger wrote: > I was digging through my archive of SPUG mail and > came across someone > preaching about the goodness of the Perl debugger. > Have we already had a > presentation on this recently? Is there interest in > having a live walk > through with the debugger (as an intro to how it can > save your butt and > sanity)? I'm willing (and I need the practice). > > -- > Andrew B. Sweger -- The great thing about > multitasking is that several > things can go wrong > at once. > > > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org > http://spugwiki.perlocity.org > ACCOUNT CONFIG: > http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, U-District, Seattle WA > WEB PAGE: http://www.seattleperl.org > ===== Richard O. Wood Wildwood IT Consultants, Inc. wildwood_players@yahoo.com 425.281.1914 mobile 206.544.9885 desk __________________________________ Do you Yahoo!? Get better spam protection with Yahoo! Mail. http://antispam.yahoo.com/tools From cmeyer at helvella.org Mon Mar 1 12:55:16 2004 From: cmeyer at helvella.org (Colin Meyer) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: SPUG party Message-ID: <20040301185516.GA11879@funpox.helvella.org> SPUGers, This upcoming Friday is our big party! Come and show your thanks for Tim, help plan the future of SPUG, and talk sh*t about javaProgrammers. ;-) http://spugwiki.perlocity.org/index.cgi?SPUGparty See you there, -Colin. From roscign1 at roscigno.com Mon Mar 1 13:27:27 2004 From: roscign1 at roscigno.com (Dan Roscigno) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: need help with Class::Methodmaker and tieing hash to DBM In-Reply-To: <200403011800.i21I0M202462@mail.pm.org> Message-ID: Hi All, I am trying to figure out how to tie a hash to a DBM file whie using Class::Methodmaker. Here is what I think I do: 1) subclass Tie::Hash with methods that use MLDBM 2) specify the above subclass in the use Class:Methodmaker statement Is this correct? If so then what I am looking for is some hand holding with step 1. I am guessing that I would want to look at the name of the object and the hash that is tied and use that to specify my DBM file. I have never worked with tie or DBM before, so I am not too sure about this. If someone could give me a nudge in the correct direction I think I can get started. Thanks, Dan Roscigno From lmzaldivar at mac.com Mon Mar 1 14:18:59 2004 From: lmzaldivar at mac.com (Luis Medrano) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Problems installing Mason Message-ID: <11403926.1078172339062.JavaMail.lmzaldivar@mac.com> List, I trying to install Mason thru "perl -MCPAN -e shell". but is failing: Failed 23/23 test scripts, 0.00% okay. 92/92 subtests failed, 0.00% okay. make: *** [test_dynamic] Error 2 /usr/bin/make test -- NOT OK Running make install make test had returned bad status, won't install without force Somebody knows a reason why this is happening or how can I fixed??.. Thanks, Luis From cwilkes-spug at ladro.com Mon Mar 1 14:36:35 2004 From: cwilkes-spug at ladro.com (Chris Wilkes) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Problems installing Mason In-Reply-To: <11403926.1078172339062.JavaMail.lmzaldivar@mac.com> References: <11403926.1078172339062.JavaMail.lmzaldivar@mac.com> Message-ID: <20040301203635.GB76490@www.ladro.com> On Mon, Mar 01, 2004 at 12:18:59PM -0800, Luis Medrano wrote: > > I trying to install Mason thru "perl -MCPAN -e shell". but is failing: > > Failed 23/23 test scripts, 0.00% okay. 92/92 subtests failed, 0.00% okay. > make: *** [test_dynamic] Error 2 > /usr/bin/make test -- NOT OK > Running make install > make test had returned bad status, won't install without force > > Somebody knows a reason why this is happening or how can I fixed??.. What I would do is cd into the directory where the files have been downloaded and try and do it "by hand" to see what the problem is. cd ~/.cpan/build/HTML-Mason* # this is a guess at the name perl Makefile.PL make clean make make test and see if there's anything in there you can search the archives at http://news.gmane.org/gmane.comp.web.mason.user for. Chris From lmzaldivar at mac.com Mon Mar 1 15:20:31 2004 From: lmzaldivar at mac.com (Luis Medrano) Date: Mon Aug 2 21:37:16 2004 Subject: [lmzaldivar@mac.com: SPUG: Problems installing Mason]] Message-ID: <7681541.1078176031835.JavaMail.lmzaldivar@mac.com> List, This is what is happening, I type i /mason/ from cpan and after displays all the different options it is showing this error: 87 items found Use of chdir('') or chdir(undef) as chdir() is deprecated at /usr/lib/perl5/5.8.0/CPAN.pm line 188, line 2. any idea what this all about?.. Cheers, Luis On Monday, March 01, 2004, at 12:39PM, Dan Sabath wrote: >Hey, >Got this from our resident Mason Guru. > >-dan > >>From the Mason FAQ: > > -----
Why do Mason tests fail during install? >The user that your web server runs as ("nobody" is a common choice, and the default on many systems), needs to be able to read the Mason build directory. If you are installing via CPAN as root, that directory is likely down root.cpan, which will have restrictive permissions. Try chmod'ding the build directory, or moving to a different (perhaps world-readable) build directory for the install. > > > From MichaelRWolf at att.net Mon Mar 1 15:58:34 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Steve McConnel at the WSA Developer SIG on Monday, March 8 Message-ID: This sounds like a great opportunity. When Steve McConnell speaks, it's one of thier best attended sessions, making it a great networking event as well as great program. http://wsa.org/events/event.asp?EventID=376 -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From tim at consultix-inc.com Mon Mar 1 16:37:28 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Steve McConnel at the WSA Developer SIG on Monday, March 8 In-Reply-To: References: Message-ID: <20040301223728.GA22453@jumpy.consultix-inc.com> On Mon, Mar 01, 2004 at 01:58:34PM -0800, Michael R. Wolf wrote: > > This sounds like a great opportunity. When Steve McConnell speaks, Who's he? -Tim > it's one of thier best attended sessions, making it a great networking > event as well as great program. > > http://wsa.org/events/event.asp?EventID=376 > > -- > Michael R. Wolf > All mammals learn by playing! > MichaelRWolf@att.net > > > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, Location Unknown > WEB PAGE: http://www.seattleperl.org -- *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Shell Programming + UNIX Utilities, 3/29; Perl Prog. + Modules, 4/5 | | Watch for my Manning book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* From roscign1 at roscigno.com Mon Mar 1 18:18:46 2004 From: roscign1 at roscigno.com (Dan Roscigno) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Re: need help with Class::Methodmaker and tieing hash to DBM In-Reply-To: Message-ID: Here is an update, I have added the code to create the DBM file: ############################################################## use DB_File; use Class::MethodMaker [ new => [qw/ -hash new /], hash => [{ -tie_class => 'DB_File', -tie_args => [ '/tmp/datum.db', O_APPEND|O_RDWR, 0666, $DB_HASH], } => 'datum' ], ]; ############################################################## Now I see the file created in /tmp/, and when I store a value in the hash 'datum' I can read it back, but the data does not appear to be persitent. On a second run of the code the only value I can see is the current data. Dan Roscigno On Mon, 1 Mar 2004, Dan Roscigno wrote: > > Hi All, > I am trying to figure out how to tie a hash to a DBM file whie using > Class::Methodmaker. Here is what I think I do: > > 1) subclass Tie::Hash with methods that use MLDBM > 2) specify the above subclass in the use Class:Methodmaker statement > > Is this correct? If so then what I am looking for is some hand > holding with step 1. I am guessing that I would want to look at the > name of the object and the hash that is tied and use that to specify > my DBM file. I have never worked with tie or DBM before, so I am > not too sure about this. If someone could give me a nudge in the > correct direction I think I can get started. > > Thanks, > Dan Roscigno > > > > From roscign1 at roscigno.com Mon Mar 1 19:29:22 2004 From: roscign1 at roscigno.com (Dan Roscigno) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Re: need help with Class::Methodmaker and tieing hash to DBM In-Reply-To: Message-ID: Hey Andrew, when are you giving the debugger talk :) I bet if I knew how to use the debugger I could have solved my problem in a different fashion. What I ended up doing is remove the datum hash from the args to the use Methodmaker call and create it by hand and tie it to the DB_File. This works fine, but I lose the auto-generated access functions. What I would love, is to be able to see exactly what Methodmaker generates for me, if I could look at that I could figure out the diff between my manual implementation and Methodmaker's magic implementation. Dan Roscigno On Tue, 2 Mar 2004, Dan Roscigno wrote: > > Here is an update, I have added the code to create the DBM file: > > ############################################################## > use DB_File; > use Class::MethodMaker > [ new => [qw/ -hash new /], > hash => [{ -tie_class => 'DB_File', > -tie_args => [ '/tmp/datum.db', > O_APPEND|O_RDWR, > 0666, $DB_HASH], > } => 'datum' ], > ]; > ############################################################## > > Now I see the file created in /tmp/, and when I store a value in the > hash 'datum' I can read it back, but the data does not appear to be > persitent. On a second run of the code the only value I can see is > the current data. > > Dan Roscigno > > > On Mon, 1 Mar 2004, Dan Roscigno wrote: > > > > > Hi All, > > I am trying to figure out how to tie a hash to a DBM file whie using > > Class::Methodmaker. Here is what I think I do: > > > > 1) subclass Tie::Hash with methods that use MLDBM > > 2) specify the above subclass in the use Class:Methodmaker statement > > > > Is this correct? If so then what I am looking for is some hand > > holding with step 1. I am guessing that I would want to look at the > > name of the object and the hash that is tied and use that to specify > > my DBM file. I have never worked with tie or DBM before, so I am > > not too sure about this. If someone could give me a nudge in the > > correct direction I think I can get started. > > > > Thanks, > > Dan Roscigno > > > > > > > > > > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, Location Unknown > WEB PAGE: http://www.seattleperl.org > From andrew at sweger.net Tue Mar 2 02:41:26 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Re: Perl debugger intro Message-ID: I'm resending this to the list. I think I tried sending it from the wrong address originally. On Mon, 1 Mar 2004, Richard Wood wrote: > I haven't seen much chatter on this topic. I would like to see this > session. I haven't used the debugger, that I recall. I usually just > instrument my code with print statements. Andrew, are you planning a > session? On Tue, 2 Mar 2004, Dan Roscigno wrote: > Hey Andrew, when are you giving the debugger talk :) I bet if I knew > how to use the debugger I could have solved my problem in a different > fashion. Well, this is encouraging. So far, I'm only planning a more or less ad hoc walk through using the debugger. I was either going to find some appropriate code that would let me walk through the basics and build on the techniques or I'd have to contrive something suitable. I don't have a prepared presentation. No slides. Can anyone pin down a date and location for a meeting? If so, I can probably commit to it then. And, at the risk of being accused of spamming, I offer one-on-one training or coaching on use of the Perl debugger. Contact me separately if you're interested. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From tim at consultix-inc.com Fri Mar 5 19:38:12 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:16 2004 Subject: [cmeyer@helvella.org: SPUG: SPUG party] Message-ID: <20040306013812.GA29009@jumpy.consultix-inc.com> SPUGers, Tonight is our big party! Come and show your thanks for Tim, help plan the future of SPUG, and talk sh*t about javaProgrammers. ;-) http://spugwiki.perlocity.org/index.cgi?SPUGparty See you there, -Colin From MichaelRWolf at att.net Fri Mar 5 20:31:49 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Steve McConnel at the WSA Developer SIG on Monday, March 8 In-Reply-To: <20040301223728.GA22453@jumpy.consultix-inc.com> (Tim Maher's message of "Mon, 1 Mar 2004 14:37:28 -0800") References: <20040301223728.GA22453@jumpy.consultix-inc.com> Message-ID: Tim Maher writes: > On Mon, Mar 01, 2004 at 01:58:34PM -0800, Michael R. Wolf wrote: >> >> This sounds like a great opportunity. When Steve McConnell speaks, > > Who's he? Author or "Code Complete", a best-selling tome (bible?) on coding. It's from Microsoft Press, but I've heard great things about it. http://www.amazon.com/exec/obidos/tg/detail/-/1556154844/qid=1078540234//ref=pd_ka_1/102-4318735-7630554?v=glance&s=books&n=507846 -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Sat Mar 6 16:07:55 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Steve McConnel at the WSA Developer SIG on Monday, March 8 In-Reply-To: (Michael R. Wolf's message of "Fri, 05 Mar 2004 18:31:49 -0800") References: <20040301223728.GA22453@jumpy.consultix-inc.com> Message-ID: Michael R. Wolf writes: > Tim Maher writes: > >> On Mon, Mar 01, 2004 at 01:58:34PM -0800, Michael R. Wolf wrote: >>> >>> This sounds like a great opportunity. When Steve McConnell speaks, >> >> Who's he? > > Author or "Code Complete", a best-selling tome (bible?) on coding. > It's from Microsoft Press, but I've heard great things about it. > > http://www.amazon.com/exec/obidos/tg/detail/-/1556154844/qid=1078540234//ref=pd_ka_1/102-4318735-7630554?v=glance&s=books&n=507846 In preparation for the meeting on Monday, I've started actually reading the book. I like it. It's a collection of best current practices (as of 1993) culled from academia, trade press, and actual coding, and filled with over 500 examples of good and bad coding. It's language-agnostic, preferring to discuss those issues that transcend any particular language. And it's heavily centered on coding (often called construction or development). To wit: "If this book were a dog, it would nuzzle up to construction, wag its tail at design and testing, and bark at the other development activities." In other words, it's coding-centric view of this softwar process system specification requirements analysis architectural design > detailed design >>>> coding and debugging > unit testing system testing maintenance As for the 1993 focus, the 2nd edition is on the presses, and due soon. The talk on Monday should mention a lot of what's been learned in the past decade and folded into the new edition. It should be a good meeting. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From andrew at sweger.net Sat Mar 6 17:40:49 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: party follow up Message-ID: We had a great gathering at Colin's last night where we enjoyed fine snacks, finer beverages, and the finest conversation. A big thank you to Colin for hosting us in his home. Tim arrived fashionably late. Thanks to the generous contributions from the SPUG community, Colin and I presented Tim with a microbrew beer of the month subscription and a glass beer stein with the following words engraved: SPUG thanks Tim Maher's SPUGstantial Contributions and Leadership 1998 - 2004 Seattle Perl Users Group (without Tim, we'd be SPUGless) Well, to tell the truth, he received a glass mug from a thrift store with a piece of paper taped to it with the words above printed on it along with a silhouette of the perl camel. We're still working on getting the actual stein made (it's the whole White Camel award delay all over again). Sadly, Tim had to leave the party early. With the full moon high in the clear black sky, this set the scene for the most serious discussions: the fate of SPUG. If I err in my retelling, please correct me. We want to keep things running more or less as they have (why change a good thing). Most significantly, we're keeping to the regular meeting schedule on the third Tuesday of each month. Our next meeting will be Tuesday, March 16th. I am offering an introduction to the perl debugger. WE NEED A LOCATION I believe Jim (Cthulhu) was working on securing a meeting space at a library (I'll be in touch, Jim). There is also a potential offer to use a small meeting space at a local company that's being looked into. We also discussed bringing back the two-talk format where we can have a beginner/intermediate topic at the start of the meeting followed by more advanced topics. This has been a very successful format in the past. We're also interested in bringing back the interactive atmosphere where discussions and networking become possible (rather than the lecture format that the Safeco auditorium favors). Would anyone care to step up to the plate for an advanced topic on March 16th? Again, a big thank you to the SPUG community for your contributions towards the gifts for Tim. And thanks for being a part of the best Perl users group in the world. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From tim at consultix-inc.com Sat Mar 6 22:58:01 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: party follow up In-Reply-To: References: Message-ID: <20040307045801.GA4498@jumpy.consultix-inc.com> SPUGsters, Thanks to all, especially our always willing party host Colin Meyer, for the nice gathering last night. I was quite surprised and pleased at the most welcome gifts of an engraved beer stein and beer-of-the-month club subscription, and am still agog with wonder at how the secret of my fondness for fine ales somehow leaked out! 9-}. But the best gift of all has been to get to know such a great group of local people, and to work with them to make SPUG as useful as it has been. After six years of leading the group, I now look forward to continuing my participation from my new vantage point in the audience, and as an occasional speaker. 8-} ============================================================== | Tim Maher, Ph.D. tim(AT)teachmeperl.com | | SPUG Leader Emeritus spug(AT)teachmeperl.com | ^^^^^^^^ | Seattle Perl Users Group http://www.seattleperl.com | | SPUG Wiki Site http://spugwiki.perlocity.org | | Perl Certification Site http://perlcert.perlocity.org | ============================================================== From MichaelRWolf at att.net Sun Mar 7 14:46:24 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Andy has been invited to speak at OSCON 2004 Message-ID: Congratulations to Andy Sweger for being invited to speak at OSCON 2004 (http://conferences.oreillynet.com/os2004/). This was Andy's first submission and his first acceptance. One for one -- that's a great average. Congratulations Andy!!! -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Mon Mar 8 12:40:43 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Exegesis 7 is out Message-ID: I haven't been following these, but just noticed that Exegesis 7 came out a week and a half ago. It's about the format keyword, a piece that's been removed from the Perl6 core in deference to a 'Form.pm' module and a 'form' function. http://www.perl.com/pub/a/2004/02/27/exegesis7.html I guess that means that the apocalypse is out, too. Um, lemme look. Here it is.... stuck on the end of Apocalypse 6. http://dev.perl.org/perl6/apocalypse/A06.html Let me quote it in its entirety.... Apocalypse 7: Formats Gone from the core. See Damian. The E7 hasn't migrated over to be with it's buddies A01..A06 (apocalypses) and E01..E06 (exegeses). If you haven't yet wrapped your brain around all things Perl6, here's a great place to fantasize about Perl6 in all it's holy writ. http://dev.perl.org/perl6/exegesis/ http://dev.perl.org/perl6/apocalypse/ Enjoy, Michael -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Mon Mar 8 12:58:13 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Emergence: The Connected Lives of Ants, Brains, Cities, and Software Message-ID: "Emergence: The Connected Lives of Ants, Brains, Cities, and Software" by Steven Johnson At the recent SPUG party, I was extolling the insight in this book. It reminded me of some of the themes in Steogeb Wolfram's "A new kind of Science". For me, "Emergence" was a huge insight into Open Source (the self-organizing community, not the technology). A central theme of the book is that higher level behavior emerges from independant sub-pieces that think _locally_ *and* act _locally_ -- there is no pacemaker, ruler, or top-down decision maker. He calls this higher level behavior emergent behavior because it emerges as system-level observable behavior even though the individuals in the system do not, in fact cannot, know about that higher level behavior. To support his swarm behavior observations, Steven uses slime mold, ant colonies, city (growth and organization), and some kinds of software (slashdot is mentioned) to show that despite the apparent high-level behavior, there is no high-level ruler or high-level rule. Remember those "aha" moments when you really learned something? Something that you alredy "knew", but that became more obvious at a higher level? This book did that for me with regard to the community behaviour of open source. For about 2 years now, I have been looking for the "business case" in Open Source. I haven't found it, at least not in an MBA-flavored way, because there is no centralized set of rules that govern open source business or community, therefore, there is not a central place to add value (my sweat labor) and extract value (in dollars). Duh! I knew that. Now I can stop looking for it, as the folks that studied slime mold stopped looking for the central pacemaker. It doesn't exist at the swarm- or hive-level. It doesn't exist at the Open Source community-level. (That centrality, however, *does* exist for the *technology* -- it's called Larry Wall and the Perl6 team.) [Note 1] Ants know that. They put work into the system, and get what they need from the system, but the system has no centralized rules for the distribution of the wealth or work -- just a bunch of individuals doing what they see that needs doing. I guess the correlary to the oft quoted -- "Absolute power corrupts absolutely" is "Lack of central power, creating a lack of absolute power, prevents absolute corruption". :-) This is absolutely a good thing, though my frustration at a lack of centrality is a common source of frustration for me. I highly recommend reading "Emergence". Thanks to Amazon.com for a nice link to more details.... http://www.amazon.com/exec/obidos/tg/detail/-/0684868768/qid=1078690454//ref=sr_8_xs_ap_i1_xgl14/102-4318735-7630554?v=glance&s=books&n=507846 Enjoy, Michael Wolf Note 1 -- Larry said it nicely in a "State of the Onion" address a few years back -- "Perl 5 was my rewrite of Perl. I want Perl 6 to be the community's rewrite of Perl and of the community." -- Larry Wall, State of the Onion speech, TPC4 ================================================================ A summary from the book jacket: Emergence is what happens when an interconnected system of relatively simple elements self-organizes to form more intelligent, more adaptive higher-level behavior. It's a bottom-up model; rather than being engineered by a general or a master planner, emergence begins at the ground level. Systems that at first glance seem vastly different -- ant colonies, human brains, cities, immune systems -- all turn out to follow the rules of emergence. In each of these systems, agents residing on one scale start producing behavior that lies a scale above them: ants create colonies, urbanites create neighborhoods. In the tradition of Being Digital and The Tipping Point, Steven Johnson, acclaimed as a "cultural critic with a poet's heart" (The Village Voice), takes readers on an eye-opening intellectual journey from the discovery of emergence to its applications. He introduces us to our everyday surroundings, offering suprising examples of feedback, self-organization, and adaptive learning. How does a lively neighborhood evolve out of a disconnected association of shopkeepers, bartenders, and real estate developers? How does a media event take on a life of its own? How will new software programs create an intelligent World Wide Web?Drawing upon evolutionary theory, urban studies, neuroscience, and computer games, Emergence is a guidebook to one of the key components of twenty-first-century culture. Until recently, Johnson explains, the disparate philosophers of emergence have worked to interpret the world. But today they are starting to change it. This book is the riveting story of that change and what it means for the future. If you've searched for information on the Web, played a recent video game, or accepted a collect call using voice recognition software, you've already encountered the new world of artificial emergence. Provocative, engaging, and sophisticated, Emergence puts you on the front lines of a sweeping revolution in science and thought. Here's the "Publisher's Weekly" review from the Seattle Public Library web site. To have the highly touted editor of a highly touted Web culture organ writing about the innate smartness of interconnectivity seems like a hip, winning combination unless that journal becomes the latest dot-com casualty. Feed, of which Johnson was cofounder and editor-in-chief, recently announced it was shuttering its windows, which should make for a less exuberant launch for his second bricks-and-mortar title, following 1997's Interface Culture. Yet the book's premise and execution make it compelling, even without the backstory. In a paradigmatic example here, ants, without leaders or explicit laws, organize themselves into highly complex colonies that adapt to the environment as a single entity, altering size and behavior to suit conditions exhibiting a weird collective intelligence, or what has come to be called emergence. In the first two parts of the book, Johnson ranges over historical examples of such smart interconnectivity, from the silk trade in medieval Florence to the birth of the software industry and to computer programs that produce their own software offspring, or passively map the Web by "watching" a user pool. Johnson's tone is light and friendly, and he has a journalistic gift for wrapping up complex ideas with a deft line: "you don't want one of the neurons in your brain to suddenly become sentient." In the third section, which bears whiffs of '90s exuberance, Johnson weighs the impact of Web sites like Napster, eBay and Slashdot, predicting the creation of a brave, new media world in which self-organizing clusters of shared interests structure the entertainment industry. The wide scope of the book may leave some readers wanting greater detail, but it does an excellent job of putting the Web into historical and biological context, with no dot.com diminishment. (Sept. 19) Forecast: All press is good press, so the failure of Feed at least makes a compelling hook for reviews, which should be extensive. A memoir of the author's Feed years can't be far behind, but in the meantime this should sell solidly, with a possible breakout if Johnson's media friends get behind it fully. Copyright 2001 Cahners Business Information, Inc. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From brian at coolnamehere.com Mon Mar 8 13:55:29 2004 From: brian at coolnamehere.com (Brian Wisti) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Exegesis 7 is out In-Reply-To: References: Message-ID: <16460.53169.683853.245593@localhost.localdomain> I'm glad that formatting is not part of the core language anymore. I got bit a few times by little problems in my code that were bumping up against the formatting rules. Now if I could only work my way through Parrot :-) Kind Regards, Brian Wisti http://coolnamehere.com/ Michael R. Wolf writes: > > I haven't been following these, but just noticed that Exegesis 7 came > out a week and a half ago. It's about the format keyword, a piece > that's been removed from the Perl6 core in deference to a 'Form.pm' > module and a 'form' function. > > http://www.perl.com/pub/a/2004/02/27/exegesis7.html > > I guess that means that the apocalypse is out, too. Um, lemme look. > Here it is.... stuck on the end of Apocalypse 6. > > http://dev.perl.org/perl6/apocalypse/A06.html > > Let me quote it in its entirety.... > > Apocalypse 7: Formats > > Gone from the core. See Damian. > > The E7 hasn't migrated over to be with it's buddies A01..A06 > (apocalypses) and E01..E06 (exegeses). If you haven't yet wrapped your > brain around all things Perl6, here's a great place to fantasize about > Perl6 in all it's holy writ. > > http://dev.perl.org/perl6/exegesis/ > http://dev.perl.org/perl6/apocalypse/ > > Enjoy, > Michael > > > -- > Michael R. Wolf > All mammals learn by playing! > MichaelRWolf@att.net > > > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, Location Unknown > WEB PAGE: http://www.seattleperl.org > > From sthoenna at efn.org Mon Mar 8 14:01:04 2004 From: sthoenna at efn.org (Yitzchak Scott-Thoennes) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Exegesis 7 is out In-Reply-To: References: Message-ID: <20040308200104.GA3352@efn.org> On Mon, Mar 08, 2004 at 10:40:43AM -0800, "Michael R. Wolf" wrote: > I guess that means that the apocalypse is out, too. Um, lemme look. > Here it is.... stuck on the end of Apocalypse 6. > > http://dev.perl.org/perl6/apocalypse/A06.html > > Let me quote it in its entirety.... > > Apocalypse 7: Formats > > Gone from the core. See Damian. Note that each apocalypse/exegesis is based on a chapter of the Camel. For those who note the number of chapters and despair of ever seeing Perl6 completed, it's not as bad as it seems. See the discussion at: http://perlmonks.org/index.pl?node=Perl6%20Timeline%20By%20Apocalypse (including some comments by Larry; you get to guess which username is Larry's). From sthoenna at efn.org Mon Mar 8 14:13:53 2004 From: sthoenna at efn.org (Yitzchak Scott-Thoennes) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Exegesis 7 is out In-Reply-To: <20040308200104.GA3352@efn.org> References: <20040308200104.GA3352@efn.org> Message-ID: <20040308201353.GA2120@efn.org> On Mon, Mar 08, 2004 at 12:01:04PM -0800, Yitzchak Scott-Thoennes wrote: > Note that each apocalypse/exegesis is based on a chapter of the Camel. > For those who note the number of chapters and despair of ever seeing > Perl6 completed, it's not as bad as it seems. See the discussion at: > > http://perlmonks.org/index.pl?node=Perl6%20Timeline%20By%20Apocalypse > > (including some comments by Larry; you get to guess which username is > Larry's). Larry's original post to perl6-language is here: http://groups.google.com/groups?selm=20040226192647.GA11151%40wall.org From jmail at poplarware.com Mon Mar 8 18:20:11 2004 From: jmail at poplarware.com (Jennifer Hodgdon) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: WSA - Steve McConnell - Ballard carpool? Message-ID: <5.2.1.1.2.20040308161319.02c86848@mail.poplarware.com> Would any SPUG members from Ballard like to carpool to the WSA Developers SIG this evening, at the Overlake conference Center in Bellevue? Registration and networking start at 6:30, so I would propose leaving here around 5:45 or 6. I'd be glad to drive 1-3 people in my Honda Civic (short people preferred for back seat!), or would accept an offer of a ride. Since I don't seem to come to SPUG meetings, I would welcome the chance to meet a few fellow list lurkers... -- Jennifer ____________________________ Jennifer Hodgdon Poplar ProductivityWare Database Solutions for Office Tedium Reduction jmail@poplarware.com http://www.poplarware.com From MichaelRWolf at att.net Tue Mar 9 16:25:28 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Comparing RUP, XP, and Scrum: Mixing a Process Cocktail for Your Team Message-ID: Thursday evening seminar.... A complement to last night's talk by Steve McConnell -- neither of the extremes are right.. the right process lies somewhere in the middle. Anyone interested in carpooling form Ballard? http://www.netobjectives.com/events/pr_2004_02_rxspc.htm ================================================================ Comparing RUP, XP, and Scrum: Mixing a Process Cocktail for Your Team This seminar discusses how combining the best of some popular processes can provide a successful software development environment for your project. Some people believe that software processes are a waste of time - that software development is an "art form" that requires complete developer freedom. Other people believe that rigid software processes are absolutely required in order to do the "herding of cats" that is required to manage a software development team. Both views are (of course) wrong - there is a happy medium. At its best a software process can: Provide management visibility into a software project Enable developers to do what they do best - develop Allow customers to get the benefits they want and need Manage the balance between Cost, Time, Quality, and Scope Learn: How to discuss and evaluate a software process The essence of the Rational Unified Process (RUP) The essence of XP (eXtreme Programming) The essence of Scrum How to combine the best of each into a "new and improved" process Who Should Attend: This seminar is for anyone who is involved in software development. The author takes a pragmatic view of each of these processes, which is a change from the evangelical view one often gets. Biography of Presenter: Dan Rawsthorne has been developing software for over 20 years and is an accomplished manager, mentor, coach, consultant, and architect. The projects he has worked on run the gamut ? from e-commerce, to databases, to military avionics. He has written and presented papers, chaired seminars at OOPSLA, and he has served as a columnist for C++ Report. He has taught courses on OO modeling and methods at both the University of Denver and the University of Washington. He currently serves on the Advisory Board of the Certificate Program in Objected-Oriented Analysis and Design using UML at the University of Washington. He has reviewed many books, authored the Requirements Modeling chapter in the ?Handbook of Object Technology? (1999), wrote the afterword for Jeffries (et al)?s ?Extreme Programming Installed? (2001), and contributed many sections to Adolph & Bramble?s ?Patterns of Effective Use Cases? (2003). He is a Certified Scrum Master, one of five people certified by Alistair Cockburn to teach Writing Effective Use Cases, and he has a PhD in mathematics from the University of Illinois. His book- A Unified Theory of Effective Software Development should be published in 2004. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From tim at consultix-inc.com Thu Mar 11 23:33:44 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Better way to sort POD list-items? Message-ID: <20040312053344.GA28840@jumpy.consultix-inc.com> SPUGaholics, I just found a need to dash off the following script, in order to sort the glossary entries of the book I'm working on into alphabetical order. Seems like there should be an easier way! Anybody got a cleaner technique for associating the item labels with their associated data? I think I used to know a trick with split() to do that, but if so I sure can't remember it now ... For those who don't know POD, the list format is: =item 1. This is item 1 =item 2. This is item 2 and so forth. The script below assumes its input starts with the first "=item label" and ends with the data for the last item. That's easily arranged in vim with a line like: :33,47! sort_pod_items *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my Manning book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* #! /usr/bin/perl -wl # sort_pod_items # Tim Maher, tim@teachmeperl.com # Thu Mar 11 21:13:40 PST 2004 # Quick and dirty program to sort POD list items into ASCIIbetical order # Doesn't handle nested lists yet, and is in dire need of a more elegant way # to get item-labels hooked together with their contents $/=undef; # Runs in file-slurping mode, so all data presented at once to implicit loop $_=; # First, split lines into '=item' labels for POD-list items, # followed by associated contents @fields= split /(^=item[^\n]*?\n)/m, $_; # Now join labels with following contents, so each such pair is in one chunk # Input array of 10 items reduced to output array of 5, etc. for ( $i=0; $i < @fields; $i++ ) { ( $fields[$i] =~ /^=item\b/ ) and push @fields2, "$fields[$i]$fields[$i++ + 1]"; } # Now use Schwartzian Transform to sort by labels of list items and print print map { $_->[1] } sort { $a->[0] cmp $b->[0] } map { if ( $_ =~ /^=item\s+([^\n]+)\n/ ) { # $1 is label for list item [ $1 , $_ ] } else { die "Bad data: records must start with =item\n"; } } @fields2 ; __DATA__ =item This and stuff was written =item What more drivel here =item Other getting the idea? =item That's all the end From tim at consultix-inc.com Fri Mar 12 00:03:16 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Using regex rather than split for item sorting Message-ID: <20040312060316.GA20797@jumpy.consultix-inc.com> I tried to convert my earlier unappealing split()-based solution to one that uses a matching operator, but I guess I've bungled the postive-lookahead somehow, because it doesn't extract the last label/item pair. Can somebody see the problem? *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my Manning book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* #! /usr/bin/perl -wl # sort_pod_items2 # Tim Maher, tim@teachmeperl.com # Thu Mar 11 21:59:09 PST 2004 # Quick and dirty program to sort POD list items into ASCIIbetical order # Doesn't handle nested lists yet, and is in dire need of a more elegant way # to get item-labels hooked together with their contents # NOTE: Runds in file-slurping mode, so all data presented at once to implicit loop $/=undef; $_=; # First, split lines into '=item' labels for POD-list items, # followed by associated contents # Something wrong with following; doesn't extract last list item @fields= /^(=item\b.*?)(?:^=item\b|\Z)/smg; $i=1; foreach ( @fields ) { print "$i: $_\n"; $i++; } exit; print map { $_->[1] } sort { $a->[0] cmp $b->[0] } map { if ( $_ =~ /^=item\s+([^\n]+)\n/ ) { # $1 is label for list item [ $1 , $_ ] } else { die "Bad data: records must start with =item\n"; } } @fields; __DATA__ =item This and stuff was written =item What more drivel here =item Other getting the idea? =item That's all the end From joel at largest.org Fri Mar 12 01:00:17 2004 From: joel at largest.org (Joel Grow) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Using regex rather than split for item sorting In-Reply-To: <20040312060316.GA20797@jumpy.consultix-inc.com> References: <20040312060316.GA20797@jumpy.consultix-inc.com> Message-ID: On Thu, 11 Mar 2004, Tim Maher wrote: > I tried to convert my earlier unappealing split()-based solution to one > that uses a matching operator, but I guess I've bungled the > postive-lookahead somehow, because it doesn't extract the last > label/item pair. > > Can somebody see the problem? (?:) tells Perl regex to not use these parens as matching (only use them as grouping). So your regex is matching '=item' and the chapter title and text for this entry like you want, but it then keeps going and matches up to and including the next '=item'. You'll notice when running your code that it actually skips every other entry, not just the last one. To see what I mean, add a set of parens around the second '=item': @fields= /^(=item\b.*?)(?:^(=item)\b|\Z)/smg; You'll see you're matching the second '=item' but throwing it away. In the spirit of TMTOWTDI: use strict; # Quick and dirty program to sort POD list items into ASCIIbetical order # Doesn't handle nested lists yet, and is in dire need of a more elegant # way to get item-labels hooked together with their contents # %file will look like: # # %file = ('Chapter 1' => 'text of chapter 1', # 'Chapter 2' => 'text of chapter 2'); my %file; { local $/ = '=item '; # this assumes '=item' will be flush-left %file = map { split("\n", $_, 2) } # first line becomes key, rest is value grep { $_ } # gets rid of singleton '=item ' at beginning map { chomp; $_ } ; } for my $chapter (sort keys %file) { print "Chapter '$chapter'.\n\n"; print "$file{$chapter}\n\n"; } __DATA__ =item This and stuff was written =item What more drivel here =item Other getting the idea? =item That's all the end Joel > *--------------------------------------------------------------------------* > | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | > | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | > *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* > | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | > | Watch for my Manning book: "Minimal Perl for Shell Users & Programmers" | > *--------------------------------------------------------------------------* > > #! /usr/bin/perl -wl > # sort_pod_items2 > # Tim Maher, tim@teachmeperl.com > # Thu Mar 11 21:59:09 PST 2004 > > # Quick and dirty program to sort POD list items into ASCIIbetical order > # Doesn't handle nested lists yet, and is in dire need of a more elegant way > # to get item-labels hooked together with their contents > > # NOTE: Runds in file-slurping mode, so all data presented at once to implicit loop > > $/=undef; > $_=; > > # First, split lines into '=item' labels for POD-list items, > # followed by associated contents > > # Something wrong with following; doesn't extract last list item > @fields= /^(=item\b.*?)(?:^=item\b|\Z)/smg; > > $i=1; > foreach ( @fields ) { > print "$i: $_\n"; > $i++; > } > exit; > > > print map { $_->[1] } > sort { $a->[0] cmp $b->[0] } > map { > if ( $_ =~ /^=item\s+([^\n]+)\n/ ) { # $1 is label for list item > [ $1 , $_ ] > } else { > die "Bad data: records must start with =item\n"; > } > } @fields; > > __DATA__ > =item This > > and stuff was written > > =item What > > more drivel here > > =item Other > > getting the idea? > > =item That's all > > the end > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, Location Unknown > WEB PAGE: http://www.seattleperl.org > From Perl at Doorways.org Thu Mar 11 17:02:25 2004 From: Perl at Doorways.org (Marc M. Adkins) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Better way to sort POD list-items? In-Reply-To: <20040312053344.GA28840@jumpy.consultix-inc.com> References: <20040312053344.GA28840@jumpy.consultix-inc.com> Message-ID: <200403111802.25816.Perl@Doorways.org> On Friday 12 March 2004 12:33 am, Tim Maher wrote: > SPUGaholics, > > I just found a need to dash off the following script, in order to > sort the glossary entries of the book I'm working on into > alphabetical order. > > Seems like there should be an easier way! > > Anybody got a cleaner technique for associating the item labels > with their associated data? I think I used to know a trick with > split() to do that, but if so I sure can't remember it now ... Not sure what you are asking, but I usually write the first part using splice: my @chunks = split /(^=item[^\n]*?\n)/m, $_; my @items = ( ); shift @chunks; # throw away useless header while (@chunks > 1) { my ($item, $contents) = splice @chunks, 0, 2; push @items, "$item$contents"; } I use this pattern on a daily basis for splitting apart documents. If you're asking about the sort, you could use: while (@chunks > 1) { my ($item, $contents) = splice @chunks, 0, 2; my ($name) = $item =~ /^=item\s*(.*?)\s*\n/; push @items, [ $name, "$item$contents" ]; } and then the sort becomes: sort { $a->[0] cmp $b->[0] } @items; I suppose another variant might be: my @chunks = split /(^=item[^\n]*?\n)/m, $_; shift @chunks; my %items = @chunks; print $_, $items{$_} for sort keys %items; Though I think that depends on well-formedness of the =item tags. I would probably use: my @chunks = split /^=item\s+(.*?)\s*?\n/m, $_; shift @chunks; my %items = @chunks; print "=item $_\n", $items{$_} for sort keys %items; But I'm probably missing the point. mma From sthoenna at efn.org Fri Mar 12 01:24:57 2004 From: sthoenna at efn.org (Yitzchak Scott-Thoennes) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Better way to sort POD list-items? In-Reply-To: <20040312053344.GA28840@jumpy.consultix-inc.com> References: <20040312053344.GA28840@jumpy.consultix-inc.com> Message-ID: On Thu, 11 Mar 2004, Tim Maher wrote: > > I just found a need to dash off the following script, in order to > sort the glossary entries of the book I'm working on into > alphabetical order. > > Seems like there should be an easier way! > > Anybody got a cleaner technique for associating the item labels > with their associated data? I think I used to know a trick with > split() to do that, but if so I sure can't remember it now ... Does pod/splitpod from the perl source distribution help? http://public.activestate.com/cgi-bin/perlbrowse?file=//depot/maint-5.8/perl/pod/splitpod&rev= From scott+spug at mail.dsab.rresearch.com Fri Mar 12 11:40:30 2004 From: scott+spug at mail.dsab.rresearch.com (Scott Blachowicz) Date: Mon Aug 2 21:37:16 2004 Subject: SPUG: Re: Using regex rather than split for item sorting In-Reply-To: <20040312060316.GA20797@jumpy.consultix-inc.com> References: <20040312060316.GA20797@jumpy.consultix-inc.com> Message-ID: <20040312174145.7FF141DEA@sabami.seaslug.org> Tim Maher wrote: > I tried to convert my earlier unappealing split()-based solution > to one that uses a matching operator, but I guess I've bungled the > postive-lookahead somehow, because it doesn't extract the last > label/item pair. Positive-lookahead is '?=', not '?:'... Scott > > Can somebody see the problem? > *--------------------------------------------------------------------------* > | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | > | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | > *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* > | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | > | Watch for my Manning book: "Minimal Perl for Shell Users & Programmers" | > *--------------------------------------------------------------------------* > > #! /usr/bin/perl -wl > # sort_pod_items2 > # Tim Maher, tim@teachmeperl.com > # Thu Mar 11 21:59:09 PST 2004 > > # Quick and dirty program to sort POD list items into ASCIIbetical order > # Doesn't handle nested lists yet, and is in dire need of a more elegant way > # to get item-labels hooked together with their contents > > # NOTE: Runds in file-slurping mode, so all data presented at once to implicit loop > > $/=undef; > $_=; > > # First, split lines into '=item' labels for POD-list items, > # followed by associated contents > > # Something wrong with following; doesn't extract last list item > @fields= /^(=item\b.*?)(?:^=item\b|\Z)/smg; > > $i=1; > foreach ( @fields ) { > print "$i: $_\n"; > $i++; > } > exit; > > > print map { $_->[1] } > sort { $a->[0] cmp $b->[0] } > map { > if ( $_ =~ /^=item\s+([^\n]+)\n/ ) { # $1 is label for list item > [ $1 , $_ ] > } else { > die "Bad data: records must start with =item\n"; > } > } @fields; > > __DATA__ > =item This > > and stuff was written > > =item What > > more drivel here > > =item Other > > getting the idea? > > =item That's all > > the end > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, Location Unknown > WEB PAGE: http://www.seattleperl.org Scott.Blachowicz@seaslug.org From tim at consultix-inc.com Fri Mar 12 12:05:02 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Re: Using regex rather than split for item sorting In-Reply-To: <20040312174145.7FF141DEA@sabami.seaslug.org> References: <20040312060316.GA20797@jumpy.consultix-inc.com> <20040312174145.7FF141DEA@sabami.seaslug.org> Message-ID: <20040312180502.GA13896@jumpy.consultix-inc.com> On Fri, Mar 12, 2004 at 09:40:30AM -0800, Scott Blachowicz wrote: > Tim Maher wrote: > > > I tried to convert my earlier unappealing split()-based solution > > to one that uses a matching operator, but I guess I've bungled the > > postive-lookahead somehow, because it doesn't extract the last > > label/item pair. > > Positive-lookahead is '?=', not '?:'... > > Scott Arrgh! Wrong nonsense character. 8-} A cleaned-up version that actually works is shown below. Thanks Scott! *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my Manning book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* #! /usr/bin/perl -wl # sort_pod_items # Tim Maher, tim@teachmeperl.com # Thu Mar 11 21:13:40 PST 2004 # Quick and dirty program to sort POD list items into # ASCIIbetical order. Doesn't handle nested lists yet { # Local change to $/ local $/=undef; # NOTE: Uses file-slurping mode # $_=; # For test runs $_=<>; } # First, extract each '=item' label from the POD-list along wtih # its following data @items = /^(=item\b.*?)(?=^=item\b|\Z)/smg; # Print chunks to see if it came out correctly $ENV{DEBUG} and do { $i=1; foreach ( @items ) { print "$i: $_\n"; $i++; } }; # Now use Schwartzian transform to sort list-items according to # their labels, and print print map { $_->[1] } sort { $a->[0] cmp $b->[0] } map { if ( /^=item\s+([^\n]+)\n/ ) { # $1 is label for list item [ $1 , $_ ] } else { die "$0: Bad data: List items must start with =item\n"; } } @items; __DATA__ =item This and stuff was written =item What more drivel here =item Other getting the idea? =item That's all the end From MichaelRWolf at att.net Fri Mar 12 12:42:16 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Re: Using regex rather than split for item sorting In-Reply-To: <20040312180502.GA13896@jumpy.consultix-inc.com> (Tim Maher's message of "Fri, 12 Mar 2004 10:05:02 -0800") References: <20040312060316.GA20797@jumpy.consultix-inc.com> <20040312174145.7FF141DEA@sabami.seaslug.org> <20040312180502.GA13896@jumpy.consultix-inc.com> Message-ID: >> Positive-lookahead is '?=', not '?:'... >> >> Scott > > Arrgh! Wrong nonsense character. 8-} ----- --- |...| |.| |...| |.| A correlary to two wrong's don't make a right[1] is that a "wrong" and a "non" don't make a right. $XP_success++; Chock up another win for code reviews and (virtual) pair-wise programming. Notes: 1. But of course, two Wrights did make an airplane. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Fri Mar 12 18:29:18 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: SPUG is *not* dead! Message-ID: "I'm not dead yet." There *will* be a SPUG meeting next Tuesday. Formal announcement to follow. In the mean time, here's an informal announcemnt: >==========================================================> > Date: Tuesday, March 16 > > Time: 7-9 p.m. > > Place: To Be Determined > > > > Primary presentation: > > The Perl Debugger > > by Andy Sweger > > > > Informal presentations: > > Project lightning talks > > by all of us > > (follow-up "hack session" on Thursday) > >==========================================================> There are still some outstanding issues. Wanted: We still need a venue. Please contact me if you'd like to trade your huge living room and large screen TV, or your employer's a meduim size meeting room and projector in exchange for the glory of being acknowledged in public for your contribution to the advancement of Perl. We still need a projector. Ditto on the acknowledgement, and thanks in advance if you could help with this. Questions: Meeting space is valuable. What's your price sensitivity for personal contributions toward *rented* space? Many of the professional meetings I attend cover this expense by yearly membership dues or per-meeting contributions of at least $10. I think we could minimize the cost, but as in life/business/engineering, there are trade-offs. What do you think? -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From lee at colleton.net Sun Mar 14 23:42:45 2004 From: lee at colleton.net (Lee Colleton) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: SPUG is *not* dead! In-Reply-To: References: Message-ID: <1079329365.4906.201.camel@raven> On Fri, 2004-03-12 at 16:29, Michael R. Wolf wrote: > "I'm not dead yet." > > There *will* be a SPUG meeting next Tuesday. Great! I'll be there, depending on where *there* is.. > Formal announcement to follow. In the mean time, here's an informal > announcemnt: > > >==========================================================> > > Date: Tuesday, March 16 > > > Time: 7-9 p.m. > > > Place: To Be Determined > To this I recommend Espresso Vivace (mentioned previously[1]) > > Primary presentation: > > > The Perl Debugger > > > by Andy Sweger > > > > > > Informal presentations: > > > Project lightning talks > > > by all of us > > > (follow-up "hack session" on Thursday) > I can give a lightning talk about a CD Library project I'm working on. I'm wondering if the hack session will be in a physical location or is it an online meeting? > Questions: > > Meeting space is valuable. What's your price sensitivity for > personal contributions toward *rented* space? Many of the > professional meetings I attend cover this expense by yearly > membership dues or per-meeting contributions of at least $10. > I think we could minimize the cost, but as in > life/business/engineering, there are trade-offs. What do you > think? I support meeting in free venues like libraries and coffee shops. Ten dollars per meeting is currently beyond my means. Would there be a student rate for this fee? I could manage 5$ meeting I think. Regards, -- Lee Colleton [1]Message-Id: <1077653174.1299.33.camel@raven> -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://mail.pm.org/pipermail/spug-list/attachments/20040314/604bf76d/attachment.bin From rcordek at cmp.com Mon Mar 15 03:01:13 2004 From: rcordek at cmp.com (rcordek@cmp.com) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Ron Cordek/SMO/CMPNotes is out of the office on business Message-ID: I will be out of the office starting 03/11/2004 and will not return until 03/19/2004. I am out of the office until March 19th, 2004 Please call my office line at 949-223-3636 and leave a message. I will be answering voice mail, but on an infrequent basis. Thank you Ron Thanks, Ron From andrew at sweger.net Mon Mar 15 16:06:03 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Location scouting report Message-ID: I went and took a look at a couple potential meeting places today at lunch time. Here's what I found. More comments at the end... University Heights Center ------------------------- (University District at University Way and 50th St) Features: chairs, large meeting rooms, off-street parking, easy access from I-5, great neighborhood for food (right across the street from Cedars) Lacks: Internet access, data projector Requires: a signed "contract", payment in advance, cost $35.00 per hour (their hours are measured in units of 55 of our minutes) There's no way we'd get a room for tomorrow night, but future third Tuesday's of the month can be scheduled through the end of the year (they were available as of my visit this afternoon). So, if no one showed up for a meeting, someone is left holding the bag (with no money in it). If someone breaks something, whoever signed the form will have some explaining to do. And so on. Espresso Vivace --------------- (Capitol Hill on Denny at Broadway) Features: a few chairs, small meeting room, great neighborhood for food, free WiFi Internet access, awesome espresso Lacks: parking, data projector Requires: putting your group name and time on a calendar on the wall There's no way we'd get the room for tomorrow night because it's already booked. We're too late. The place is a little hard to have a group conversation in (harsh accoustics, music playing). It's also difficult to find, even on foot, unless you know where to look. They don't want anything in return for using the place other than your well deserved patronage (see postscript). (Sorry, Richard) Other comments: Short of someone screaming Eureka! in the next hour or two, I think I'm cancelling this meeting. We tend to have really poor turnout when there isn't enough time for folks to schedule their evening and transportation (which is hard to do if you don't know where you're going). And I don't want to sit around doing nothing if folks can't show up. This may be the first time SPUG has *not* had a monthly technical meeting in six years (as of tomorrow, the "real" sixth anniversary of SPUG). Or wait, maybe there was the ocassional cancellation around the thickest holidays. P.S. - Regarding Espresso Vivace: based on their website, I got the impression these folks were really full of themselves and the stuff David Schomer has done to advance the art of espresso. Maybe he has and maybe he hasn't. But what I can tell you is that what goes on at that place is clearly the result of a hacker. The fans bolted onto the back of the bean grinders, spliced into power cords hooked up to a digital timing unit, and the digital temperature monitoring equipment looks like it's out of a lab. It's all got the traditional marks of an engineer-by-day or someone who just thinks like one. They clearly enjoy what they do. And they make some way fancy little cups of espresso. Very tasty. Oh, sure. I'm still buzzed. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From andrew at sweger.net Mon Mar 15 16:51:40 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Eureka! Message-ID: Thanks to Peter Darley for coming through in a pinch. He has offered the use of his small office space on Stone Way north of Gasworks Park. More details to follow shortly. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From andrew at sweger.net Mon Mar 15 17:23:10 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Mar. Mtg, Intro to Perl Debugger Message-ID: March 2004 Seattle Perl Users Group Meeting -------------------------------------------------------- Title: Perl Debugger Introduction Speaker: Andrew Sweger [potentially] Title: Lightning Talk, CD Library Kiosk Project Speaker: Lee Colleton Meeting Time: Tuesday, Mar. 16, 2004 7-9pm Location: 4013 Stone Way N [see notes below] Cost: Admission is free and open to the general public. Info: http://seattleperl.org/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * About the talk: --------------- An introduction to the basic functions of the perl debugger, covering: * stepping in, over, around, and through code * getting back to where you were quickly after making changes * quickly zeroing in on logic errors If time permits, a demonstration of ddd, the Data Display Debugger, a graphical debugger frontend, and how it works, or rather how it doesn't work (I think something not setup quite right on my machine). Doesn't matter, sometimes I hate GUIs unless they actually let me work faster than in a terminal. About the speakers: ------------------- Andrew Sweger is a Perl expert of six years and all around jack-of-all- trades (computer or otherwise). His personal goal is to live on some quiet acreage up north with at least 3Mbps of unlimited bandwidth, a 20kW diesel power generator, and a lot of fuel. Lee Colleton, well I don't really know much about him, other than his nefarious plan to infest libraries with machines that spew software libre. Pre- and Post- Meeting Activities --------------------------------- Sorry. This completely falls through the cracks this month. Post-meeting activities will be at the discretion of attendees. Location, Location, Location ---------------------------- Many thanks to Peter Darley and his collegues for providing the location of this months SPUG meeting. The office is located near the Fremont neighborhood on Stone Way just north of 40th Street. It is right next door to the Zie Hair Salon which has a sign visible from the street and the Fremont Dance Studio is on the other side. The building is kitty-corner to the Safeway. It looks basically like a red house. The office is located on the second floor. There should be plenty of street parking near by, but there aren't any parking lots that we can use. Via I-5, exit at 45th Street as if going to the University District and head West (away from the university and toward Wallingford). Turn left on Stone Way (McDonalds on NW corner of intersection). Go just over five blocks. The office is on your right. Via Aurora/Hwy 99 (Northbound from South of the ship canal), take the first exit after the ship canal bridge (signed for one or more of Bridge Way, 40th St, Stone Way). Follow Bridge way which veers Northwest. Left at the light (Stone Way). Office is one block on the left. Via Aurora/Hwy 99 (Southbound from North of 45th Street), turn left (East) on 45th Street, then right on Stone Way (at the McDonalds). Go just over five blocks. The office is on your right. Did I miss anything? Oh, the web site! I gotta figure out what to do with that. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From pdarley at kinesis-cem.com Mon Mar 15 17:59:18 2004 From: pdarley at kinesis-cem.com (Peter Darley) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Mar. Mtg, Intro to Perl Debugger In-Reply-To: Message-ID: Folks, There is actually a hole now where the McDonalds used to be, so it's probably best not to use it as a landmark. Thanks, Peter Darley -----Original Message----- From: spug-list-bounces@mail.pm.org [mailto:spug-list-bounces@mail.pm.org]On Behalf Of Andrew Sweger Sent: Monday, March 15, 2004 3:23 PM To: Seattle Perl Users Group Subject: SPUG: Mar. Mtg, Intro to Perl Debugger March 2004 Seattle Perl Users Group Meeting -------------------------------------------------------- Title: Perl Debugger Introduction Speaker: Andrew Sweger [potentially] Title: Lightning Talk, CD Library Kiosk Project Speaker: Lee Colleton Meeting Time: Tuesday, Mar. 16, 2004 7-9pm Location: 4013 Stone Way N [see notes below] Cost: Admission is free and open to the general public. Info: http://seattleperl.org/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * About the talk: --------------- An introduction to the basic functions of the perl debugger, covering: * stepping in, over, around, and through code * getting back to where you were quickly after making changes * quickly zeroing in on logic errors If time permits, a demonstration of ddd, the Data Display Debugger, a graphical debugger frontend, and how it works, or rather how it doesn't work (I think something not setup quite right on my machine). Doesn't matter, sometimes I hate GUIs unless they actually let me work faster than in a terminal. About the speakers: ------------------- Andrew Sweger is a Perl expert of six years and all around jack-of-all- trades (computer or otherwise). His personal goal is to live on some quiet acreage up north with at least 3Mbps of unlimited bandwidth, a 20kW diesel power generator, and a lot of fuel. Lee Colleton, well I don't really know much about him, other than his nefarious plan to infest libraries with machines that spew software libre. Pre- and Post- Meeting Activities --------------------------------- Sorry. This completely falls through the cracks this month. Post-meeting activities will be at the discretion of attendees. Location, Location, Location ---------------------------- Many thanks to Peter Darley and his collegues for providing the location of this months SPUG meeting. The office is located near the Fremont neighborhood on Stone Way just north of 40th Street. It is right next door to the Zie Hair Salon which has a sign visible from the street and the Fremont Dance Studio is on the other side. The building is kitty-corner to the Safeway. It looks basically like a red house. The office is located on the second floor. There should be plenty of street parking near by, but there aren't any parking lots that we can use. Via I-5, exit at 45th Street as if going to the University District and head West (away from the university and toward Wallingford). Turn left on Stone Way (McDonalds on NW corner of intersection). Go just over five blocks. The office is on your right. Via Aurora/Hwy 99 (Northbound from South of the ship canal), take the first exit after the ship canal bridge (signed for one or more of Bridge Way, 40th St, Stone Way). Follow Bridge way which veers Northwest. Left at the light (Stone Way). Office is one block on the left. Via Aurora/Hwy 99 (Southbound from North of 45th Street), turn left (East) on 45th Street, then right on Stone Way (at the McDonalds). Go just over five blocks. The office is on your right. Did I miss anything? Oh, the web site! I gotta figure out what to do with that. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. _____________________________________________________________ Seattle Perl Users Group Mailing List POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list MEETINGS: 3rd Tuesdays, Location Unknown WEB PAGE: http://www.seattleperl.org From andrew at sweger.net Mon Mar 15 17:49:38 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Mar. Mtg, Intro to Perl Debugger In-Reply-To: Message-ID: Oops. Mea culpa. I guess it's been a while since I've been in the neighborhood. On Mon, 15 Mar 2004, Peter Darley wrote: > There is actually a hole now where the McDonalds used to be, so it's > probably best not to use it as a landmark. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From andrew at sweger.net Mon Mar 15 17:57:32 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: driving directions (fwd) Message-ID: What Mike says below. See, I can't tell up from down when I'm trying to blast out a message so folks will have a little warning about where the meeting will be. Thanks, Mike. ---------- Forwarded message ---------- From: Mike Schuh To: Andrew Sweger Date: Mon, 15 Mar 2004 15:54:50 -0800 (PST) Andrew, >Via Aurora/Hwy 99 (Northbound from South of the ship canal), take the >first exit after the ship canal bridge (signed for one or more of Bridge >Way, 40th St, Stone Way). Follow Bridge way which veers Northwest. "northeast", if I recall correctly... I wish I could make the meeting, but I have a class tomorrow night. My thanks, nonetheless, for all of you who put it together. -- Mike Schuh -- Seattle, Washington USA http://www.farmdale.com From MichaelRWolf at att.net Mon Mar 15 18:40:28 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Perl Users Using Perl (PWP) lightening talks In-Reply-To: (Andrew Sweger's message of "Mon, 15 Mar 2004 15:23:10 -0800 (PST)") References: Message-ID: What's up? I want to know. Programming-wise, that is. So many of our meetings are one way (speaker to audience). That kind of meeting segment is fine for some kinds of information exchange. I'd like to supplement it with another kind of interchange, aimed at hooking up and hacking out. At the 1st ever SPUG meeting (and 6th anniversary of SPUG!), I would like to spend some time getting to know what's up our SPUGly private/professional programming lives. The format is simple: Lightening talk - up to 5 minutes on any topic Mark Jason Dominus has facilitated these at YAPC, OSCON. http://perl.plover.com/lightning-talks.html I'll facilitate them at the March meeting. Some ideas: - I've been working on Project-X. It's really cool. Here's why. - My favorite module is Module::X. Here's why. - My project is stuck. Here's what works, what's broken, and what I've tried. Ideas? - I'd like an outside perspective to do a code review on Project-X. - I'm new to Perl, and could use a mentor. - I'm not new to Perl, and would like to mentor someone who is. - I'm available as a set of outside eyes for debugging, code review, or design review. Here's what I'm good at. - I recently heard a cool joke. - I recently read a cool book. - I recently read a cool article. - I recently drank a cool drink. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Mon Mar 15 18:49:38 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: PWP hack session Message-ID: PWP - Perl Users Using Perl Because sometimes a hack job is what really needs to be done. I'll be hacking (in public) on Thursday night, specifically on a project I'll mention at the March SPUG meeting. Would you like to join me? Date: Thursday, March 18 Time: 7:00-9:00(ish) Location: QCafe (an internet cafe south of the Ballard Bridge) 3223 15th Ave. W Seattle, WA 98119 Phone: 206.352.2525 (caf?) Why? Because pair-wise programming is better than being stuck alone. Or think of it as the SPUG analog to the GSLUG load-fest. Bring a problem. Bring a solution. Bring a question. Bring an answer. Bring your laptop and WiFi card!!! Let's trade ideas and get some work done. Enjoy, Michael Wolf -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Mon Mar 15 19:06:12 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Noble effort In-Reply-To: (Peter Darley's message of "Mon, 15 Mar 2004 15:59:18 -0800") References: Message-ID: "Peter Darley" writes: > There is actually a hole now where the McDonalds used to be, > so it's probably best not to use it as a landmark. Sounds like a *really* mad cow!!! No, a bull. Abominable? Noble! (___) (___) (o o) (o o) /-------\ / /-------\ / / | ||O / | O~ ||O * ||,---|| * ||,---|| ^^ ^^ ^^ ^^ A Bull A-bomb-in-a-bull No-bull Wink, wink. I first this visual pun in regular art before I saw it in ASCII art. http://paul.merton.ox.ac.uk/ascii/cows.html Enjoy, Michael P.S. Sorry to you proportional-font folks -- get a real ASCII email reader. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Tue Mar 16 11:31:00 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: shell 'how to' book for software exploits Message-ID: Hey, if you can do it in shell, you can probably do it better in Perl. (IMHO, Perl and shell are both easy, non-C access to the kernal, or whatever it's called in WinDOS). publishing exploits, a balance point: - important information sharing for security professionals (gurus) - dangerous information sharing for digital destruction deamons (terrorists) I guess TMTOWTDI is good?!!! Open Source is always good? Michael P.S. For those old enough, remember "The Anarchists Handbook" back in the 70's, that sparked a similar controversey for publishing how to make a pipe bomb? ================================================================ http://computerworld.com/securitytopics/security/story/0,10801,91265,00.html Experts publish 'how to' book for software exploits It includes 'zero day' techniques for exploiting vulnerable computer systems News Story by Paul Roberts MARCH 15, 2004 (IDG NEWS SERVICE) - A new book by leading security researchers on writing code to exploit security flaws in software, including Microsoft Corp.'s Windows operating system, has raised some eyebrows in the technical community for its publishing of "zero day," or previously unknown, techniques for exploiting vulnerable systems. The Shellcoder's Handbook: Discovering and Exploiting Security Holes is an advanced guide to writing software exploits. The book is intended as a resource for network administrators who are interested in closing security holes. However, the book also contains working examples of code for exploiting vulnerable systems and previously unpublished techniques for launching attacks such as heap overflows and kernel attacks, according to two of the book's authors. Shellcode is a term that describes small pieces of computer code that launch operating system "shells," or command interfaces such as the common "C:" command-line interface on Microsoft DOS. Shellcode is often a component of attacks in which malicious hackers use software exploits to get control of vulnerable systems. The new book is published by John Wiley & Sons Inc. and is scheduled to be released on March 22. It contains chapters on a variety of attack types, including stack overflows, heap overflows and format-string bugs. Authors discuss everything from how to write Windows shellcode to exploiting security holes in Hewlett-Packard Co.'s Tru64 operating system, according to a description of the book published on the Wiley Web page. Also contained in the new guide are fully functional examples of software exploits, according to co-author Dave Aitel, founder of Immunity Inc., a security consulting company in New York. "The book is trying to teach you how to write exploits, so of course there are exploits," he said. Aitel said he contributed chapters on heap overflows and Windows exploits, as well as a technique for finding flaws in network communications protocols called "fuzzing." The information is essential to administrators who want to secure the computer systems they manage, he said. "It's hard to get context on a [software] vulnerability if you don't know how to exploit it," Aitel said. "People who know how to write exploits make better strategic decisions." continued>> [...] -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Tue Mar 16 13:01:02 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Open Source Risk Management LLC Message-ID: I guess Open Source has just celebrated a rite of passage with the addition of a new (legal) service. We've long known that rights (the licenses) were as import as the technology (source code), and have had long community discussions within and among the various licensing camps. I guess it's no surprise that someone has stepped in to aid those who are interested in the technology but scared of the licenses. It can only increase the usage of Open Source as those standing in the periphery become bona fide users. But what of the law of unintended consequences??? Enjoy, Michael ================================================================ http://computerworld.com/governmenttopics/government/legalissues/story/0,10801,91289,00.html [...] Start-up company to sell open-source insurance Legal action by The SCO Group has created interest in open-source software insurance News Story by Robert McMillan MARCH 16, 2004 (IDG NEWS SERVICE) - A New York-based company has spotted a new business opportunity in The SCO Group Inc.'s legal battle with the Linux community: open-source insurance. Open Source Risk Management LLC (OSRM), a start-up company that last month hired Pamela Jones, former editor of the popular Groklaw.net Web site, as director of litigation risk research, plans to soon begin offering insurance policies to companies that use open-source software but fear that they may be sued, according to a company spokeswoman. The company now offers a variety of professional services, including software certification and strategic consulting on open-source software insurance. It is also planning a series of training sessions on how best to mitigate the risk of using open-source software. The first such session will be held April 27 in Santa Clara, Calif. SCO claims that the Linux operating system violates its Unix copyrights, a claim hotly disputed by the Linux community, and has sued a number of IT vendors and even two Linux users -- DaimlerChrysler AG and auto parts retailer AutoZone Inc. -- in connection with its intellectual property (IP) claims. Though some Linux vendors like Hewlett-Packard Co. and Novell Inc. have already started to offer indemnification for their customers, these programs are "kind of limited," said Heather Meeker, a partner at the Miami law firm Greenberg Traurig LLP, who is working with OSRM on the training sessions. Some indemnification programs, for example, no longer cover users who modify their Linux software, a key feature of open-source, she said. While there may be riskier areas in high technology -- companies have lost billions of dollars because of computer security breaches, for example -- the intense amount of publicity generated by the SCO lawsuit has created interest in open-source software insurance, Meeker said. Part of the reason for the concern over SCO is that the Lindon, Utah-based software company has acted differently from companies in proprietary IP disputes. "One of the things that SCO did that raised concerns is they started sending letters to users of the software," Meeker said. OSRM is not simply responding to SCO but actually providing a service that all software users should have, said Bruce Perens, an open-source advocate who has had discussions with the company. "Software risk management is something that all software needs, and is something that's not provided adequately for proprietary software," he said. SCO itself did not seem displeased to learn of OSRM's offerings. "I guess this kind of thing was bound to creep up," said SCO spokesman Blake Stowell. SCO believes that its $699 per processor Intellectual Property License for Linux, however, is a better idea. "Ours is certainly the most reasonable way to go and certainly the safest way to go," he said. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From lee at colleton.net Tue Mar 16 14:24:37 2004 From: lee at colleton.net (Lee Colleton) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Apology, Keysigning Message-ID: <1079468677.1152.158.camel@raven> I will not be able to attend the meeting tonight however I will be at the Q-Cafe[0] with fingerprints of my encryption key on Thursday, ready to trade signatures with any comers. Regards, -- Lee Colleton [0]http://www.qcafe.org/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://mail.pm.org/pipermail/spug-list/attachments/20040316/69379a15/attachment.bin From ext-spug at jope.net Tue Mar 16 14:37:19 2004 From: ext-spug at jope.net (El JoPe Magnifico) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: PWP hack session In-Reply-To: References: Message-ID: FYI, this time conflicts with the BSD Users Group (seabug.org) meeting going on down the street at F5 from 6-8pm. BTW, one of this month's two presentations at that meeting is on the Perl-y goodness that is SpamAssassin. QCafe has a computer instructional area, according to their literature. Has anyone seen this? (is it separate from the couple computers in the back right corner of the cafe?) Is it a possible venue for presentations? -jp On Mon, 15 Mar 2004, Michael R. Wolf wrote: > PWP - Perl Users Using Perl [...] > Date: Thursday, March 18 > Time: 7:00-9:00(ish) > Location: > QCafe (an internet cafe south of the Ballard Bridge) > 3223 15th Ave. W From MichaelRWolf at att.net Tue Mar 16 15:28:36 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: PWP hack session In-Reply-To: (El JoPe Magnifico's message of "Tue, 16 Mar 2004 12:37:19 -0800 (PST)") References: Message-ID: El JoPe Magnifico writes: > FYI, this time conflicts with the BSD Users Group (seabug.org) meeting > going on down the street at F5 from 6-8pm. BTW, one of this month's > two presentations at that meeting is on the Perl-y goodness that is > SpamAssassin. Sorry. Had I known.... BTW -- if anyone sees similar Perl-y announcements in other groups, please cross-post 'em here. Many scavanging eyes are helpful if the PR gets spread around. > QCafe has a computer instructional area, according to their literature. > Has anyone seen this? (is it separate from the couple computers in the > back right corner of the cafe?) Is it a possible venue for presentations? > -jp It's not appropriate -- only about 6 computers. And the public space, although it would be great, is too public to monopolize with a normal session. But it's just great for a hack session. Michael -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From andrew at sweger.net Tue Mar 16 20:30:29 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: PWP hack session In-Reply-To: Message-ID: On Tue, 16 Mar 2004, Michael R. Wolf wrote: > > QCafe has a computer instructional area, according to their literature. > > Has anyone seen this? (is it separate from the couple computers in the > > back right corner of the cafe?) Is it a possible venue for presentations? > > -jp > > It's not appropriate -- only about 6 computers. And the public space, > although it would be great, is too public to monopolize with a normal > session. But it's just great for a hack session. Their website talks about large separate spaces available for rent and they have non-profit rates. But I have not visited or talked to anyone there. Have you checked out their rates or the extra space? They certainly sound interesting (at least in html). -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From sthoenna at efn.org Tue Mar 16 23:35:21 2004 From: sthoenna at efn.org (Yitzchak Scott-Thoennes) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Colossal Cave in perl? Message-ID: <20040317053521.GA3848@efn.org> Does anyone know if there is a perl version of the Colossal Cave (aka Adventure)? A google search brings up a reference to The Perl Journal of April, 2000; but the link doesn't seem to be accessible without a subscription. Does anyone have a copy they can check to see what's there, or other knowlege of a perl version? From ext-spug at jope.net Wed Mar 17 00:02:55 2004 From: ext-spug at jope.net (El JoPe Magnifico) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: PWP hack session In-Reply-To: References: Message-ID: On Tue, 16 Mar 2004, Michael R. Wolf wrote: >> QCafe has a computer instructional area, according to their literature. >> Has anyone seen this? (is it separate from the couple computers in the >> back right corner of the cafe?) Is it a possible venue for presentations? > > It's not appropriate -- only about 6 computers. Number of computers isn't really relevant, with regards to presentations. Is there seating for more than six people? Any projection equipment? I've seen the public area, and no, it's not appropriate either. There is a small-ish meeting room right behind the stage, but IIRC, it only seats maybe 8 people. From andrew at sweger.net Wed Mar 17 00:51:09 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Colossal Cave in perl? In-Reply-To: <20040317053521.GA3848@efn.org> Message-ID: On Tue, 16 Mar 2004, Yitzchak Scott-Thoennes wrote: > Does anyone know if there is a perl version of the Colossal Cave (aka > Adventure)? A google search brings up a reference to The Perl Journal > of April, 2000; but the link doesn't seem to be accessible without a > subscription. Does anyone have a copy they can check to see what's > there, or other knowlege of a perl version? Isn't it cute that Google has the info you want, but you can't get to it. Perhaps if you change your user-agent to mimic the google crawler. ;) Without actually reading it again, I think the article is about the rezrov Infocom Game Interpreter found at http://edmonson.paunix.org/rezrov/. Ask if you'd like the text of the article sent. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From andrew at sweger.net Wed Mar 17 11:50:03 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting Message-ID: We had a full house at last night's meeting at Peter Darley's office. A big thank you to Peter and Kinesis[1] for sponsoring us this month. I really enjoyed getting to show folks a few basic uses of the perl debugger, despite the small screen I used. (Sorry about that, folks.) I was only able to make a feeble attempt at showing what ddd can do, but it seems there's a difference between the ddd I was running and the Perl 5.8 debugger interface it appeared to be talking to (rather than interfacing the debugger API directly). I also gave a short demonstration of the new Affrus[2] perl debugger from Late Night Software[3] which works with both Perl 5.6 and 5.8 (but only available for Mac OS X so far). I would enjoy doing it again, maybe with a *real* bug in someone's code that needs hunting. It might make a fun spug-hack topic sometime. Condemn all debug print statements now! [1] - http://kinesis-cem.com/ [2] - http://www.latenightsw.com/affrus/ [3] - http://www.latenightsw.com/ In the latter portion of the meeting, Michael led us on a round of spontaneous lightning talks. I thought it was very effective and reminded me of the regular get togethers with other programmers at jobs past. It's one thing to post a question to a mailing list (or -gasp- usenet), but it's even better in person to hear about one person's challenge and see the ideas pop up around the room like lightning striking. Okay, that's a little too fantastic I guess. But you get the idea. At the end of the meeting, we turned to the topic of our next meeting. Despite the success of last night's meeting, we need a bigger place to meet. I forget the gentleman's name who suggested it, but here's a great idea: survey the spug-list to learn who the most represented employers are, then (professionally) ask those companies if they would sponsor SPUG for meeting space. It shouldn't hurt to ask, many companies benefit from using Perl, and what's good for SPUG is good for all Seattle area Perl programmers. I think this is a great idea. I'm willing to oversee this. I'll follow up with another post for a survey thread (in case folks stopped reading several paragraphs above). -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From tim at consultix-inc.com Wed Mar 17 12:22:42 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: References: Message-ID: <20040317182242.GA2386@jumpy.consultix-inc.com> On Wed, Mar 17, 2004 at 09:50:03AM -0800, Andrew Sweger wrote: > I would enjoy > doing it again, maybe with a *real* bug in someone's code that needs > hunting. I enjoyed the demo, and was reminded that there are some things that are better done using perl -d than by print statements. > Condemn all debug print statements now! IMHO, the humble print statement has a significant advantage over any interactive-debugging based strategy, which is simply that it will still be there if/when the program breaks again, and it can easily be re-activated to deliver its benefits again. AFAIK, there's no way to preserve the activities of an interactive debugging session, and replay them at a future time. > the ideas pop up around the room like lightning striking. Okay, that's a > little too fantastic I guess. But you get the idea. > > At the end of the meeting, we turned to the topic of our next meeting. > Despite the success of last night's meeting, we need a bigger place to > meet. I forget the gentleman's name who suggested it, but here's a great > idea: survey the spug-list to learn who the most represented employers > are, then (professionally) ask those companies if they would sponsor SPUG > for meeting space. Ahem, I was that "gentleman" (picture me recoiling in disgust at that appelation - I prefer "dude" 8-} ) It shouldn't hurt to ask, many companies benefit from > using Perl, and what's good for SPUG is good for all Seattle area Perl > programmers. I think this is a great idea. I'm willing to oversee this. > I'll follow up with another post for a survey thread (in case folks > stopped reading several paragraphs above). > > -- > Andrew B. Sweger -- The great thing about multitasking is that several > things can go wrong at once. *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my upcoming book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* From tim at consultix-inc.com Wed Mar 17 12:32:30 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: St. Pat's day sale on UNIX/Perl Training Message-ID: <20040317183230.GB2386@jumpy.consultix-inc.com> SPUGsters, If you'll indulge me in a quick commercial announcement, I'm running a half-price St. Patrick's Day Sale on my upcoming training classes today. Please help spread the word! -Tim --------------------------------------------------------------------- Today (3/17) only, all remaining seats in all classes listed below are available at unprecedented discounts to preferred customers. Registrations must be submitted to our web-site, and payments arranged by charge-card or FAX'd PO, by 5pm. Registration is open at: http://www.consultix-inc.com/reg.html Call for prices and other details. Erin go bragh, -Tim (206) 781-8649 ************************************************************ -------------------- Class Schedule -------------------- UNIX Fundamentals 3/23-3/26 Shell Programming 3/29-3/31 UNIX Utilities 4/01-4/02 Perl Programming 4/05-4/07 Using Perl Modules 4/08-4/09 For further details and registration, see http://TeachMePerl.Com/sched.html or http://TeachMeUnix.Com/sched.html --------------------------------------------------------------------- CONSULTIX ON-LINE RESOURCES General Information: http://www.consultix-inc.com On-Site Training: http://www.consultix-inc.com/on-site.html Course Listings: Perl, http://TeachMePerl.com/perllist.html UNIX/Shell, http://TeachMeUnix.com/unixlist.html Registration and Pricing: http://www.consultix-inc.com/reg.html Instructor Evaluations: http://www.consultix-inc.com/evals.html Course Evaluations: http://www.consultix-inc.com/course_evals.html *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my upcoming book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* From andrew at sweger.net Wed Mar 17 12:36:35 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: <20040317182242.GA2386@jumpy.consultix-inc.com> Message-ID: On Wed, 17 Mar 2004, Tim Maher wrote: > AFAIK, there's no way to preserve the activities of an > interactive debugging session, and replay them at a future time. Wouldn't it be better to use Test::* and friends or regression testing? I guess I just have a prejudice for instrumenting a program too much for diagnostics because it interrupts the flow of the code for me. Those same test units, when they fail, give an excellent way to get in with the debugger and quickly track down the problem. I'm probably talking out my elbow here, because I have no real examples to offer. > Ahem, I was that "gentleman" (picture me recoiling in disgust at that > appelation - I prefer "dude" 8-} ) No. I do seem to recall you asking for a show of hands on whether folks thought it would be a good idea to consider the possiblity of looking into research on the feasibility of conducting a survey of the list subscribers. Three people raised their hands and you declared a landslide. Just kidding, y'all. It's a (now old) joke from OSCON last year. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From tim at consultix-inc.com Wed Mar 17 12:44:04 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: References: <20040317182242.GA2386@jumpy.consultix-inc.com> Message-ID: <20040317184404.GA2572@jumpy.consultix-inc.com> On Wed, Mar 17, 2004 at 10:36:35AM -0800, Andrew Sweger wrote: > > No. I do seem to recall you asking for a show of hands on whether folks > thought it would be a good idea to consider the possiblity of looking into > research on the feasibility of conducting a survey of the list > subscribers. Three people raised their hands and you declared a landslide. > Just kidding, y'all. It's a (now old) joke from OSCON last year. Ouch! 8-} But you've got one critical detail wrong; *somebody else* asked for the show of hands and phrased the complicated survey question; I was just the poor guy who tried to make sense out of the results 8-} > Andrew B. Sweger -- The great thing about multitasking is that several > things can go wrong at once. -- *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my upcoming book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* From david.dyck at fluke.com Wed Mar 17 12:51:37 2004 From: david.dyck at fluke.com (David Dyck) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: <20040317182242.GA2386@jumpy.consultix-inc.com> References: <20040317182242.GA2386@jumpy.consultix-inc.com> Message-ID: On Wed, 17 Mar 2004 at 10:22 -0800, Tim Maher wrote: > AFAIK, there's no way to preserve the activities of an > interactive debugging session, and replay them at a future time. It would be nice to have "sticky" breakpoints! Term::ReadLine::Gnu (that can be used by the perl debugger) does have the ability to save history in a file but that's not supported by the debugger yet as far as I can tell. From andrew at sweger.net Wed Mar 17 12:58:31 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: SPUG Survey - Please Participate Message-ID: So, as mentioned in earlier posts, it was suggested to find out what Seattle area employers are well represented amongst the SPUG membership. They would make excellent organizations to contact for possible sponsorship of SPUG meetings. The odds of finding something suitable that benefits everyone should be very good. I want as many people to participate as possible. To conduct the survey, we need to know where you're working (if you should be so fortunate). If you are an employee using Perl at your job or a contractor or self-employed doing Perl work for another company, I want you to tell me the name of that company. Please send your reply to spug-survey{at}perlocity.org (simply replying to this message to the reply-to field should suffice for most people). This will keep the replies in a nice box for me. Your responses will not be revealed to anyone (beside me) other than to report aggregate results. After the survey is complete, your reply will be expunged. The results will be taken to the SPUG list before any further action is taken. Thank you. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From MichaelRWolf at att.net Wed Mar 17 13:14:06 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: QCafe as a venue for PWP hack session and regular SPUG meetings In-Reply-To: (El JoPe Magnifico's message of "Tue, 16 Mar 2004 22:02:55 -0800 (PST)") References: Message-ID: El JoPe Magnifico writes: > On Tue, 16 Mar 2004, Michael R. Wolf wrote: >>> QCafe has a computer instructional area, according to their literature. >>> Has anyone seen this? (is it separate from the couple computers in the >>> back right corner of the cafe?) Is it a possible venue for presentations? >> >> It's not appropriate -- only about 6 computers. > > Number of computers isn't really relevant, with regards to presentations. > Is there seating for more than six people? Any projection equipment? Of course. Your're right, computers aren't necessary for our presentations. I meant to indicate the size of the room (tight with 6 computers and 6 seats). It's too small for our use. > I've seen the public area, and no, it's not appropriate either. > There is a small-ish meeting room right behind the stage, but IIRC, > it only seats maybe 8 people. That's about right. 8-12, but only about 8 at the table. Not appropriately sized for a SPUG meeting. SO.... I don't think QCafe is good for the monthly SPUG meeting, but it is good for a hack session - the public room *is* appropriate for a few folks to be doing private work together. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Wed Mar 17 13:57:08 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: <20040317182242.GA2386@jumpy.consultix-inc.com> (Tim Maher's message of "Wed, 17 Mar 2004 10:22:42 -0800") References: <20040317182242.GA2386@jumpy.consultix-inc.com> Message-ID: Tim Maher writes: [...] > IMHO, the humble print statement has a significant advantage over > any interactive-debugging based strategy, which is simply that it > will still be there if/when the program breaks again, and it can > easily be re-activated to deliver its benefits again. I like that. They read like assertions. I know that Tim doesn't like the "backwards" if statement, but I code them like this: ================ They start out like this: sub XXX { ... print "Important debugging info goes here"; ... } ================ I disable them for production release like this: my $debug = 0; ... sub XXX { print "Entering XXX function\n" if $debug; ... print "Important debugging info goes here" if $debug; ... print "Exiting XXX function\n" if $debug; } ================ On rare occasions, if my debug output gets too voluminous, I create 2 or 3 levels of verbosity, and shush the yappy ones by creating a thresshold like this. my $debug = 1; ... sub XXX { print "Entering XXX function\n" if $debug > 2; ... print "Important debugging info goes here" if $debug; ... print "Exiting XXX function\n" if $debug > 2; } I agree that keeping the statements in is useful. They can be enabled for future debugging, *and* they draw attention to the places that required analysis in the past. That's great knowledge for the future, should a bug creep back in. > AFAIK, there's no way to preserve the activities of an > interactive debugging session, and replay them at a future time. I've seen and heard of debugging environments that had huge "profiles" and "support scripts". They were an IDE in and of themselves. I'm not confident that they were usable. I haven't seen them lately, but that doesn't mean that they don't exist. I think that automated regression tests can serve the same purpose as automated debugging environments. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Wed Mar 17 14:07:46 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: (David Dyck's message of "Wed, 17 Mar 2004 10:51:37 -0800 (PST)") References: <20040317182242.GA2386@jumpy.consultix-inc.com> Message-ID: David Dyck writes: > On Wed, 17 Mar 2004 at 10:22 -0800, Tim Maher wrote: > >> AFAIK, there's no way to preserve the activities of an >> interactive debugging session, and replay them at a future time. > > It would be nice to have "sticky" breakpoints! Yes!!! I don't like having to re-set my breakpoints on every edit cycle. The 'R' (Attempt a restart) command can be helpful in many of these cases. Just use 'b sub_name' instead of 'b line_number' whereever you can. Michael P.S. Actually, *I* don't have to do that all the time since I use *emacs* to run the dugger. I get to edit and debug without usually leaving the debugger. The active debugger session remembers all my 'b sub_name' list. The 'b line_number' stuff is very likely to change within a file I'm editing, but is still OK in unchanged files. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From devnull at devnullsoftware.com Wed Mar 17 14:17:42 2004 From: devnull at devnullsoftware.com (Lee Wilson) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: Message-ID: On Wed, 17 Mar 2004, Michael R. Wolf wrote: > Tim Maher writes: > > [...] > > > IMHO, the humble print statement has a significant advantage over > > any interactive-debugging based strategy, which is simply that it > > will still be there if/when the program breaks again, and it can > > easily be re-activated to deliver its benefits again. > > I like that. They read like assertions. I know that Tim doesn't like > the "backwards" if statement, but I code them like this: > > I've seen and heard of debugging environments that had huge "profiles" > and "support scripts". They were an IDE in and of themselves. I'm not > confident that they were usable. I haven't seen them lately, but that > doesn't mean that they don't exist. I think that automated regression > tests can serve the same purpose as automated debugging environments. [snip] For my recent-ish web project, I created a debug module that I just include everywhere. It allows me to debug by levels and by logical code areas, is semi-efficient, and acts like print statements. This is useful for web-based CGI because there is no interactive debugging. It's not ideal currently because it uses both files and a DB lookup at various times, but it works for my purposes. Modifying it for your own purposes would be relatively easy. Any time I want to put a debug statement in code, I just do a call to PrintDebugString. e.g. &PrintDebugString( "xmldebug", 2, "red", "", "blah debug blag" ); When I want to turn off the debug, I just delete the files for that area/level. Anyway, here's the code - it's relatively short. package DebugLib; require Exporter; @DebugLib::ISA = qw( Exporter ); @DebugLib::EXPORT = qw( GetDebugFlag PrintDebugString SetDebugFlag ); use lib "../src"; use CGI qw( :standard escapeHTML ); use CGI::Carp qw ( fatalsToBrowser ); use DBI; use db; use strict; ########################################## # Global Variables ########################################## my %hDebugOutput = (); sub GetDebugFlag { my ( $strDebugType, $iLevel ) = @_; if ( $hDebugOutput {"$strDebugType.$iLevel"} eq "" ) { my $iTempLevel = 3; my $iFoundLevel = 0; while ( $iTempLevel > 0 ) { if ( $iFoundLevel > 0 ) { $hDebugOutput { "$strDebugType.$iTempLevel" } = "1"; } else { if ( -e "$main::GLOBAL_ServerBasePath/cgi-bin/Debug/debug.$strDebugType.$iTempLevel") { $iFoundLevel = $iTempLevel; $hDebugOutput { "$strDebugType.$iTempLevel" } = "1"; } else { $hDebugOutput { "$strDebugType.$iTempLevel" } = "0"; } } $iTempLevel--; } } return $hDebugOutput {"$strDebugType.$iLevel"}; } sub SetDebugFlag { my ( $dbhref, $strFlagName, $iLevel ) = @_; my $dbh = $$dbhref; my $sql; my $sth; my $i; $sql = "DELETE FROM DebugFlags WHERE Name=" . $dbh->quote( $strFlagName ); $sth = $dbh->do ( $sql ); $sql = "INSERT INTO DebugFlags ( Name, CurrentValue ) VALUES ( " . $dbh->quote( $strFlagName ) . ", $iLevel )"; $sth = $dbh->do ( $sql ); if ( $iLevel > 0 ) { system( "touch $main::GLOBAL_ServerBasePath/cgi-bin/Debug/debug.$strFlagName.$iLevel" ); for ( $i = 1; $i <= 3; $i++ ) { if ( $i <= $iLevel ) { $hDebugOutput {"$strFlagName.$i"} = "1"; } else { $hDebugOutput {"$strFlagName.$i"} = "0"; } } } else { system ( "rm -f $main::GLOBAL_ServerBasePath/cgi-bin/Debug/debug.$strFlagName.*" ); for ( $i = 1; $i <= 3; $i++ ) { $hDebugOutput {"$strFlagName.$i"} = ""; } } } sub PrintDebugString { my ( $strDebugType, $iLevel, $strFontColor, $strLog, $strDebugString ) = @_; if ( &GetDebugFlag ( $strDebugType, $iLevel ) eq "1" ) { if( $strLog ne "" ) { print $strLog "$strDebugString\n"; } else { if ( $strFontColor ne "" ) { print "$strDebugString
\n"; } else { print "$strDebugString
\n"; } } } 1; } 1; ============================================================================== Lee Wilson - INTP http://www.devnullsoftware.com Software Developer / RealNetworks http://www.realarcade.com ============================================================================== There are 10 kinds of people in the world: the people who understand ternary, the people who dont, but care, and the people who don't understand or care. ============================================================================== From bri at ifokr.org Wed Mar 17 14:32:27 2004 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: <20040317182242.GA2386@jumpy.consultix-inc.com> References: <20040317182242.GA2386@jumpy.consultix-inc.com> Message-ID: <20040317203227.GS29748@ifokr.org> > I enjoyed the demo, and was reminded that there are some things that > are better done using perl -d than by print statements. > > > Condemn all debug print statements now! > > IMHO, the humble print statement has a significant advantage over > any interactive-debugging based strategy, which is simply that it > will still be there if/when the program breaks again, and it can > easily be re-activated to deliver its benefits again. I totally agree with Tim here - debugging print statements are great: GetOptions( ... "debug" => \$DEBUG, ... ); ... print STDERR "random annoying debug statement\n" if $DEBUG; Just slap those 'if $DEBUG' tags on as needed. Or to save typing $DEBUG && print STDERR "random annoying debug statement\n"; Also has the benifit of making it obvious as you scan the left hand side of the script that you need not read this line. -- Brian Hatch Two wrongs are Systems and only the beginning. Security Engineer http://www.ifokr.org/bri/ Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://mail.pm.org/pipermail/spug-list/attachments/20040317/e954ce2e/attachment.bin From creede at penguinsinthenight.com Wed Mar 17 14:35:16 2004 From: creede at penguinsinthenight.com (Creede Lambard) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: References: Message-ID: <20040317203516.GL10535@igor.penguinsinthenight.com> I often include lines like this into my code: sub DEBUG { return $ENV{'DEBUG_MY_SCRIPT'}; } if (DEBUG) { print "Debugging is on\n";} That way turning debugging on or off is just a matter of setting an environment variable. -- =================================================================== * .~. ( : Creede Lambard : Never rush a miracle man. . / V \ . :------------------------: You get lousy miracles. /( )\ : creede at : --------------------------------^^-^^----: penguinsinthenight : Linux. Reliable and free. Pick any two. : dot com : =================================================================== -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/spug-list/attachments/20040317/89f99474/attachment.bin From tim at consultix-inc.com Wed Mar 17 14:58:21 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Hashes & Arrays class in March Message-ID: <20040317205821.GA6842@jumpy.consultix-inc.com> 3/17/04 UPDATE: In response to customer demand, we've just added a Perl class, "Hashes and Arrays", to our training schedule for March. The updated schedule is shown below. -Tim --------------------------------------------------------------- St. Patrick's Day Sale! Today only, all remaining seats in all classes listed below are available at unprecedented discounts to preferred customers. Registrations must be submitted to our web-site, and payments arranged by charge-card or FAX'd PO, by 5pm. Registration is open at: http://www.consultix-inc.com/reg.html Call for prices and other details. Erin go bragh, -Tim Maher (formerly "Meagher") (206) 781-8649 ************************************************************ -------------------- Class Schedule -------------------- UNIX Fundamentals 3/23-3/26 Perl Hashes and Arrays 3/29-3/30 Perl Programming, plus Modules 4/05-4/07 For further details and registration, see http://TeachMePerl.Com/sched.html or http://TeachMeUnix.Com/sched.html --------------------------------------------------------------------- CONSULTIX ON-LINE RESOURCES General Information: http://www.consultix-inc.com On-Site Training: http://www.consultix-inc.com/on-site.html Course Listings: Perl, http://TeachMePerl.com/perllist.html UNIX/Shell, http://TeachMeUnix.com/unixlist.html Registration and Pricing: http://www.consultix-inc.com/reg.html Instructor Evaluations: http://www.consultix-inc.com/evals.html Course Evaluations: http://www.consultix-inc.com/course_evals.html *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my upcoming book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* From mike at asi-seattle.net Wed Mar 17 15:05:24 2004 From: mike at asi-seattle.net (Mike Sensney) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: QCafe as a venue for PWP hack session and regular SPUG meetings In-Reply-To: References: Message-ID: <6.0.3.0.2.20040317125733.039a3c78@asi-seattle.net> At 11:14 AM 3/17/2004, Michael R. Wolf wrote: >El JoPe Magnifico writes: > > > On Tue, 16 Mar 2004, Michael R. Wolf wrote: > >>> QCafe has a computer instructional area, according to their > literature. > >>> Has anyone seen this? (is it separate from the couple computers in > the > >>> back right corner of the cafe?) Is it a possible venue for > presentations? > >> > >> It's not appropriate -- only about 6 computers. > > > > Number of computers isn't really relevant, with regards to > presentations. > > Is there seating for more than six people? Any projection equipment? > >Of course. Your're right, computers aren't necessary for our >presentations. I meant to indicate the size of the room (tight with 6 >computers and 6 seats). It's too small for our use. > > > > I've seen the public area, and no, it's not appropriate either. > > There is a small-ish meeting room right behind the stage, but IIRC, > > it only seats maybe 8 people. > >That's about right. 8-12, but only about 8 at the table. Not >appropriately sized for a SPUG meeting. > >SO.... I don't think QCafe is good for the monthly SPUG meeting, but >it is good for a hack session - the public room *is* appropriate for a >few folks to be doing private work together. The QCafe also has a larger meeting room that will hold up to 30. http://www.qcafe.org/pages/rentals.htm >-- >Michael R. Wolf > All mammals learn by playing! > MichaelRWolf@att.net > > >_____________________________________________________________ >Seattle Perl Users Group Mailing List >POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org >ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list >MEETINGS: 3rd Tuesdays, Location Unknown >WEB PAGE: http://www.seattleperl.org Mike Sensney Association Services, Inc. PO Box 58530, Seattle, WA 98138-1530 206-623-8632 - Fax 206-575-9255 From MichaelRWolf at att.net Wed Mar 17 15:24:37 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: <20040317203227.GS29748@ifokr.org> (Brian Hatch's message of "Wed, 17 Mar 2004 12:32:27 -0800") References: <20040317182242.GA2386@jumpy.consultix-inc.com> <20040317203227.GS29748@ifokr.org> Message-ID: Brian Hatch writes: [...] > print STDERR "random annoying debug statement\n" if $DEBUG; > > Just slap those 'if $DEBUG' tags on as needed. Or to save typing > > $DEBUG && print STDERR "random annoying debug statement\n"; > > Also has the benifit of making it obvious as you scan the left hand side > of the script that you need not read this line. Nicely paralleled. I like *both* styles, and like that you point to the left-to-right scanning. I like to put the most important thing left-most. Occasionally that's the argument to print, occasionally it's the truth state of the debug flag. P.S. Thanks for slipping the STDERR arg in, something I had left out of my previous examples. Debug output should not pollute STDOUT. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Wed Mar 17 15:28:17 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: QCafe as a venue for PWP hack session and regular SPUG meetings In-Reply-To: <6.0.3.0.2.20040317125733.039a3c78@asi-seattle.net> (Mike Sensney's message of "Wed, 17 Mar 2004 13:05:24 -0800") References: <6.0.3.0.2.20040317125733.039a3c78@asi-seattle.net> Message-ID: Mike Sensney writes: [...] > The QCafe also has a larger meeting room that will hold up to 30. > http://www.qcafe.org/pages/rentals.htm OK. I *have* seen the "Kid's Room", but hadn't realized they rented it out as a "Larger Meeting Room". I'll take a look at it with those new eyes while I'm there tomorrow night. Thanks for the reframing. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From trosmus at nwnexus.net Wed Mar 17 15:48:47 2004 From: trosmus at nwnexus.net (Tim Rosmus) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: References: <20040317182242.GA2386@jumpy.consultix-inc.com> <20040317203227.GS29748@ifokr.org> Message-ID: On Wed, 17 Mar 2004, Michael R. Wolf wrote: |# > print STDERR "random annoying debug statement\n" if $DEBUG; |# > |# > Just slap those 'if $DEBUG' tags on as needed. Or to save typing |# > |# > $DEBUG && print STDERR "random annoying debug statement\n"; |# > |# P.S. Thanks for slipping the STDERR arg in, something I had left out |# of my previous examples. Debug output should not pollute STDOUT. |# |# Don't forget warn.... warn "random annoying debug statement\n" if $DEBUG; > or > $DEBUG && warn "random annoying debug statement\n"; -- Tim Rosmus Postmaster / USENET / DNS Northwest Nexus Inc. From itayf at fhcrc.org Wed Mar 17 16:21:34 2004 From: itayf at fhcrc.org (Itay Furman) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: Message-ID: On Wed, 17 Mar 2004, Michael R. Wolf wrote: > David Dyck writes: > > > On Wed, 17 Mar 2004 at 10:22 -0800, Tim Maher wrote: > > > >> AFAIK, there's no way to preserve the activities of an > >> interactive debugging session, and replay them at a future time. > > > > It would be nice to have "sticky" breakpoints! > > Yes!!! I don't like having to re-set my breakpoints on every edit > cycle. The 'R' (Attempt a restart) command can be helpful in many of > these cases. Just use 'b sub_name' instead of 'b line_number' > whereever you can. > > Michael > > P.S. Actually, *I* don't have to do that all the time since I use > *emacs* to run the dugger. I get to edit and debug without usually > leaving the debugger. The active debugger session remembers all my > 'b sub_name' list. The 'b line_number' stuff is very likely to change > within a file I'm editing, but is still OK in unchanged files. > > This is for those that don't know emacs: Since the debugger window, in which you interact with the debugger, is a buffer -- just like other buffers that are used to edit real files -- you can treat it _as_ a file in terms of editing; namely, you can * save it to the disk for future reference (what complex breaks you used; dumping commands, etc) * edit it (adding comments, deleting uninteresting parts of the session, etc.); this can be done _during_ the debugging session Also, you could start more than one debugging session for the _same_ debugged file. (Didn't test how far you could go with this -- but seen that you could step in one session independently of the other session, for example) Itay From Perl at Doorways.org Wed Mar 17 16:21:05 2004 From: Perl at Doorways.org (Marc M. Adkins) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: DoxyFilt -- Doxygen Filter for Perl source (with POD!) In-Reply-To: References: Message-ID: <200403171721.05806.Perl@Doorways.org> I've updated my Doxygen filter for POD-enabled Perl code a fair amount. It's in use in two work environments (I have a user! Woo hoo!). The latest version, 0.20, features a re-written POD escape sequence parser (and no longer throws any warnings when generating its own documentation! ;-). It is, perhaps, stable. You can find it at: http://spugwiki.perlocity.org/index.cgi?DoxyFilt mma From tim at consultix-inc.com Thu Mar 18 09:14:05 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: TPJ wants Perl on Windoze article Message-ID: <20040318151405.GA15546@jumpy.consultix-inc.com> Just a reminder that Kevin Carlson (kcarlson@tpj.com), TPJ editor, is looking for somebody to write an article having something to do with the use of Perl on the Windows platform. See the bottom of this page for his plea: http://spugwiki.perlocity.org/index.cgi?PerlOnWindows -Tim *--------------------------------------------------------------------------* | Tim Maher, CEO (206) 781-UNIX (866) DOC-PERL (866) DOC-UNIX | | tim(AT)Consultix-Inc.Com http://TeachMePerl.Com http://TeachMeUnix.Com | *+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-* | Classes: Perl Prog. plus Perl Modules, 4/5-4/8 ; Template Toolkit: TBA | | Watch for my upcoming book: "Minimal Perl for Shell Users & Programmers" | *--------------------------------------------------------------------------* From Perl at Doorways.org Thu Mar 18 16:10:56 2004 From: Perl at Doorways.org (Marc M. Adkins) Date: Mon Aug 2 21:37:17 2004 Subject: Fwd: Re: SPUG: Last night's meeting Message-ID: <200403181710.56598.Perl@Doorways.org> >> Condemn all debug print statements now! > > IMHO, the humble print statement has a significant advantage over > any interactive-debugging based strategy, which is simply that it > will still be there if/when the program breaks again, and it can > easily be re-activated to deliver its benefits again. > > AFAIK, there's no way to preserve the activities of an > interactive debugging session, and replay them at a future time. I have a (Filter::Util::Call) filter that I've been using for a number of years to turn trace statements embedded in comments on and off. I can turn on individual trace statements or blocks of trace statements by keyword or by subroutine with only a few keystrokes. use Trace qw(KEYWORD); #!# warn "Trace statement off\n"; #*# warn "Trace statemetn on\n"; #!# warn "Trace statement w/keyword on\n"; #[KEYWORD] #!# warn "Trace statement w/keyword off\n"; #[WRONGWORD] sub function { #!# warn "Trace statement off\n"; #$# warn "All remaining trace statements in routine on\n"; #!# warn "Trace statement on\n"; } Since it's a filter, when they're off they're just comments and so there is _no_ run-time cost. I can leave them in the code forever. It's remarkable how few lines of code this is (even w/o Filter::Simple) and how powerful it is in practice. And yet...I hesitate sometimes to mention it in 'polite' company because there seems to be a subtle prejudice in favor of debuggers of infinite power among "real" programmers. Hummph. [sic] I get a lot of mileage from the humble print statement. mma From MichaelRWolf at att.net Fri Mar 19 02:01:08 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:17 2004 Subject: Fwd: Re: SPUG: Last night's meeting In-Reply-To: <200403181710.56598.Perl@Doorways.org> (Marc M. Adkins's message of "Thu, 18 Mar 2004 17:10:56 -0500") References: <200403181710.56598.Perl@Doorways.org> Message-ID: "Marc M. Adkins" writes: [...] > And yet...I hesitate sometimes to mention it in 'polite' company because We're not *that* 'polite' -- I prefer to think we're respectfully courteous, yet not quite tame -- but thanks for the compliment. :-) [...] > humble print statement. The debugger of infinate power? -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From ext-spug at jope.net Fri Mar 19 22:16:17 2004 From: ext-spug at jope.net (El JoPe Magnifico) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: TPJ wants Perl on Windoze article In-Reply-To: <20040318151405.GA15546@jumpy.consultix-inc.com> References: <20040318151405.GA15546@jumpy.consultix-inc.com> Message-ID: Speaking of which: At one point a few (?) years ago, there was a commercial "Pro" version of SpamAssassin for Winders sold by Deersoft. Deersoft was acquired my McAfee beginning of last year and its product was folded into McAfee's existing SpamKiller product. My question was whether SAPro/SpamKiller was/is still based on Perl, or a rewrite in some other language and maybe just using the PCRE library for the regex? I asked after the SpamAssassin talk at the BSD meeting last night, but no one knew. Same question applies to the Windows version of Spamnix, of which it seems the OSX version is indeed Perl-based. -jp On Thu, 18 Mar 2004, Tim Maher wrote: > Just a reminder that Kevin Carlson (kcarlson@tpj.com), TPJ editor, > is looking for somebody to write an article having something to do > with the use of Perl on the Windows platform. See the bottom of > this page for his plea: > http://spugwiki.perlocity.org/index.cgi?PerlOnWindows From maherb at brimworks.com Sat Mar 20 10:20:16 2004 From: maherb at brimworks.com (Brian Maher) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Last night's meeting In-Reply-To: Message-ID: <792A331C-7A8A-11D8-898C-000393C50526@brimworks.com> FYI, if you want to have "permanent breakpoints", simply put this in your code where you want it to break: $DB::single = 1; When not ran under the debugger, nothing happens, but with the debugger on, it is like having a breakpoint. Please also note that perl will give you a warning unless you put 'package DB; our $single;' at the top of your source file before your package declaration. Of course print statements can be very handy. I've always thought of implementing the following two perl modules that would help with debugging (please note that the name Log4Perl is mis-leading, this is different from Log::Log4perl which is available on CPAN): package My::Module; use strict; use Log4Perl; use Time::HiRes qw(gettimeofday); my $LOG = Log4Perl->getRecorder(__PACKAGE__); sub my_sub { $LOG->warn("Couldn't find environment variable FOO, defaulting to 'bar'"); $LOG->debug("HERE"); $LOG->fatal("Couldn't find necessary config file!"); my $time = [gettimeofday]; ... Do select query ... $LOG->performance("SQL:Select * from foo", $time); } By default, warn() and fatal() calls are written to STDERR, and all other calls are ignored. The interesting part is the fact that you can configure exactly what debug statements get printed based on the package/subroutine that the warn()/debug()/fatal()/performance() was called from (using perl's handy caller() builtin function). Here is the basic object model: Log4Perl::Recorder This is returned from Log4Perl->getRecorder("Package::Name"). This class is responsible for routing the various debug messages to all registered loggers. If no loggers are registered, all warn/fatal messages are printed to STDERR using the same format as the builtin warn() function (appends at $file line $lineno). warn($msg) debug($msg) fatal($msg) performance($category, $startTime) addLogger(Log4Perl::ILogger); removeLogger(Log4Perl::ILogger); Log4Perl::ILogger Anyone can implement this interface that consists of one method: log($self, $msgOrCategory, $deltaTimeFloatingPointSeconds, $callingPackageWhenRecorderWasInitialized); I would imagine that some default Loggers would be implemented in this framework that would allow you to do such things as print log messages at the bottom of a webpage served with mod_perl, or print out a timings log file so you can monitor your servers performance, tweak the verbosity of individual packages (so you can debug just your module) etc. That is my 2 cents. -Brian On Friday, March 19, 2004, at 12:01 AM, Michael R. Wolf wrote: > "Marc M. Adkins" writes: > > [...] > >> And yet...I hesitate sometimes to mention it in 'polite' company >> because > > We're not *that* 'polite' -- I prefer to think we're respectfully > courteous, yet not quite tame -- but thanks for the compliment. :-) > > [...] > >> humble print statement. > > The debugger of infinate power? > > > > > -- > Michael R. Wolf > All mammals learn by playing! > MichaelRWolf@att.net > > > _____________________________________________________________ > Seattle Perl Users Group Mailing List > POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org > ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list > MEETINGS: 3rd Tuesdays, Location Unknown > WEB PAGE: http://www.seattleperl.org > > -- Brian Maher >> Glory to God << From kanderson at nwadmin.com Mon Mar 22 13:18:01 2004 From: kanderson at nwadmin.com (Kristi Anderson) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: re:humble print statement for debugging Message-ID: <0A0FB3160ADBED43B8DD0EBE2B4B2DDC07EC15@SEAEX01.corp.nwadmin.com> Hi all, I've just recently added perl to the list of languages of which I know just enough to be dangerous. One thing I've noticed about all of them is that you can almost always easily figure out how to use print or show or display or printf or cout, but to learn the debugger of each is considerably more time consuming. Kristi -----Original Message----- From: spug-list-request@mail.pm.org [mailto:spug-list-request@mail.pm.org] Sent: Friday, March 19, 2004 10:01 AM To: spug-list@mail.pm.org Subject: spug-list Digest, Vol 9, Issue 15 Send spug-list mailing list submissions to spug-list@mail.pm.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.pm.org/mailman/listinfo/spug-list or, via email, send a message with subject or body 'help' to spug-list-request@mail.pm.org You can reach the person managing the list at spug-list-owner@mail.pm.org When replying, please edit your Subject line so it is more specific than "Re: Contents of spug-list digest..." Today's Topics: 1. Fwd: Re: SPUG: Last night's meeting (Marc M. Adkins) 2. Re: Fwd: Re: SPUG: Last night's meeting (Michael R. Wolf) ---------------------------------------------------------------------- Message: 1 Date: Thu, 18 Mar 2004 17:10:56 -0500 From: "Marc M. Adkins" Subject: Fwd: Re: SPUG: Last night's meeting To: Seattle Perl Users Group Message-ID: <200403181710.56598.Perl@Doorways.org> Content-Type: text/plain; charset="iso-8859-1" >> Condemn all debug print statements now! > > IMHO, the humble print statement has a significant advantage over > any interactive-debugging based strategy, which is simply that it > will still be there if/when the program breaks again, and it can > easily be re-activated to deliver its benefits again. > > AFAIK, there's no way to preserve the activities of an > interactive debugging session, and replay them at a future time. I have a (Filter::Util::Call) filter that I've been using for a number of years to turn trace statements embedded in comments on and off. I can turn on individual trace statements or blocks of trace statements by keyword or by subroutine with only a few keystrokes. use Trace qw(KEYWORD); #!# warn "Trace statement off\n"; #*# warn "Trace statemetn on\n"; #!# warn "Trace statement w/keyword on\n"; #[KEYWORD] #!# warn "Trace statement w/keyword off\n"; #[WRONGWORD] sub function { #!# warn "Trace statement off\n"; #$# warn "All remaining trace statements in routine on\n"; #!# warn "Trace statement on\n"; } Since it's a filter, when they're off they're just comments and so there is _no_ run-time cost. I can leave them in the code forever. It's remarkable how few lines of code this is (even w/o Filter::Simple) and how powerful it is in practice. And yet...I hesitate sometimes to mention it in 'polite' company because there seems to be a subtle prejudice in favor of debuggers of infinite power among "real" programmers. Hummph. [sic] I get a lot of mileage from the humble print statement. mma ------------------------------ Message: 2 Date: Fri, 19 Mar 2004 00:01:08 -0800 From: "Michael R. Wolf" Subject: Re: Fwd: Re: SPUG: Last night's meeting To: spug-list@mail.pm.org Message-ID: Content-Type: text/plain; charset=us-ascii "Marc M. Adkins" writes: [...] > And yet...I hesitate sometimes to mention it in 'polite' company because We're not *that* 'polite' -- I prefer to think we're respectfully courteous, yet not quite tame -- but thanks for the compliment. :-) [...] > humble print statement. The debugger of infinate power? -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net ------------------------------ _______________________________________________ spug-list mailing list spug-list@mail.pm.org http://mail.pm.org/mailman/listinfo/spug-list End of spug-list Digest, Vol 9, Issue 15 **************************************** ----------------------------------------------- < Disclaimer > ----------------------------------------------- Confidentiality Statement-This e-mail and any files transmitted with it are confidential and are intended solely for the use of the individual or entity to which they are addressed. This communication may contain material protected by HIPAA, ERISA, other federal or state law or the attorney-client privilege. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. You are instructed to destroy the message and notify Northwest Administrators by immediate reply that you have received this e-mail and any accompanying files in error. Please bring any questions you may have on this instruction to the attention of Northwest Administrators immediately. Northwest Administrators does not accept responsibility for changes to e-mails that occur after they have been sent. From andrew at sweger.net Tue Mar 23 12:03:28 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: re:humble print statement for debugging In-Reply-To: <0A0FB3160ADBED43B8DD0EBE2B4B2DDC07EC15@SEAEX01.corp.nwadmin.com> Message-ID: On Mon, 22 Mar 2004, Kristi Anderson wrote: > I've just recently added perl to the list of languages of which I know > just enough to be dangerous. One thing I've noticed about all of them > is that you can almost always easily figure out how to use print or > show or display or printf or cout, but to learn the debugger of each > is considerably more time consuming. But that time pays big dividends. Every person I have taught how to use the Perl debugger has exclaimed how they could have saved so much more time in the past had they known how to use it. Of course, the same can be said for so many other time saving bits of knowledge too. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From bri at ifokr.org Tue Mar 23 13:51:42 2004 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Perl logic module? Message-ID: <20040323195142.GW29748@ifokr.org> I want to write something that can handle some standard logic command line arguments. Think tcpdump args, for example. So I'd supply subroutines (or whatever's required) that can return true/false, and have some perl module stick them together in the correct dynamic order, as requested by the user. For example, if I want to do something to a bunch of hosts depending on the criteria specified do_something -os linux -and ( -location seattle -o -purpose webserver) So I'd provide subs/etc for 'os', 'loc'tion' and 'purpose' and it'd call them as appropriate for each thing (host in the above case) to give me a grand 'true/false' when all's said and done. Anyone know of something like this? -- Brian Hatch I always wanted Systems and to be somebody, Security Engineer but I should have http://www.ifokr.org/bri/ been more specific. Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://mail.pm.org/pipermail/spug-list/attachments/20040323/f9994c19/attachment.bin From pdarley at kinesis-cem.com Tue Mar 23 14:01:06 2004 From: pdarley at kinesis-cem.com (Peter Darley) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Geocoding System Message-ID: Folks, I'm wondering if anyone knows about a GeoCoding system that I can use from perl on linux? I need to feed it addresses and get back long/lat values. I've been checking out stuff on the web, but haven't been able to find anything that looks like it would work for me. Thanks, Peter Darley From cmeyer at helvella.org Tue Mar 23 15:25:35 2004 From: cmeyer at helvella.org (Colin Meyer) Date: Mon Aug 2 21:37:17 2004 Subject: SPUG: Perl logic module? In-Reply-To: <20040323195142.GW29748@ifokr.org> References: <20040323195142.GW29748@ifokr.org> Message-ID: <20040323212535.GA24621@funpox.helvella.org> On Tue, Mar 23, 2004 at 11:51:42AM -0800, Brian Hatch wrote: > > > I want to write something that can handle some standard logic command > line arguments. Think tcpdump args, for example. So I'd supply > subroutines (or whatever's required) that can return true/false, and > have some perl module stick them together in the correct dynamic order, > as requested by the user. > > For example, if I want to do something to a bunch of hosts depending > on the criteria specified > > do_something -os linux -and ( -location seattle -o -purpose webserver) > > > So I'd provide subs/etc for 'os', 'loc'tion' and 'purpose' and it'd call > them as appropriate for each thing (host in the above case) to give me > a grand 'true/false' when all's said and done. > > Anyone know of something like this? find2perl does a similar sort of option processing. Unfortunately, it seems that the processing is located directly in the program, and is not abstracted into a module. -Colin. From m3047 at inwa.net Tue Mar 23 23:20:58 2004 From: m3047 at inwa.net (Fred Morris) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System Message-ID: At 12:01 PM 3/23/04, Peter Darley wrote: >[...]I need to feed it addresses and get back long/lat values. L/L is a canonicalization which is useful for all kinds of purposes. Politics comes to mind, census, well the list goes on. "now more than ever"... if someone knows of a server for this, let me know too, eh? I think the problem is not whether it's possible, but what does it cost. -- Fred Morris fredm3047@inwa.net (I-ACK) From Perl at Doorways.org Tue Mar 23 16:06:38 2004 From: Perl at Doorways.org (Marc M. Adkins) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: re:humble print statement for debugging In-Reply-To: References: Message-ID: <200403231706.38261.Perl@Doorways.org> On Tuesday 23 March 2004 01:03 pm, Andrew Sweger wrote: > On Mon, 22 Mar 2004, Kristi Anderson wrote: > > I've just recently added perl to the list of languages of which I know > > just enough to be dangerous. One thing I've noticed about all of them > > is that you can almost always easily figure out how to use print or > > show or display or printf or cout, but to learn the debugger of each > > is considerably more time consuming. > > But that time pays big dividends. Every person I have taught how to use > the Perl debugger has exclaimed how they could have saved so much more > time in the past had they known how to use it. Of course, the same can be > said for so many other time saving bits of knowledge too. I find that any new software environment presents a debugger-related learning curve. I tend to put off learning it until I think that the cost of getting over the first hump of learning to build a debugger version and the peculiarities of whatever debugger I'm using (it does WHAT?) will be offset by time saved in solving the problem. But them I'm just lazy. Having said that, I think it doesn't apply to Perl. Seems like I used it a bit several years ago and no fuss, no muss. Yet I still find myself not using the debugger. I don't remember why I didn't find it compelling, I remember it working just fine. Perhaps just (bad?) habit. I do have as an alternative a fairly powerful trace logging system. In addition to a flexible, low-overhead trace statement filter I use an output stream that understands timestamps, message types, and indentation. When properly used, which is pretty simple, it presents a really clear picture of code execution, especially with complex, recursive code. In production it allows filters to pull errors out of the log stream for summation, notification, or display. Perhaps it's the type of problems I solve with Perl. Right now I'm processing batches of 10,000 - 20,000 documents at a time. The jobs run forever and errors may occur in 2 minutes or 2 days. So my only hope is really good logging (i.e. trace statements). My all-time favorite debugging environment was the 80's LISP machines. Both Xerox and Symbolics environments would pop up a debugger window without actually 'running' the debugger. Everything was symbolic so there wasn't really any debugger to run. When an error happened it triggered the debugger window, from which one could twiddle data, edit code, and continue (or re-executing a containing stack frame) as if nothing had happened. Them were the days. mma From bri at ifokr.org Wed Mar 24 00:18:55 2004 From: bri at ifokr.org (Brian Hatch) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: References: Message-ID: <20040324061855.GD29748@ifokr.org> > >[...]I need to feed it addresses and get back long/lat values. I don't have a pointer for that, but you can get zip to lat/long values via the usps.gov website somewhere, or at least I know I did two years ago. Not useful for intra-city tests, but good enough if you're trying to find who has traveled the furthest for homecoming... -- Brian Hatch Reading whilst sunbathing Systems and makes you well-red. Security Engineer http://www.ifokr.org/bri/ Every message PGP signed -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://mail.pm.org/pipermail/spug-list/attachments/20040323/0b2e3440/attachment.bin From andrew at sweger.net Wed Mar 24 07:49:39 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Perl logic module? In-Reply-To: <20040323195142.GW29748@ifokr.org> Message-ID: On Tue, 23 Mar 2004, Brian Hatch wrote: > I want to write something that can handle some standard logic command > line arguments. Think tcpdump args, for example. So I'd supply > subroutines (or whatever's required) that can return true/false, and > have some perl module stick them together in the correct dynamic order, > as requested by the user. Probably overkill, but this sounds like a job Parse::RecDescent. These aren't what you're asking for, but it's in the vein of administering remote hosts. PICA (Perl Installation & Configuration Agent). I haven't touched PICA in ages, so I'm not sure how close it comes to what you're looking for. But it was designed around the idea of being able to apply an action to a group of machines based on characteristics. I found it horrible to work with. http://pica.sf.net/ There's also cfengine which takes another approach to dealing with groups of machines. Another teeth pulling experience (I haven't seen the second generation versions). http://www.gnu.org/software/cfengine/cfengine.html -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From james at banshee.com Wed Mar 24 10:13:20 2004 From: james at banshee.com (James Moore) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: <20040324061855.GD29748@ifokr.org> Message-ID: <00e901c411ba$f2e7c000$0200a8c0@gealach> Last time I looked, the way to go was to grab the TIGER dataset from the US Census. The last update was in 1990, so it's somewhat out-of-date, but may be good enough for your purposes. (Lots of commercial products are based on this data, but they do their own updates). There's a Geo::TigerLine module on CPAN that I'd take a look at, but the doc page says it's unfinished. The data files give you a location (lat/long) for a street address range, so actually doing the lookup should be trivial. - James james.moore@ziprealty.com From always at u.washington.edu Wed Mar 24 12:28:34 2004 From: always at u.washington.edu (M. Alway) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: <20040324061855.GD29748@ifokr.org> References: <20040324061855.GD29748@ifokr.org> Message-ID: I've also been very interested in converting addresses to lat/lon. What I've done so far is harvest this information off of www.terraserver.com/search/address_search.asp by using LWP to form a post with the same field information and then the resulting page has the lat and lon in the link labeled "view". You can extract the coordinates with regex or using an HTML parser module. There's several other sites that allow this type of searching also. Like any valuable FREE resource, use in moderation (e.g. a few hits a day) versus slamming them while you attempt to find lat/lon for every entry in a 2000 person database. -- Mark ==================================================== = Mark Alway = = Lead Software Developer = = Ed-Tech Development Group = = Educational Partnerships & Learning Technologies = = University of Washington = = Box 353080, Seattle, WA 98195 = = 206.616.3406 = = always@u.washington.edu = ==================================================== On Tue, 23 Mar 2004, Brian Hatch wrote: > > > > >[...]I need to feed it addresses and get back long/lat values. > > I don't have a pointer for that, but you can get zip to lat/long > values via the usps.gov website somewhere, or at least I know I > did two years ago. Not useful for intra-city tests, but good enough > if you're trying to find who has traveled the furthest for homecoming... > > -- > Brian Hatch Reading whilst sunbathing > Systems and makes you well-red. > Security Engineer > http://www.ifokr.org/bri/ > > Every message PGP signed > From MichaelRWolf at att.net Wed Mar 24 13:28:55 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: re:humble print statement for debugging In-Reply-To: <200403231706.38261.Perl@Doorways.org> (Marc M. Adkins's message of "Tue, 23 Mar 2004 17:06:38 -0500") References: <200403231706.38261.Perl@Doorways.org> Message-ID: "Marc M. Adkins" writes: > On Tuesday 23 March 2004 01:03 pm, Andrew Sweger wrote: >> On Mon, 22 Mar 2004, Kristi Anderson wrote: >> > I've just recently added perl to the list of languages of which I know >> > just enough to be dangerous. One thing I've noticed about all of them >> > is that you can almost always easily figure out how to use print or >> > show or display or printf or cout, but to learn the debugger of each >> > is considerably more time consuming. >> >> But that time pays big dividends. Every person I have taught how to use >> the Perl debugger has exclaimed how they could have saved so much more >> time in the past had they known how to use it. Of course, the same can be >> said for so many other time saving bits of knowledge too. > > I find that any new software environment presents a debugger-related learning > curve. I tend to put off learning it until I think that the cost of getting > over the first hump of learning to build a debugger version and the > peculiarities of whatever debugger I'm using (it does WHAT?) will be offset > by time saved in solving the problem. But them I'm just lazy. Laziness -- one of the 3 virtues of a good programmer. [...] > I do have as an alternative a fairly powerful trace logging system. In > addition to a flexible, low-overhead trace statement filter I use an output > stream that understands timestamps, message types, and indentation. When > properly used, which is pretty simple, it presents a really clear picture of > code execution, especially with complex, recursive code. In production it > allows filters to pull errors out of the log stream for summation, > notification, or display. Hubris. 2 of 3. > Perhaps it's the type of problems I solve with Perl. Right now I'm processing > batches of 10,000 - 20,000 documents at a time. The jobs run forever and > errors may occur in 2 minutes or 2 days. So my only hope is really good > logging (i.e. trace statements). Impatience. 3 of 3. You qualify. Welcome to the club!!! -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From MichaelRWolf at att.net Wed Mar 24 13:32:20 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: 3 virtues -- laziness, impatience, hubris In-Reply-To: (Michael R. Wolf's message of "Wed, 24 Mar 2004 11:28:55 -0800") References: <200403231706.38261.Perl@Doorways.org> Message-ID: Michael R. Wolf writes: > 3 virtues of a good programmer Check 'em all out on Ward Cunningham's Wiki, referencing Larry Wall's original definitions and motivations http://c2.com/cgi/wiki?LazinessImpatienceHubris -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From stuart_poulin at yahoo.com Wed Mar 24 18:45:23 2004 From: stuart_poulin at yahoo.com (Stuart Poulin) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Perl logic module? In-Reply-To: Message-ID: <20040325004523.34876.qmail@web60803.mail.yahoo.com> Don't forget too that perl has a built in parser - you can sub in strings then eval the string. i.e. my $str = "-foo bar -a ( -bar stool -o -bar tab )"; $str =~ s/\s-a\s/ and /g; $str =~ s/\s-o\s/ or /g; $str =~ s/-foo\s+(\w+)/foo('$1')/g; $str =~ s/-bar\s+(\w+)/bar('$1')/g; print "$str\n"; my $results = eval $str; print "Results = $results\n"; sub foo { my $arg = shift; return 1 if $arg eq 'bar'; return 0; } sub bar { my $arg = shift; return 1 if ( $arg eq 'stool' or $arg eq 'drink' ); return 0; } Do you Yahoo!? Yahoo! Finance Tax Center - File online. File on time. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/spug-list/attachments/20040324/f1a51c0c/attachment.htm From Perl at Doorways.org Wed Mar 24 13:18:08 2004 From: Perl at Doorways.org (Marc M. Adkins) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Perl logic module? In-Reply-To: <20040325004523.34876.qmail@web60803.mail.yahoo.com> References: <20040325004523.34876.qmail@web60803.mail.yahoo.com> Message-ID: <200403241406.19058.Perl@Doorways.org> On Wednesday 24 March 2004 07:45 pm, Stuart Poulin wrote: > Don't forget too that perl has a built in parser - you can sub in strings > then eval the string. i.e. > my $str = "-foo bar -a ( -bar stool -o -bar tab )"; > ... > return 0; > } A perfect example of what I love about Perl. But then, I was a LISP programmer for four years. My favorite configuration file format for Perl scripts: { flag1 => 1, flag2 => 'two', flag3 => [ qw(alpha bravo charlie) ], flag4 => { title => 'demo', priority => 99, temperature => 98.6 } } Q: How many lines of Perl code does it take to parse the file? A: None, because the Perl parser does all the parsing! Well, not none, of course. Exactly how many is left as an exercise for the reader. The only problem with using this as a general solution is protecting the script from a malicious user putting arbitrary code in it. I use the Safe module to protect from that. I've always suspected the name would turn out to be a misnomer some day, but when I search for articles to that effect I come up empty. Anyone know anything about the safety of Safe? mma From MichaelRWolf at att.net Wed Mar 24 22:03:59 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: <00e901c411ba$f2e7c000$0200a8c0@gealach> (James Moore's message of "Wed, 24 Mar 2004 08:13:20 -0800") References: <00e901c411ba$f2e7c000$0200a8c0@gealach> Message-ID: "James Moore" writes: > Last time I looked, the way to go was to grab the TIGER dataset from > the US Census. Michael Schwern (last known to be living in Portland, OR, and last seen at a PDX Perl Monger meeting) had a BOF at OSCON 2001 (http://conferences.oreillynet.com/cs/os2001/view/e_sess/1470). He had hacked some stuff together, showed it, then asked folks how they might find it useful. It was very much a work in progress as I remember. His interest may have stopped at Geo::TigerLine 0.01. You may be able to resurrect some of it, or ping him for pointers to other directions to follow. -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From pdarley at kinesis-cem.com Thu Mar 25 10:10:34 2004 From: pdarley at kinesis-cem.com (Peter Darley) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: <00e901c411ba$f2e7c000$0200a8c0@gealach> Message-ID: James, The Geo::Tigerline module seems like it could be just what I have been looking for. I haven't had a chance to dig into it yet. :( Thanks, Peter Darley -----Original Message----- From: spug-list-bounces@mail.pm.org [mailto:spug-list-bounces@mail.pm.org]On Behalf Of James Moore Sent: Wednesday, March 24, 2004 8:13 AM To: 'Brian Hatch'; 'Fred Morris' Cc: 'SPUG' Subject: RE: SPUG: Geocoding System Last time I looked, the way to go was to grab the TIGER dataset from the US Census. The last update was in 1990, so it's somewhat out-of-date, but may be good enough for your purposes. (Lots of commercial products are based on this data, but they do their own updates). There's a Geo::TigerLine module on CPAN that I'd take a look at, but the doc page says it's unfinished. The data files give you a location (lat/long) for a street address range, so actually doing the lookup should be trivial. - James james.moore@ziprealty.com _____________________________________________________________ Seattle Perl Users Group Mailing List POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list MEETINGS: 3rd Tuesdays, Location Unknown WEB PAGE: http://www.seattleperl.org From pdarley at kinesis-cem.com Thu Mar 25 10:12:43 2004 From: pdarley at kinesis-cem.com (Peter Darley) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: Message-ID: Mark, I'm going to have to be getting lat/long for a database that will eventually have tens of thousands of locations in it, so doing it this way would be pretty abusive. :) As to free, I'm not against spending some money on this, as long as I end up with something I can use easily from Perl. Thanks, Peter Darley -----Original Message----- From: spug-list-bounces@mail.pm.org [mailto:spug-list-bounces@mail.pm.org]On Behalf Of M. Alway Sent: Wednesday, March 24, 2004 10:29 AM Cc: SPUG Subject: Re: SPUG: Geocoding System I've also been very interested in converting addresses to lat/lon. What I've done so far is harvest this information off of www.terraserver.com/search/address_search.asp by using LWP to form a post with the same field information and then the resulting page has the lat and lon in the link labeled "view". You can extract the coordinates with regex or using an HTML parser module. There's several other sites that allow this type of searching also. Like any valuable FREE resource, use in moderation (e.g. a few hits a day) versus slamming them while you attempt to find lat/lon for every entry in a 2000 person database. -- Mark ==================================================== = Mark Alway = = Lead Software Developer = = Ed-Tech Development Group = = Educational Partnerships & Learning Technologies = = University of Washington = = Box 353080, Seattle, WA 98195 = = 206.616.3406 = = always@u.washington.edu = ==================================================== On Tue, 23 Mar 2004, Brian Hatch wrote: > > > > >[...]I need to feed it addresses and get back long/lat values. > > I don't have a pointer for that, but you can get zip to lat/long > values via the usps.gov website somewhere, or at least I know I > did two years ago. Not useful for intra-city tests, but good enough > if you're trying to find who has traveled the furthest for homecoming... > > -- > Brian Hatch Reading whilst sunbathing > Systems and makes you well-red. > Security Engineer > http://www.ifokr.org/bri/ > > Every message PGP signed > _____________________________________________________________ Seattle Perl Users Group Mailing List POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list MEETINGS: 3rd Tuesdays, Location Unknown WEB PAGE: http://www.seattleperl.org From andrew at sweger.net Thu Mar 25 11:27:42 2004 From: andrew at sweger.net (Andrew Sweger) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: Message-ID: The folks at geocode.com (Tele Atlas) provide batch geocoding services as well as client/server products (I think, I didn't read carefully). They also provide sample client code in C that talks to their servers for one-off geocoding. I didn't feel like getting a user account with them just to see the C code, but I'm guessing that it could either be Inline'd or the socket protocol could be reverse-engineered to a pure perl implementation. Of course, if these folks are smart, they've already got a XMLRPC/SOAP interface out there just waiting to make you happy. On Thu, 25 Mar 2004, Peter Darley wrote: > I'm going to have to be getting lat/long for a database that will > eventually have tens of thousands of locations in it, so doing it this way > would be pretty abusive. :) > As to free, I'm not against spending some money on this, as long as I end > up with something I can use easily from Perl. -- Andrew B. Sweger -- The great thing about multitasking is that several things can go wrong at once. From MichaelRWolf at att.net Thu Mar 25 13:43:37 2004 From: MichaelRWolf at att.net (Michael R. Wolf) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: (Peter Darley's message of "Thu, 25 Mar 2004 08:12:43 -0800") References: Message-ID: "Peter Darley" writes: > Mark, > I'm going to have to be getting lat/long for a database that will > eventually have tens of thousands of locations in it, so doing it this way > would be pretty abusive. :) I know the USPS has a pay-to-play service, so abusive isn't really a problem, it's a service they provide. I'd bet it's pretty robust, but it's also targeted to bulk mail for zip codes, so I'm not so sure about the long/lat robustness, but as for batch processing of lots of entries, they've been working on that process for years. > As to free, I'm not against spending some money on this, as long as I end > up with something I can use easily from Perl. I'm glad to hear that free (as in speech) is more important than free (as in beer). Sam Adams was good at the former, and I don't mind paying for the later. :-) Hey, perhaps that's what Perl needs for a PR campaign -- a good homebrew with a Perl label to hilight the technology. :-) -- Michael R. Wolf All mammals learn by playing! MichaelRWolf@att.net From tim at consultix-inc.com Thu Mar 25 16:49:25 2004 From: tim at consultix-inc.com (Tim Maher) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Perl Job Message-ID: <20040325224925.GA10406@jumpy.consultix-inc.com> > Position Summary: * Location: Seattle * $40.00 per hour 3 month contract to perm * W2 preferred but we can do a 1099 * Contract services * > Your role as part of this team focuses on the quality development of new > products and services, of back-end automation and of highly efficient > support tools. > > Your responsibilities include but are not limited to: > > * Working with other teams throughout the company to determine the > feasibility, requirements and technical design on assigned projects. > * Designing and developing highly automated web-based systems, primarily > using object-oriented mod_perl and XML over HTTP. > * Testing and documentation of all systems developed. > * Ongoing support, maintenance and enhancement of systems. > > This position requires the following skills and experience: > > * BS in Computer Science or equivalent work experience. > * 3+ years solid development experience with object-oriented Perl, mod_perl, > Java, XML and HTML in a dynamic, fast-paced environment. > * Database development and design experience with SQL and Oracle. > * Understanding of various software development lifecycle methodologies, > configuration management (CVS) and object-oriented software development > methodologies. > * Detailed knowledge of web application architecture and infrastructure. > * Experience with Linux (primarily Debian and secondarily Red Hat) and with > Apache httpd. > * Ability to work well independently or within a team. > * Excellent written and verbal communication skills. > * Ability to determine unique and creative solutions to problems within a > rapid development environment. > > > > > Lori Burwell > Account Manager > Comforce Staffing Services > 253-627-6227 Office > 253-627-0302 Fax > lburwell@comforce.com From ext-spug at jope.net Thu Mar 25 21:20:53 2004 From: ext-spug at jope.net (El JoPe Magnifico) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: References: Message-ID: Mmmm... Camel Spit Ale... "Puts hair on your chest and a hump on your back!" On Thu, 25 Mar 2004, Michael R. Wolf wrote: > Hey, perhaps that's what Perl needs for a PR campaign -- a good > homebrew with a Perl label to hilight the technology. :-) From ivandh at comcast.net Fri Mar 26 01:52:10 2004 From: ivandh at comcast.net (Ivan Heffner) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: References: Message-ID: <6.0.1.1.0.20040325235123.01b8ee08@mail.comcast.net> Would that be better than "hair on your back and a hump on your stomach"? At 3/25/2004 07:20 PM, El JoPe Magnifico wrote: >Mmmm... Camel Spit Ale... >"Puts hair on your chest and a hump on your back!" > >On Thu, 25 Mar 2004, Michael R. Wolf wrote: > > Hey, perhaps that's what Perl needs for a PR campaign -- a good > > homebrew with a Perl label to hilight the technology. :-) >_____________________________________________________________ >Seattle Perl Users Group Mailing List >POST TO: spug-list@mail.pm.org http://spugwiki.perlocity.org >ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list >MEETINGS: 3rd Tuesdays, Location Unknown >WEB PAGE: http://www.seattleperl.org From ext-spug at jope.net Sat Mar 27 00:29:53 2004 From: ext-spug at jope.net (El JoPe Magnifico) Date: Mon Aug 2 21:37:18 2004 Subject: SPUG: Geocoding System In-Reply-To: <6.0.1.1.0.20040325235123.01b8ee08@mail.comcast.net> References: <6.0.1.1.0.20040325235123.01b8ee08@mail.comcast.net> Message-ID: Perl is all about offering options. Brew a stout also, and leave the choice up to the user. On Thu, 25 Mar 2004, Ivan Heffner wrote: > Would that be better than "hair on your back and a hump on your stomach"? > >> Mmmm... Camel Spit Ale... >> "Puts hair on your chest and a hump on your back!" >> >>> Hey, perhaps that's what Perl needs for a PR campaign -- a good >>> homebrew with a Perl label to hilight the technology. :-)