From david at fetter.org Wed Aug 3 17:02:10 2005 From: david at fetter.org (David Fetter) Date: Wed, 3 Aug 2005 17:02:10 -0700 Subject: [sf-perl] PostgreSQL BoF(H) and Free Pins! Message-ID: <20050804000210.GC673@fetter.org> Folks, I'm arranging for a BoF(H) for the PostgreSQL community and interested (or at least interesting) parties at Bucca di Beppo at 7:00pm or so on August 11 after Linuxworld Expo/SF. Sign-up is below. In order to reduce confusion and eliminate certain game-theoretic issues, the check will be divided equally among attendees. EnterpriseDB has been kind enough to give the PostgreSQL an official chunk of their 20'x20' space at Linuxworld Expo/San Franciso, complete with a keyboard, monitor, mouse and network hookup, along with some passes for the floor of LWE/SF. They're also giving out these stylish and fashionable PostgreSQL cloisonn?? pins to people who will staff the PostgreSQL section of the booth. Bring your enthusiasm, and sign up for a slot. SLOTS (9:30AM - 1:00PM) (1:00PM - 5:00PM) Tuesday Wednesday Fred Moyer Thursday Larry Wissink Reply off-list to me (david at fetter.org) to sign up for either or both. Cheers, D -- David Fetter david at fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote! From josh at agliodbs.com Thu Aug 4 09:32:20 2005 From: josh at agliodbs.com (Josh Berkus) Date: Thu, 4 Aug 2005 09:32:20 -0700 Subject: [sf-perl] PostgreSQL BoF(H) and Free Pins! In-Reply-To: <20050804000210.GC673@fetter.org> References: <20050804000210.GC673@fetter.org> Message-ID: <200508040932.21152.josh@agliodbs.com> David, > I'm arranging for a BoF(H) for the PostgreSQL community and interested > (or at least interesting) parties at Bucca di Beppo at 7:00pm or so on > August 11 after Linuxworld Expo/SF. Sign-up is below. In order to > reduce confusion and eliminate certain game-theoretic issues, the > check will be divided equally among attendees. D'oh! Somehow a piece of information got dropped here, probably because I forgot to put it on the SFPUG page. We have an *offical* BOF, scheduled with LinuxWorld Expo, on August 9th. I've posted to the list about it before: http://www.linuxworldexpo.com/live/12/events/12SFO05A/conference/tracksessions//QMONYA04NW4A I'm keen on the dinner thing; maybe we could move it to August 9th after the official BOF? Yes/No? Otherwise I'll just cancel the official BOF. It conflicts with the OSDL reception anyway. Let me know what you want me to do. -- --Josh Josh Berkus Aglio Database Solutions San Francisco From david at fetter.org Tue Aug 9 00:56:27 2005 From: david at fetter.org (David Fetter) Date: Tue, 9 Aug 2005 00:56:27 -0700 Subject: [sf-perl] PostgreSQL BoF(H) Message-ID: <20050809075627.GA3238@fetter.org> Folks, Thanks to all who've volunteered to staff the PostgreSQL/EnterpriseDB booth :) As you may have read earlier, the PostgreSQL community is having a BoF(H) for interested (or at least interesting) parties at Bucca di Beppo at 7:00pm on August 11 after Linuxworld Expo/SF. In order to reduce confusion and eliminate certain game-theoretic issues (while possibly raising others ;) the check will be divided equally among BoF(H) attendees. RSVP ASAP to david at fetter.org if interested in attending, as the 12 places at Bucca are rapidly filling up, and we may not be able to charm them into expanding our seating allocation. Cheers, D -- David Fetter david at fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote! From extasia at extasia.org Tue Aug 9 20:59:39 2005 From: extasia at extasia.org (David Alban) Date: Tue, 9 Aug 2005 20:59:39 -0700 Subject: [sf-perl] [sig-beer-west] Saturday 8/13 at 18:00 in Berkeley Message-ID: <20050810035939.GA6253@gerasimov.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 extasia.org/sig-beer-west/ sig-beer-west Saturday, August 13, 2005 at 18:00[1] San Francisco Bay area [1] http://extasia.org/sig-beer-west/ Beer. Mental stimulation. Please note that SBW events now take place on the second Saturday of the month. This event: * Saturday, 8/13/2005, 18:00, at Jupiter, Berkeley Coming events (second Saturdays): * Saturday, 09/10/2005, 18:00, location to be determined * Saturday, 10/08/2005, 18:00, location to be determined * Saturday, 11/12/2005, 18:00, location to be determined The San Francisco Bay area's next social event for techies and their friends, sig-beer-west, will take place at 18:00 on Saturday, August 13, 2005 at Jupiter, 2181 Shattuck Avenue (at Center Street) across from the Downtown Berkeley BART station. Call 510-THE-TAPS for directions. They have a fine website with all sorts of good info about: * Jupiter itself[2] * Their beer[3] * Their food[4] * How to get there (contains map)[5] [2] http://www.spacearchive.info/military.htm [3] http://www.jupiterbeer.com/berkeley/index.html [4] http://www.jupiterbeer.com/berkeley/about/index.html [5] http://www.jupiterbeer.com/berkeley/beer/index.html Everyone is welcome at this event. We mean it! Please feel free to forward this information and to invite friends, cow-orkers,[6] and others (of legal drinking age) who might enjoy lifting a glass with interesting folks from all over the place. [6] http://www.jupiterbeer.com/berkeley/food/index.html Can't come this month? Mark your calendar for next month. (Do it now before you forget!) sig-beer-west occurs on the second Saturday of each month. Want to suggest a venue? Suggestions for new places to sip and gab are always welcome. Have questions, comments, or other ideas concerning sig-beer-west? Send all correspondence to the current sig-beer-west Instigator. The Instigator's handle is extasia. The Instigator's email address is <*the handle*> at <*the handle*> dot <*org*>. A subject beginning with "sbw: " will increase the chances that the Instigator's spam filters don't block your message. sig-beer-west FAQ 1. Q: Your announcement says "techies and their friends". How do I know if I'm a techie, or a friend of one? A: Well, actually, you don't have to be a techie to attend. You just have to be able to find the sig-beer-west sign at this month's event. That's it. Simple, huh? 2. Q: I'm not really a beer person. In fact I'm interested in hanging out, but not in drinking. Would I be welcome? A: Absolutely! The point is to hang out with fun, interesting folks. Please do join us. 3. Q: I've been thinking about attending sig-beer-west for some time now. Maybe I should start with this event? A: Yes!! ______________________________________________________________________ sig-beer-west was started in February 2002 when a couple Washington, D.C. based systems administrators who moved to the San Francisco Bay area wanted to continue a dc-sage[7] tradition, SIG-beer, which is described in sig-beer.NET[8] web space as: SIG-beer, n., origin lost to intoxication: 1. Special Interest Group - Beer! 2. An Interprocessor Communications (IPC) signal that should be implemented in every O/S kernel. Semantics are left to the hardware driver for the Robotic Drinks Server. Expected behavior is that kill -beer 3. A standing monthly gathering of systems administrators, past/present/future, and their ilk in Washington, DC. and other worldwide locations. These gathering consists of a friendly gathering of people who enjoy tasting/drinking interesting beer and chatting about computers, life, and how to implement the SIG-beer into their systems. It started with a group of dc.sage[9] sysadmins some time in 1997. ______________________________________________________________________ [7] http://www.jupiterbeer.com/berkeley/directions/index.html [8] http://en.wikipedia.org/wiki/Cow-orker [9] http://www.dc-sage.org/ [10] http://www.sig-beer.net/ [11] http://www.dc-sage.org/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQFC+XqAPh0M9c/OpdARAo8nAJ9BRVqP2Xx3hRNhCcZdmAn/rw6TvACgn5uq qsH6++T1mI2ZPocRBYI6emA= =SUzZ -----END PGP SIGNATURE----- From david at fetter.org Tue Aug 9 22:07:59 2005 From: david at fetter.org (David Fetter) Date: Tue, 9 Aug 2005 22:07:59 -0700 Subject: [sf-perl] Travelpost and the BoF(H) Message-ID: <20050810050759.GU4503@fetter.org> Folks, You moved fast and used up all the places at the table. Thanks to Travelpost for their generous contribution towards volunteers' dinners :) Adi Alurkar Jon Asher Josh Berkus Garry Coombe David Fetter Jeff Frost Jeff Lennan Elein Mustain Fred Moyer Githogori Nyangara-Murage Larry Wissink Frank Wosczyna William Yu Cheers, D -- David Fetter david at fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote! From david at fetter.org Tue Aug 9 22:33:17 2005 From: david at fetter.org (David Fetter) Date: Tue, 9 Aug 2005 22:33:17 -0700 Subject: [sf-perl] [sfpug] Travelpost and the BoF(H) In-Reply-To: <20050810050759.GU4503@fetter.org> References: <20050810050759.GU4503@fetter.org> Message-ID: <20050810053317.GW4503@fetter.org> On Tue, Aug 09, 2005 at 10:07:59PM -0700, David Fetter wrote: > Folks, > > You moved fast and used up all the places at the table. Thanks to > Travelpost for their generous contribution towards volunteers' > dinners :) > > Adi Alurkar > Jon Asher > Josh Berkus > Garry Coombe > David Fetter > Jeff Frost > Jeff Lennan > Elein Mustain > Fred Moyer > Githogori Nyangara-Murage > Larry Wissink > Frank Wosczyna > William Yu Oops. Apparently William Yu can't make it, but Sooyoung Park can :) Cheers, D -- David Fetter david at fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote! From david at fetter.org Thu Aug 11 12:20:50 2005 From: david at fetter.org (David Fetter) Date: Thu, 11 Aug 2005 12:20:50 -0700 Subject: [sf-perl] [ jobs ] danger is hiring In-Reply-To: References: Message-ID: <20050811192050.GD29214@fetter.org> On Thu, Aug 11, 2005 at 12:05:25PM -0700, Matthew Lanier wrote: > > hey folks- > > danger is hiring technical folk, and will be doing so for quite some > time. if you are lookin' and are skilled in any of > perl/java/application servers/oracle, please drop me a line. Kudos! Are they still in Palo Alto? Cheers, D -- David Fetter david at fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote! From matt at cloudfactory.org Thu Aug 11 13:20:19 2005 From: matt at cloudfactory.org (Matthew Lanier) Date: Thu, 11 Aug 2005 13:20:19 -0700 (PDT) Subject: [sf-perl] [ jobs ] danger is hiring In-Reply-To: <20050811192050.GD29214@fetter.org> Message-ID: On Thu, 11 Aug 2005, David Fetter wrote: > On Thu, Aug 11, 2005 at 12:05:25PM -0700, Matthew Lanier wrote: > > > > hey folks- > > > > danger is hiring technical folk, and will be doing so for quite some > > time. if you are lookin' and are skilled in any of > > perl/java/application servers/oracle, please drop me a line. > > Kudos! > > Are they still in Palo Alto? yep, still in sunny palo alto, near caltrain. m@ From josh at agliodbs.com Mon Aug 15 09:37:58 2005 From: josh at agliodbs.com (Josh Berkus) Date: Mon, 15 Aug 2005 09:37:58 -0700 Subject: [sf-perl] Two Jobs in San Mateo Message-ID: <200508150937.59581.josh@agliodbs.com> Folks, There's two positions available at the startup where I work. It's the good kind of startup; friendly and informal where results count for more than position. I certainly like it. Contact me if you're interested in either; these jobs can also be found through O'Reilly Connection. ===================================== SENIOR SOFTWARE ENGINEER and: DATABASE INTERNALS ENGINEER These engineers will be responsible for designing and implementing new features and enhancements for Greenplum's parallel database system DeepGreen as part of a project team. High preference will be given to those with extensive system software development experience (client-server software, database integration, web servers etc) and open-source exposure in high-profile projects, such as PostgreSQL, MySQL, Apache or Mozilla. Potential Duties: - Perform work in product development teams according to the project plans. - Design, document and implement database engine modules and components. - Write test cases for quality assurance purposes. - Write raw documentation. Minimum Qualifications: - At least five years of COMMERCIAL software development experience with commercial or open-source database engines, such as Oracle, MySQL or PostgreSQL - Extensive knowledge of SQL, including SQL optimization and parsing - Ability to design and validate software architectures. - Expertise with the C and C++ programming languages, including threads (pthreads), sockets programming, building distributed applications. - Expert knowledge of the Linux software development environment. Cross-platform software development experience is an advantage. - Expertise in database quality assurance, including test specifications, designing and implementing test systems, and performing functional, load and stress testing and measurements with database engines. Desired Qualifications: - Working with open source projects. - Working knowledge of distributed and network programming. - Experience as a system or database administrator. - Experience in database performance tuning. - Commercial experience with databases that have hundreds to thousands of concurrent connections. - Experience with software development on Windows, Solaris, and OS X. -- Josh Berkus San Francisco From matt at cloudfactory.org Wed Aug 17 12:29:04 2005 From: matt at cloudfactory.org (Matthew Lanier) Date: Wed, 17 Aug 2005 12:29:04 -0700 (PDT) Subject: [sf-perl] Perl 6 Now by Scott Walters (fwd) Message-ID: from sfpug member joe brenner... ---------- Forwarded message ---------- Date: 17 Aug 2005 19:26:01 -0000 Subject: Perl 6 Now by Scott Walters Link: http://slashdot.org/article.pl?sid=05/08/16/0511217 Posted by: timothy, on 2005-08-17 19:02:00 from the now-and-then-or-later-or-earlier dept. [1]Joseph Brenner writes "Every now and then, a beginning programmer asks if there's any point in learning to program in Perl 5, when Perl 6 is going to change everything soon. There are a number of answers to that: one is to point out that Perl 6 is still years away, another is to point out that it is promised that Perl 5 code will run under Perl 6 without modification (a module that begins with the traditional "package" statement is Perl 5 code; if it begins with the new "class," then it's Perl 6)." Read on for the rest of Brenner's review of Scott Walters' Programming in Perl 6 style using Perl 5, a book which answers that question a whole different way. Scott Walters here pursues what might be thought of as the third answer: you can learn Perl 6 now and immediately begin writing programs in a "Perl6ish" sort of way, using appropriate CPAN modules that have been used to implement approximations of Perl 6 behavior: Perl6::Variables, Perl6::Export, Perl6::Contexts, autobox, Perl6::Classes, Switch, and so on. There are many caveats about using these tricks in production code, however, and Scott Walters doesn't shy away from warning you about them (e.g. p.43 "Source filters are dangerous" where he discusses their increased start-up overhead and potential bugginess -- though he doesn't mention my own peeve which is that they're very confusing when you try and use the Perl debugger). So possibly the book is not really quite so well suited to an actual beginner-- who probably should not be told about "use Switch 'Perl6'", but the device of spending the early stages of the book directed toward a beginning audience makes it a very useful review for people like myself who have been reading the [2]Apocalypses, but don't remember every detail. And on the other hand, the book includes some prominent early warnings about common gotchas that beginning programmers seem to be prone to -- e.g. using dynamically defined variables instead of just using hashes. The standards for writing English in the Perl world are pretty high -- the core members of the Perl community have always cared a lot about clear writing, and it's arguably the world's best documented language (critics will no doubt add that it needs to be). Unfortunately, I can't say that Perl 6 Now quite lives up to this standard. This is a book that was written in a hurry, and it shows: hasty sentences and minor organizational problems abound (e.g. one or two items seem to be discussed in the wrong place; there are an awful lot of explicit forward references, and yet there's at least one place where something was used in an example before being discussed a few dozen pages later). But then in Scott Walters defense, this is certainly a book that needed to be written in a hurry, because its subject matter is such a moving target. And where the book really shines is in its code examples: short, clear and to the point; the author repeatedly shows how something can be done in Perl 5 code and how it's expected to work in Perl 6. These examples are always clearly labeled "Perl 5" or "Perl 6" in the comments, so that the two can't be confused. The subjects of some of the examples are pretty cool: e.g. he talks about using PDL ("Perl Data Language") to crunch audio data in MOD format, which I was completely unfamiliar with. A *.mod file essentially contains the "sheet music" for multiple parts (really, MIDI) plus sound samples that specify how notes will sound for each voice. This is discussed in Chapter 7, which is also the free sample chapter. I also liked random walking Arizona's highways as an example of Graph navigation (Chapter 8, p 159), and I appreciate the fact that he downplays inheritance in favor of delegation in his discussion of objects (Chapter 14, p. 262). All in all, this book is a fun read for the Perl fanatic. (Note: the title Perl 6 Now bears a strong resemblance to an emacs package I've been working on called perlnow.el, but there is no relation.) _________________________________________________________________ You can purchase [3]Programming in Perl 6 style using Perl 5 from bn.com; it's also available in eBook format (password protected PDF, using your email as password) for $15. [4]Source code and and a sample chapter are available online: Slashdot welcomes readers' book reviews -- to see your own review here, read the [5]book review guidelines, then visit the [6]submission page. References 1. mailto:doom at kzsu.REMOVECAPSstanfordANDTHENREMOVEMORECAPS.edu 2. http://dev.perl.org/perl6/doc/apocalypse.html 3. http://service.bfast.com/bfast/click?bfmid=2181&sourceid=39391960&isbn=1590593952 4. http://www.apress.com/book/bookDisplay.html?bID=355 5. http://slashdot.org/book.review.guidelines.shtml 6. http://slashdot.org/submit.pl From rdm at cfcl.com Sat Aug 20 16:52:49 2005 From: rdm at cfcl.com (Rich Morin) Date: Sat, 20 Aug 2005 16:52:49 -0700 Subject: [sf-perl] Editing PDF files? Message-ID: I'm interested in being able to perform simple edits on PDF files. For example, I might want to be able to change the colors of some characters and output the changed version. If I had the ability to import and export PDF files as Perl data structures (and a reference to documentation on what I'd be seeing :-), I'm pretty sure I could do the rest. The CPAN has a number of modules that _might_ be useful for this, I'd like to know which ones are the most relevant. Help? Clues? Sugestions? -r -- email: rdm at cfcl.com; phone: +1 650-873-7841 http://www.cfcl.com - Canta Forda Computer Laboratory http://www.cfcl.com/Meta - The FreeBSD Browser, Meta Project, etc. From rdm at cfcl.com Tue Aug 23 00:41:54 2005 From: rdm at cfcl.com (Rich Morin) Date: Tue, 23 Aug 2005 00:41:54 -0700 Subject: [sf-perl] Beer & Pizza SIG (8 pm, TONIGHT, Pasquale's) Message-ID: Sorry about the late notice; thanks to Jeremy for reminding me of the date! Anyway, there will be an SFPUG Beer & Pizza SIG (! TONIGHT !) for anyone who wants to join us. For details, read on... _________________________________________________________________ Beer and Pizza SIG RSVP: None is necessary. Just show up and look for Perlies. :) Date: Tuesday, August 23, 2005 Time: 8:00 p.m. Place: Pasquale's, 700 Irving (at 8th Ave.): http://maps.yahoo.com/py/maps.py?Pyt=Typ&name=Pasquale%27s+Pizzeria+Restaurant&desc=(415)+661-2140&addr=700+Irving+St&city=San+Francisco&state=CA&zip=94122&country=us&slt=37.764218&sln=-122.46549&cs=9&mag=8 Food: Excellent Italian fare, including some vegetarian entrees. Parking: Pretty much catch-as-catch-can. Street parking is not too bad in this neighborhood. There's also a couple of flat-rate lots nearby. From BART: Be prepared for a bit of a crowd, as this is the end of the prime commute time. Get off at the Embarcadero station. Within the station, exit BART, enter MUNI, and catch the N (outbound). Get off at Irving St. and 7th Ave. From Caltrain: (Don't take Caltrain if you can avoid it. Trains run back at 10:00 p.m. and 11:59 p.m. only!) From the station, take the N to Irving St. and 7th Ave. -- email: rdm at cfcl.com; phone: +1 650-873-7841 http://www.cfcl.com - Canta Forda Computer Laboratory http://www.cfcl.com/Meta - The FreeBSD Browser, Meta Project, etc. From dick at cfcl.com Tue Aug 23 02:26:15 2005 From: dick at cfcl.com (Richard Karpinski) Date: Tue, 23 Aug 2005 02:26:15 -0700 Subject: [sf-perl] Beer & Pizza SIG (8 pm, TONIGHT, Pasquale's) In-Reply-To: References: Message-ID: <393bfcc687b36caddaf9d4acb4a3a903@cfcl.com> If I showed up, could I get some more of that mild Italian spice I got last time? It seems only appropriate to the venue. Dick On Aug 23, 2005, at 12:41 AM, Rich Morin wrote: > Date: Tuesday, August 23, 2005 > > Time: 8:00 p.m. > > Place: Pasquale's, 700 Irving (at 8th Ave.): From extasia at gmail.com Tue Aug 23 14:15:17 2005 From: extasia at gmail.com (David Alban) Date: Tue, 23 Aug 2005 14:15:17 -0700 Subject: [sf-perl] Log stomping Message-ID: <4c714a9c05082314151c6aceee@mail.gmail.com> Greetings, Perhaps this is more of a shell question than a perl question, but here goes anyway. I've replicated the "real world" problem into a pair of simple perl programs. "foo" prints a couple lines of data. "foo-flocking" does the same thing, but only after successfully acquiring an exclusive flock. When I ran eight cron invocations of foo, all at the same time, all appending the same log file, they "stomped" on each other in the log. When I used foo-flocking instead, I got slightly different results in the log, but the invocations were still stomping on each other in the log. When I ran again, but invoked foo (the non-flocking version) only after successfully creating a lock directory, no invocation of foo had its output stomped in the log file. My purpose in sending this post is to understand why the flocking version doesn't solve the problem. My hunch is that each of the shells that runs one of the cron jobs immediately discovers where end of file is for the log file, since it's shell redirection that appends the file, and not the program being run. Even though foo-flocking must wait until it gets an exclusive lock before it has anything to log. Then when each foo-flocking gets a lock, it appends the log. But the shell is doing the appending, and its idea of end of file hasn't changed, even if some other process has appended the log. When this occurs, it stomps on the data the previous process wrote. Does this make sense? Is this what's going on? Here are the specifics: ===== begin foo ======================================================== #!/usr/bin/perl use strict; use warnings; ( my $pgm = $0 ) =~ s=^.*/==s; my $argv0 = shift; if ( not defined $argv0 ) { $argv0 = "[undef]"; } # if else { $argv0 = "'$argv0'"; } # if print logstamp(), " $pgm\[$$] argv[ 0 ] => $argv0\n"; print logstamp(), " $pgm\[$$] The rain in Spain falls mainly in the plain.\n"; #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sub logstamp { my @t = localtime; sprintf "%04d-%02d-%02d %02d:%02d:%02d", $t[ 5 ] + 1900, $t[ 4 ] + 1, $t[ 3 ], $t[ 2 ], $t[ 1 ], $t[ 0 ]; } # logstamp ===== end foo ======================================================== ===== begin foo-flocking =============================================== #!/usr/bin/perl use strict; use warnings; use Fcntl ':flock'; ( my $pgm = $0 ) =~ s=^.*/==s; my $argv0 = shift; my $errormsg = lock_file(); $errormsg and die "$pgm: $errormsg\n"; if ( not defined $argv0 ) { $argv0 = "[undef]"; } # if else { $argv0 = "'$argv0'"; } # if print logstamp(), " $pgm\[$$] argv[ 0 ] => $argv0\n"; print logstamp(), " $pgm\[$$] The rain in Spain falls mainly in the plain.\n"; #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sub logstamp { my @t = localtime; sprintf "%04d-%02d-%02d %02d:%02d:%02d", $t[ 5 ] + 1900, $t[ 4 ] + 1, $t[ 3 ], $t[ 2 ], $t[ 1 ], $t[ 0 ]; } # logstamp #- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sub lock_file { my $func = "lock_file"; my $lockfile = "/tmp/foo.lock"; open my $handle, '>', $lockfile or return "$func(): $lockfile: couldn't open for writing: $!"; my $attempts = 20; my $interval = 1; my $got_lock = 0; for my $attempt ( 1..$attempts ) { if ( flock $handle, LOCK_EX | LOCK_NB ) { $got_lock = 1; last; } # if sleep $interval if $attempt < $attempts; } # for return ( $got_lock ? "" : "could not acquire lock after $attempts attempts: $!" ); } # lock_file ===== end foo-flocking =============================================== ===== begin cron jobs ================================================== 39 13 * * * $HOME/foo one >> $HOME/log 2>&1 39 13 * * * $HOME/foo two >> $HOME/log 2>&1 39 13 * * * $HOME/foo three >> $HOME/log 2>&1 39 13 * * * $HOME/foo four >> $HOME/log 2>&1 39 13 * * * $HOME/foo five >> $HOME/log 2>&1 39 13 * * * $HOME/foo six >> $HOME/log 2>&1 39 13 * * * $HOME/foo seven >> $HOME/log 2>&1 39 13 * * * $HOME/foo eight >> $HOME/log 2>&1 ===== end cron jobs ================================================== ===== begin log ======================================================== 2005-08-23 13:39:01 foo[9588] argv[ 0 ] => 'two' 2005-08-23 13:39:01 foo[9588] The rain in Spain falls mainly in the plain. 2005-08-23 13:39:01 foo[9599] argv[ 0 ] => 'five' 2005-08-23 13:39:01 foo[9599] The rain in Spain falls mainly in the plain. 2005-08-23 13:39:01 foo[9602] argv[ 0 ] => 'six' 2005-08-23 13:39:01 foo[9602] The rain in Spain falls mainly in the plain. 2005-08-23 13:39:02 foo[9609] argv[ 0 ] => 'eight' 2005-08-23 13:39:02 foo[9609] The rain in Spain falls mainly in the plain. ===== end log ======================================================== ===== begin cron jobs ================================================== 43 13 * * * $HOME/foo-flocking one >> $HOME/log 2>&1 43 13 * * * $HOME/foo-flocking two >> $HOME/log 2>&1 43 13 * * * $HOME/foo-flocking three >> $HOME/log 2>&1 43 13 * * * $HOME/foo-flocking four >> $HOME/log 2>&1 43 13 * * * $HOME/foo-flocking five >> $HOME/log 2>&1 43 13 * * * $HOME/foo-flocking six >> $HOME/log 2>&1 43 13 * * * $HOME/foo-flocking seven >> $HOME/log 2>&1 43 13 * * * $HOME/foo-flocking eight >> $HOME/log 2>&1 ===== end cron jobs ================================================== ===== begin log ======================================================== 2005-08-23 13:43:01 foo-flocking[9651] argv[ 0 ] => 'three' 2005-08-23 13:43:01 foo-flocking[9651] The rain in Spain falls mainly in the plain202005-08-23 13:43:02 foo-flocking[9659] argv[ 0 ] => 'seven' 2005-08-23 13:43:02 foo-flocking[9659] The rain in Spain falls mainly in the plain. 2005-08-23 13:43:02 foo-flocking[9661] argv[ 0 ] => 'eight' 2005-08-23 13:43:02 foo-flocking[9661] The rain in Spain falls mainly in the plain. ===== end log ======================================================== The mklockdir program that you see in the last set of cron jobs below attempts a finite number of times, sleeping a second between attempts, to create a directory. It returns 0 to the shell if it was successful, non-zero otherwise. The idea being that creating a directory is an atomic operation. It will either entirely succeed or entirely fail without race conditions. So being able to create a "lock directory" is one implementation of locking. I think it's preventing the log stomping, because the shell doesn't start the redirection unless mklockdir is successful. ===== begin cron jobs ================================================== 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo one >> $HOME/log 2>&1; rmdir $lockdir; fi 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo two >> $HOME/log 2>&1; rmdir $lockdir; fi 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo three >> $HOME/log 2>&1; rmdir $lockdir; fi 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo four >> $HOME/log 2>&1; rmdir $lockdir; fi 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo five >> $HOME/log 2>&1; rmdir $lockdir; fi 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo six >> $HOME/log 2>&1; rmdir $lockdir; fi 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo seven >> $HOME/log 2>&1; rmdir $lockdir; fi 48 13 * * * lockdir=/tmp/foo.lock.d; if $HOME/mklockdir $lockdir; then $HOME/foo eight >> $HOME/log 2>&1; rmdir $lockdir; fi ===== end cron jobs ================================================== ===== begin log ======================================================== 2005-08-23 13:48:02 foo[9758] argv[ 0 ] => 'two' 2005-08-23 13:48:02 foo[9758] The rain in Spain falls mainly in the plain. 2005-08-23 13:48:03 foo[9761] argv[ 0 ] => 'three' 2005-08-23 13:48:03 foo[9761] The rain in Spain falls mainly in the plain. 2005-08-23 13:48:04 foo[9763] argv[ 0 ] => 'four' 2005-08-23 13:48:04 foo[9763] The rain in Spain falls mainly in the plain. 2005-08-23 13:48:04 foo[9765] argv[ 0 ] => 'one' 2005-08-23 13:48:04 foo[9765] The rain in Spain falls mainly in the plain. 2005-08-23 13:48:04 foo[9767] argv[ 0 ] => 'seven' 2005-08-23 13:48:04 foo[9767] The rain in Spain falls mainly in the plain. 2005-08-23 13:48:04 foo[9769] argv[ 0 ] => 'eight' 2005-08-23 13:48:04 foo[9769] The rain in Spain falls mainly in the plain. 2005-08-23 13:48:05 foo[9771] argv[ 0 ] => 'six' 2005-08-23 13:48:05 foo[9771] The rain in Spain falls mainly in the plain. 2005-08-23 13:48:05 foo[9773] argv[ 0 ] => 'five' 2005-08-23 13:48:05 foo[9773] The rain in Spain falls mainly in the plain. ===== end log ======================================================== Thanks!! David -- Live in a world of your own, but always welcome visitors. From garth at perijove.com Tue Aug 23 22:39:49 2005 From: garth at perijove.com (Garth Webb) Date: Tue, 23 Aug 2005 22:39:49 -0700 Subject: [sf-perl] Log stomping In-Reply-To: <4c714a9c05082314151c6aceee@mail.gmail.com> References: <4c714a9c05082314151c6aceee@mail.gmail.com> Message-ID: <1124861990.13849.14.camel@localhost.localdomain> On Tue, 2005-08-23 at 14:15 -0700, David Alban wrote: > Greetings, > > Perhaps this is more of a shell question than a perl question, but > here goes anyway. I ran your first 'foo' script with the first crontab and I got all 16 (2 x 8) lines, without any stomping. I thought maybe if I set auto flushing ($| = 1) I'd get some intermixed lines between the process, but still the same basic output. I thought appends were supposed to be atomic, but maybe its system dependent. I'm using FC3 on a Dell Inspiron 4000 FWIW. Garth From moseley at hank.org Wed Aug 24 06:22:18 2005 From: moseley at hank.org (Bill Moseley) Date: Wed, 24 Aug 2005 06:22:18 -0700 Subject: [sf-perl] Log stomping In-Reply-To: <4c714a9c05082314151c6aceee@mail.gmail.com> References: <4c714a9c05082314151c6aceee@mail.gmail.com> Message-ID: <20050824132218.GC17611@hank.org> On Tue, Aug 23, 2005 at 02:15:17PM -0700, David Alban wrote: > I've replicated the "real world" problem into a pair of simple perl > programs. "foo" prints a couple lines of data. "foo-flocking" does > the same thing, but only after successfully acquiring an exclusive > flock. This really sounds more like an OS question, so I'll be guessing from this point on. This makes me realize I don't understand shell redirection very well. Stdout is buffered by perl -- seems possible that Perl is closing your lock file before flushing stdout. That's basically the same thing as (the commonly done) explicitly unlocking before closing. Why not flock the log file and write directly to that? The OS should also buffer, which is why this seem odd to me. I have a web application that handles about 3-4 million requests a month and doesn't use locking at all to write to log file -- the processes just keep the log file open and do single writes. The OS seems to buffer and not collide. -- Bill Moseley moseley at hank.org From extasia at extasia.org Wed Aug 24 09:47:55 2005 From: extasia at extasia.org (David Alban) Date: Wed, 24 Aug 2005 09:47:55 -0700 Subject: [sf-perl] Log stomping In-Reply-To: <1124861990.13849.14.camel@localhost.localdomain> References: <4c714a9c05082314151c6aceee@mail.gmail.com> <1124861990.13849.14.camel@localhost.localdomain> Message-ID: <4c714a9c050824094741ace67@mail.gmail.com> On 8/23/05, Garth Webb wrote: > I ran your first 'foo' script with the first crontab and I got all 16 (2 > x 8) lines, without any stomping. I thought maybe if I set auto > flushing ($| = 1) I'd get some intermixed lines between the process, but > still the same basic output. Interesting. My log stomping is occuring on a solaris 8 machine, on which /bin/sh (which is not a symlink) is the default shell for cron. On a hunch, I ran: 35 9 * * * bash -c "$HOME/foo one >> $HOME/log 2>&1" 35 9 * * * bash -c "$HOME/foo two >> $HOME/log 2>&1" 35 9 * * * bash -c "$HOME/foo three >> $HOME/log 2>&1" 35 9 * * * bash -c "$HOME/foo four >> $HOME/log 2>&1" 35 9 * * * bash -c "$HOME/foo five >> $HOME/log 2>&1" 35 9 * * * bash -c "$HOME/foo six >> $HOME/log 2>&1" 35 9 * * * bash -c "$HOME/foo seven >> $HOME/log 2>&1" 35 9 * * * bash -c "$HOME/foo eight >> $HOME/log 2>&1" No log stomping! All expected lines appended unmolested to log file! Huh. Lemme try "ksh -c ..." No log stomping! All expected lines appended unmolested to log file! O.K., now let me try sh again, but with a command string, as I've tried above with bash and ksh. Hmmm. Log stomping again. So it looks like solaris 8's /bin/sh is the environment in which the stomping is occuring. Easy enough to avoid... Thanks! -- Live in a world of your own, but always welcome visitors. From extasia at extasia.org Wed Aug 24 10:06:26 2005 From: extasia at extasia.org (David Alban) Date: Wed, 24 Aug 2005 10:06:26 -0700 Subject: [sf-perl] Log stomping In-Reply-To: <20050824132218.GC17611@hank.org> References: <4c714a9c05082314151c6aceee@mail.gmail.com> <20050824132218.GC17611@hank.org> Message-ID: <4c714a9c0508241006480fca73@mail.gmail.com> On 8/24/05, Bill Moseley wrote: > This really sounds more like an OS question, so I'll be guessing from > this point on. This makes me realize I don't understand shell redirection > very well. And it didn't occur to me that stomping would occur in solaris 8 sh, but not in solaris 8 ksh, or gnu bash. :-) > Stdout is buffered by perl -- seems possible that Perl is closing your > lock file before flushing stdout. That's basically the same thing as > (the commonly done) explicitly unlocking before closing. If you do: $ my-perl-prog > somefile You'll obviously get the stdout of my-perl-prog in somefile. What if you mistype: $ my-pearl-prog > somefile You'll get some kind of file or command not found error, but notice that regardless of whether the shell was able to execute your command, it will either create and empty somefile (if it didn't exist) or truncate to zero length any existing somefile. I believe the shell does this even before attempting to find and run the given command. My theory in my original post is still my theory, at least for solaris 8 Bourne shell: that as soon as multiple cron jobs start at the same instant, and appending to the same log file, they will immediately try to determine the position of EOF for the log file, whether or not they have anything yet to append. And when one of the jobs does append, the other jobs have not updated their position in the file, so they may clobber what was written by a previous job. Perhaps ksh and bash are smarter than solaris 8 sh in this regard. I don't know how, but they seem to do The Right Thing. > Why not flock the log file and write directly to that? That's fine for stuff logged by my program, but I also want stderr to be appended to the log file. David P.S. Hope folks didn't mind a slightly less perl-ish, slightly more shell-ish thread... -- Live in a world of your own, but always welcome visitors. From qw at sf.pm.org Sun Aug 28 21:34:24 2005 From: qw at sf.pm.org (Quinn Weaver) Date: Sun, 28 Aug 2005 21:34:24 -0700 Subject: [sf-perl] Next meeting September 27: Single Sign-On with Tony Stubblebine Message-ID: <20050829043424.GC43180@cfcl.com> Hey, y'all, Our next meeting is the fourth Tuesday of September, i.e. Setepmber 27. Save the date! Tony Stubblebine of O'Reilly will be visiting us again, this time ot speak about web single-sign on in Perl. Tony's spoken here before, and he's always articulate, personable, and fun to talk with. We will have pizza for this event. Please bring $10 to $15 (depending on your appetite) to cover your share. If you plan to attend, RSVP ASAP to dfetter at perpetual.com because 1. Security will need your name in order to let you in. 2. I need to know how much pizza to order. 3. It's nice to be considerate and help with capacity planning. Time: 8:00pm Place: Perpetual Entertainment 149 New Montgomery Street 5th Floor San Francisco This info also available at http://sf.pm.org/weblog Now I'm off to Burning Man! Finally! Cheers, -- qw (Quinn Weaver); #President, San Francisco Perl Mongers =for information, visit http://sf.pm.org/weblog =cut From doom at kzsu.stanford.edu Mon Aug 29 10:12:26 2005 From: doom at kzsu.stanford.edu (Joseph Brenner) Date: Mon, 29 Aug 2005 10:12:26 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <20050829043424.GC43180@cfcl.com> References: <20050829043424.GC43180@cfcl.com> Message-ID: <200508291712.j7THCRr72957@mail0.rawbw.com> Matisse Enzer, continues to propound and expand on the thesis he was advocating over chinese food at a recent perl meeting: "Perl Needs Better Tools": http://www.perl.com/pub/a/2005/08/25/tools.html Quick summary: perl IDEs are lagging behind Java, and this is a bad thing. EPIC/Eclipse is doing okay, maybe it could be improved? Or maybe there's another solution. (Note: he could probably be nudged into doing a presentation on this subject... we were actually discussing doing a joint presentation sometime, comparing Epic and Emacs, but I've been lagging on doing the Emacs side...) Quinn Weaver wrote: > Hey, y'all, > > Our next meeting is the fourth Tuesday of September, i.e. Setepmber > 27. Save the date! > > Tony Stubblebine of O'Reilly will be visiting us again, this time ot > speak about web single-sign on in Perl. Tony's spoken here before, and > he's always articulate, personable, and fun to talk with. > > We will have pizza for this event. Please bring $10 to $15 (depending > on your appetite) to cover your share. > > If you plan to attend, RSVP ASAP to dfetter at perpetual.com because > > 1. Security will need your name in order to let you in. > 2. I need to know how much pizza to order. > 3. It's nice to be considerate and help with capacity planning. > > Time: 8:00pm > > Place: Perpetual Entertainment > 149 New Montgomery Street > 5th Floor > San Francisco > > This info also available at http://sf.pm.org/weblog > > Now I'm off to Burning Man! Finally! > > Cheers, > > -- > qw (Quinn Weaver); #President, San Francisco Perl Mongers > =for information, visit http://sf.pm.org/weblog =cut > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm From josh at agliodbs.com Mon Aug 29 10:41:20 2005 From: josh at agliodbs.com (Josh Berkus) Date: Mon, 29 Aug 2005 10:41:20 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <200508291712.j7THCRr72957@mail0.rawbw.com> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> Message-ID: <200508291041.20700.josh@agliodbs.com> Joseph, > Quick summary: perl IDEs are lagging behind Java, and this is a bad > thing. EPIC/Eclipse is doing okay, maybe it could be improved? > Or maybe there's another solution. Eh? What's wrong with ActiveState? Not that I've used a Java IDE, but I can't say that there's a lot of features I'm not getting in Komodo. -- --Josh Josh Berkus Aglio Database Solutions San Francisco From josh at agliodbs.com Mon Aug 29 10:41:20 2005 From: josh at agliodbs.com (Josh Berkus) Date: Mon, 29 Aug 2005 10:41:20 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <200508291712.j7THCRr72957@mail0.rawbw.com> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> Message-ID: <200508291041.20700.josh@agliodbs.com> Joseph, > Quick summary: perl IDEs are lagging behind Java, and this is a bad > thing. EPIC/Eclipse is doing okay, maybe it could be improved? > Or maybe there's another solution. Eh? What's wrong with ActiveState? Not that I've used a Java IDE, but I can't say that there's a lot of features I'm not getting in Komodo. -- --Josh Josh Berkus Aglio Database Solutions San Francisco From david at fetter.org Mon Aug 29 11:10:25 2005 From: david at fetter.org (David Fetter) Date: Mon, 29 Aug 2005 11:10:25 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <200508291712.j7THCRr72957@mail0.rawbw.com> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> Message-ID: <20050829181025.GB13074@fetter.org> On Mon, Aug 29, 2005 at 10:12:26AM -0700, Joseph Brenner wrote: > Matisse Enzer, continues to propound and expand on the thesis he > was advocating over chinese food at a recent perl meeting: > "Perl Needs Better Tools": > http://www.perl.com/pub/a/2005/08/25/tools.html > Quick summary: perl IDEs are lagging behind Java, and this is a bad > thing. EPIC/Eclipse is doing okay, maybe it could be improved? Or > maybe there's another solution. Even though I am quite happy with the tools I have, I'd love to see better tools...but a few things jump quickly to mind. 1. For Perl, the sky is not falling, and it's not smart to say that it is, even if saying so gets quick, loud press. Although Java is not as awful as it used to be, that does not make it the be-all and end-all of languages. It seems to me that Java was designed to be used by large, mindless flocks of coders who operate under close supervision. It far from obvious to me that this is a good approach even for Java, so it is even farther from obvious to me that pushing Perl in this direction is a good idea. 2. It has become fairly obvious to me that XP is a fad that people will remember with a "fondness" usually reserved for leisure suits and boogie shoes. Much of this "refactoring" business is predicated on the idea that XP is here to stay, so it's important to be able to factor that out of any assessments, if you'll pardon the pun. 3. Lots of changed or written lines of code do not equal productivity. Quite often, the opposite holds. As Kernighan once remarked, "on a really productive day, I managed to cut 1000 lines of code." GUIs don't help with this. Moving at a frenetic pace doesn't help with this--in fact, quite the opposite. What does help is good team communication and good prior design. Cheers, D -- David Fetter david at fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote! From chris at noncombatant.org Mon Aug 29 13:10:35 2005 From: chris at noncombatant.org (Chris Palmer) Date: Mon, 29 Aug 2005 13:10:35 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <200508291712.j7THCRr72957@mail0.rawbw.com> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> Message-ID: <20050829201035.GB2319@nodewarrior.org> Rule #1: Real Engineers Don't Blame Their Tools. Every programming language that survives the culling period is good for the purpose it was designed, at least. If it's good for anything else, that's just a bonus. Perl was designed to help sys admins chew up log files and pretty-print them, and to do other sys adminly tasks for which the shell is too tedious or slow. Perl is superlative for this task. Similarly, Java is ideal for keeping armies of semi-competent programmers employed and for forcing hardware upgrades; C is a wonderful high-level assembly language for writing operating systems; Python would indeed have made a better shell; and so on. It's to their designers' credit that these languages are so well suited to their tasks, but of course the price of that perfection is that the languages are not too great for other tasks. For those cases where a language is used for a task other than its primary intended task, see Rule #1. Adherence to Rule #1 explains why Perl is often used for largish projects outside its original domain, why we still see applications with GUIs written in C, and so on. A spiffy IDE to replace my four xterms might help some people or might not. See Rule #1. It's such a minor and religious issue that I tend to ignore and abhor it (respectively). Adopting the trappings of Java (such as Eclipse, n-tier behemoth designs, et c.) will not help Perl improve its marketshare. That might not even be a worthwhile goal -- I don't want to use Perl for large GUI apps any more than I want to use Java for boot scripts. Perl is what it is, and it is awesome. It is not the best language for all tasks, and if you try to force it to be, you are a silly person and I shall taunt you a second time. Rule #2: Every language must have an interactive interpreter, or it sucks (but see Rule #1). If you're going to make a new tool to improve Perl development, do that. From it at morelater.com Mon Aug 29 14:11:58 2005 From: it at morelater.com (Chris Allert) Date: Mon, 29 Aug 2005 17:11:58 -0400 (EDT) Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <20050829201035.GB2319@nodewarrior.org> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> Message-ID: > Rule #1: Real Engineers Don't Blame Their Tools. > Similarly, Java is ideal for keeping armies of semi-competent > programmers employed and for forcing hardware upgrades; which brings us to Rule #2: Real engineers blame other people's tools From andy at petdance.com Mon Aug 29 14:40:18 2005 From: andy at petdance.com (Andy Lester) Date: Mon, 29 Aug 2005 16:40:18 -0500 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <20050829201035.GB2319@nodewarrior.org> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> Message-ID: <20050829214018.GA12653@petdance.com> On Mon, Aug 29, 2005 at 01:10:35PM -0700, Chris Palmer (chris at noncombatant.org) wrote: > Rule #1: Real Engineers Don't Blame Their Tools. Nobody's blaming anything on lack of tools. They're just saying that it would make Perl development easier. -- Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance From chris at noncombatant.org Mon Aug 29 15:00:21 2005 From: chris at noncombatant.org (Chris Palmer) Date: Mon, 29 Aug 2005 15:00:21 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> Message-ID: <20050829220021.GD2319@nodewarrior.org> Chris Allert writes: > which brings us to Rule #2: Real engineers blame other people's tools No, that's Rule #3. From doom at kzsu.stanford.edu Mon Aug 29 15:18:37 2005 From: doom at kzsu.stanford.edu (Joseph Brenner) Date: Mon, 29 Aug 2005 15:18:37 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <20050829201035.GB2319@nodewarrior.org> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> Message-ID: <200508292218.j7TMIcr05458@mail0.rawbw.com> Chris Palmer wrote: > Rule #1: Real Engineers Don't Blame Their Tools. > Perl is what it is, and it is awesome. It is not the best language for > all tasks, and if you try to force it to be, you are a silly person and > I shall taunt you a second time. Perl is not the best language for everything, but it might get there someday. Perl's domain has already expanded much further than anyone would've expected. Things like this happens because perl programmers get interested in making it happen. Even for someone who's conversant with multiple languages there's a cost associated with context switching between them: it's a good thing if you can reduce these. Myself, I tend to get driven up the wall by people taking the line "use the right tool for the job", but that's perhaps a rant for another day. > A spiffy IDE to replace my four xterms might help some people or might > not. See Rule #1. It's such a minor and religious issue that I tend to > ignore and abhor it (respectively). My contention would be that automating simple tasks is generally a good thing, and that on occasion you get a "synergetic reaction", if you'll forgive the expression; where simple little things add up to one much greater thing (consider ftp vs. http). > Rule #2: Every language must have an interactive interpreter, or it > sucks (but see Rule #1). If you're going to make a new tool to improve > Perl development, do that. You mean like the perl debugger? Or what? From andy at petdance.com Mon Aug 29 15:26:00 2005 From: andy at petdance.com (Andy Lester) Date: Mon, 29 Aug 2005 17:26:00 -0500 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <200508292218.j7TMIcr05458@mail0.rawbw.com> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> <200508292218.j7TMIcr05458@mail0.rawbw.com> Message-ID: <20050829222600.GD13073@petdance.com> On Mon, Aug 29, 2005 at 03:18:37PM -0700, Joseph Brenner (doom at kzsu.stanford.edu) wrote: > > Rule #2: Every language must have an interactive interpreter, or it > > sucks (but see Rule #1). If you're going to make a new tool to improve > > Perl development, do that. > > You mean like the perl debugger? And there's a really good book on the Perl debugger that just came out from Apress. http://www.apress.com/book/bookDisplay.html?bID=399 Just sayin'. xoxo, Andy -- Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance From josh at agliodbs.com Mon Aug 29 15:34:05 2005 From: josh at agliodbs.com (Josh Berkus) Date: Mon, 29 Aug 2005 15:34:05 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <20050829222600.GD13073@petdance.com> References: <20050829043424.GC43180@cfcl.com> <200508292218.j7TMIcr05458@mail0.rawbw.com> <20050829222600.GD13073@petdance.com> Message-ID: <200508291534.05208.josh@agliodbs.com> Folks, From my perspective, the main purpose of a GUI IDE is as a learning aid for new programmers through command completion, error highlighting and similar. It can also help with debugging, via "step through" and similar. Komodo does both of these quite well. What more, exactly, do we need? -- --Josh Josh Berkus Aglio Database Solutions San Francisco From it at morelater.com Mon Aug 29 16:00:28 2005 From: it at morelater.com (Chris Allert) Date: Mon, 29 Aug 2005 19:00:28 -0400 (EDT) Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <20050829220021.GD2319@nodewarrior.org> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> <20050829220021.GD2319@nodewarrior.org> Message-ID: which reminds me of rule #4: real engineers don't finish reading specs On Mon, 29 Aug 2005, Chris Palmer wrote: > Chris Allert writes: > > > which brings us to Rule #2: Real engineers blame other people's tools > > No, that's Rule #3. > > _______________________________________________ > SanFrancisco-pm mailing list > SanFrancisco-pm at pm.org > http://mail.pm.org/mailman/listinfo/sanfrancisco-pm > > From Paul.Makepeace at realprogrammers.com Mon Aug 29 16:23:10 2005 From: Paul.Makepeace at realprogrammers.com (Paul Makepeace) Date: Tue, 30 Aug 2005 00:23:10 +0100 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> <20050829220021.GD2319@nodewarrior.org> Message-ID: <20050829232310.GL13933@mythix.realprogrammers.com> I'm just thankful people who write software aren't engineers! P, glad that's cleared up; as you were... Je 2005-08-30 00:00:28 +0100, Chris Allert skribis: > which reminds me of rule #4: real engineers don't finish reading specs > > On Mon, 29 Aug 2005, Chris Palmer wrote: > > > Chris Allert writes: > > > > > which brings us to Rule #2: Real engineers blame other people's tools > > > > No, that's Rule #3. -- Paul Makepeace .............................. http://paulm.com/inchoate/ "If you harbour ill will, then fluffy clouds would come back into fashion." -- http://paulm.com/toys/surrealism/ From david at fetter.org Mon Aug 29 16:38:33 2005 From: david at fetter.org (David Fetter) Date: Mon, 29 Aug 2005 16:38:33 -0700 Subject: [sf-perl] "Perl Needs Better Tools" by Matisse Enzer In-Reply-To: <20050829201035.GB2319@nodewarrior.org> References: <20050829043424.GC43180@cfcl.com> <200508291712.j7THCRr72957@mail0.rawbw.com> <20050829201035.GB2319@nodewarrior.org> Message-ID: <20050829233833.GG13074@fetter.org> On Mon, Aug 29, 2005 at 01:10:35PM -0700, Chris Palmer wrote: > Rule #1: Real Engineers Don't Blame Their Tools. The first rule of Engineers' Club is, you do not talk about Engineers' Club. The second rule of Engineers' Club is, you do not talk about Engineers' Club. Cheers, D -- David Fetter david at fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote!