From wcjones at fccj.edu Tue Oct 1 13:25:34 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] [ADMIN Note] Jax.PM New Posting Address ! Message-ID: <2D1E718F-D56B-11D6-9314-0003930FDFC6@fccj.edu> There is a new posting address for "all" the question you have about Perl: jacksonville-pm@mail.pm.org Now, let's not all try to post at once! Cheers! -Sx- ___________________________________________ "Well, in general, the thing I don't like about other computer languages is that they're not Perl." -Larry Wall From jproctor at marlboro.edu Tue Oct 1 20:03:00 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] Everybody post at once! Message-ID: (Just because Bill told us not to, of course.) j From wcjones at fccj.edu Tue Oct 1 20:28:52 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] Everybody post at once! In-Reply-To: Message-ID: <4F0F69FD-D5A6-11D6-BFB4-0003930FDFC6@fccj.edu> The others "didn't" listened to me - why are you special ??? :P BTW - Anyone out there a Postfix expert ??? -Sx- :] On Tuesday, October 1, 2002, at 09:03 PM, J Proctor wrote: > [a jax.PM member posting] > > (Just because Bill told us not to, of course.) From jproctor at marlboro.edu Wed Oct 2 08:15:59 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] Everybody post at once! In-Reply-To: <4F0F69FD-D5A6-11D6-BFB4-0003930FDFC6@fccj.edu> Message-ID: > BTW - Anyone out there a Postfix expert ??? Postfix as in push operands onto a stack then apply operators by popping things from it and pushing results? qw( 8 5 + ) yields 13? What do you need an expert for? Aren't we good enough? :) j From wcjones at fccj.edu Wed Oct 2 09:09:24 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] Everybody post at once! In-Reply-To: Message-ID: >> BTW - Anyone out there a Postfix expert ??? > > Postfix as in push operands onto a stack then apply operators by popping > things from it and pushing results? qw( 8 5 + ) yields 13? > > What do you need an expert for? Aren't we good enough? :) As my daughter has started repeating, incessantly, "No, not yet..." -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From sneex at bellsouth.net Wed Oct 2 22:14:43 2002 From: sneex at bellsouth.net (iudicium ferat) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] wposion ? Message-ID: <433B15DB-D67E-11D6-B11E-0003930FDFC6@bellsouth.net> Hi All :) What do you guys think about this: #!/usr/bin/perl -w # wpoison.pl - Version 1.8p # # For usage instructions see http://www.monkeys.com/wpoison/ # # Original idea by Ronald F. Guilmette # Code implemented by Ronald F. Guilmette # # Copyright (c) 2000,2001 Ronald F. Guilmette; All rights reserved. # # Redistribution and use in source form ONLY, with or without modification, # is permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by Ronald F. Guilmette. # 3. Neither the name of Ronald F. Guilmette nor the names of other con- # tributors to this software may be used to endorse or promote products # derived from this software without specific prior written permission. # 4. Either a copy of, or a link to the official Wpoison logo graphic (which # may be found at http://www.monkeys.com/wpoison/logo.gif) must be # included in, and clearly and legibly visible on the home page of any # web site which uses, employs, includes, or makes reference to this # software or any derivative or modified version thereof. Also, the # official Wpoison logo itself must be include in an HTML hyperlink # so that any usser clicking on any part of the logo image will be # directed/linked to the Wpoison home page at: # # http://www.monkeys.com/wpoison/ # # In order to satisfy this requirement, you may simply include the # following HTML code somewhere (anywhere) on your web site home page: # # # # # # Disclaimer # ---------- # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. use strict; use FileHandle; use POSIX; use vars qw($pname $tmp_words_file $num_cached_randwords @randwords @tl_domains_1 @tl_domains_2); $pname="wpoison"; $tmp_words_file = "/tmp/wpoison.words"; $num_cached_randwords = 4096; my $creation_time; my $age_in_seconds; my $email_addr; my $num_addresses; my $num_links; my $script_name = getenv ("SCRIPT_NAME") || $0; @tl_domains_1 = ( "com", "com", "com", "com", "net", "net", "net", "org", "org", "edu", "edu", "gov", "mil", "int"); @tl_domains_2 = ( "uk", "su", "af", "al", "dz", "as", "ad", "ao", "ai", "aq", "ag", "ar", "am", "aw", "au", "at", "az", "bs", "bh", "bd", "bb", "by", "be", "bz", "bj", "bm", "bt", "bo", "ba", "bw", "bv", "br", "io", "bn", "bg", "bf", "bi", "kh", "cm", "ca", "cv", "ky", "cf", "td", "cl", "cn", "cx", "cc", "co", "km", "cg", "ck", "cr", "ci", "hr", "cu", "cy", "cz", "dk", "dj", "dm", "do", "tp", "ec", "eg", "sv", "gq", "er", "ee", "et", "fk", "fo", "fj", "fi", "fr", "fx", "gf", "pf", "tf", "ga", "gm", "ge", "de", "gh", "gi", "gr", "gl", "gd", "gp", "gu", "gt", "gn", "gw", "gy", "ht", "hm", "hn", "hk", "hu", "is", "in", "id", "ir", "iq", "ie", "il", "it", "jm", "jp", "jo", "kz", "ke", "ki", "kp", "kr", "kw", "kg", "la", "lv", "lb", "ls", "lr", "ly", "li", "lt", "lu", "mo", "mk", "mg", "mw", "my", "mv", "ml", "mt", "mh", "mq", "mr", "mu", "yt", "mx", "fm", "md", "mc", "mn", "ms", "ma", "mz", "mm", "na", "nr", "np", "nl", "an", "nc", "nz", "ni", "ne", "ng", "nu", "nf", "mp", "no", "om", "pk", "pw", "pa", "pg", "py", "pe", "ph", "pn", "pl", "pt", "pr", "qa", "re", "ro", "ru", "rw", "kn", "lc", "vc", "ws", "sm", "st", "sa", "sn", "sc", "sl", "sg", "sk", "si", "sb", "so", "za", "gs", "es", "lk", "sh", "pm", "sd", "sr", "sj", "sz", "se", "ch", "sy", "tw", "tj", "tz", "th", "tg", "tk", "to", "tt", "tn", "tr", "tm", "tc", "tv", "ug", "ua", "ae", "gb", "us", "um", "uy", "uz", "vu", "va", "ve", "vn", "vg", "vi", "wf", "eh", "ye", "yu", "zr", "zm", "zw"); sub death { my ($message) = @_; print STDOUT ("Content-Type: text/html\n", "\n", "\n", "WPOISON - Unexpected Error\n", "\n"); print "$pname: $message\n"; print ("\n\n"); exit 0; } sub gen_new_random_words_list { my $dictfile; my $total_words; my @words; my %already_taken; if (-f $tmp_words_file) { if (not unlink ($tmp_words_file)) { death ("Error unlinking file \`$tmp_words_file\': $!"); } } if ( -f "/usr/dict/words") { $dictfile = "/usr/dict/words"; } elsif (-f "/usr/share/dict/words") { $dictfile = "/usr/share/dict/words" } elsif (-f "words") { $dictfile = "words"; } else { death ("Cannot find dictionary file!"); } death ("Error opening dictionary file \`$dictfile\': $!") unless (open (DICTFILE, "<$dictfile")); $total_words = 0; while () { chop; push @words, $_; $total_words++; } close DICTFILE; death ("Error opening tmp words file \`$tmp_words_file\': $!") unless (open (RWORDS, ">$tmp_words_file")); # We will now pick $num_cached_randwords words at random srand; for (1..$num_cached_randwords) { try_again: my $rand_index = int (rand $total_words); goto try_again if (defined $already_taken{$rand_index}); $already_taken{$rand_index} = 1; print RWORDS "$words[$rand_index]\n"; } close RWORDS; } sub read_random_words { death ("Error opening tmp words file \`$tmp_words_file\': $!") unless (open (RWORDS, "<$tmp_words_file")); chop(@randwords = ); close RWORDS; } sub random_word { my $word_index; $word_index = int (rand $num_cached_randwords); return $randwords[$word_index]; } sub gen_random_words { my ($min_words, $max_words) = @_; my $num_words; my $word_index; my $i; $num_words = $min_words + (rand ($max_words - $min_words)); for $i (1..$num_words) { $word_index = int (rand $num_cached_randwords); print $randwords[$word_index]; print " " if ($i < $num_words); } } sub gen_random_color { my $red_code = int (rand 256); my $green_code = int (rand 256); my $blue_code = int (rand 256); printf "#%02x%02x%02x", $red_code, $green_code, $blue_code; } sub random_letter { return chr (unpack ("%c", 'a') + int (rand 26)); } sub random_domain { my $rindex; if (int (rand 4) == 0) { $rindex = int (rand ($#tl_domains_2 + 1)); return $tl_domains_2[$rindex]; } else { $rindex = int (rand ($#tl_domains_1 + 1)); return $tl_domains_1[$rindex]; } } autoflush STDOUT 1; if (not -r $tmp_words_file) { gen_new_random_words_list (); } else { $creation_time = (stat $tmp_words_file)[9]; $age_in_seconds = time - $creation_time; gen_new_random_words_list () if ($age_in_seconds > (30 * 60)); } read_random_words (); print STDOUT ("Content-Type: text/html\n", "\n", "\n", "\n", ""); gen_random_words (2, 6); print STDOUT ("\n", "\n", "\n", "\n", "\n"); gen_random_words (10, 30); print ("

\n"); $num_addresses = 2 + int (rand 16); for (1..$num_addresses) { $email_addr = random_word (); $email_addr .= "@"; if (int (rand 4) == 0) { $email_addr .= random_word () . "."; } $email_addr .= random_word () . random_letter () . "." . random_domain (); print "$email_addr
\n"; } print ("

\n"); gen_random_words (2, 20); print ("

\n"); $num_links = 1 + int (rand 16); for (1..$num_links) { print ""); gen_random_words (1, 9); print ("
\n"); } print ("

\n"); gen_random_words (2, 20); # Sleep for four seconds when finishing each page to avoid server overload. sleep (4); print ("\n\n\n"); exit 0; __END__ -Sx- _________________________________________________________ "Well, in general, the thing I don't like about other computer languages is that they're not Perl." -Larry Wall From greg at turnstep.com Sat Oct 5 21:05:26 2002 From: greg at turnstep.com (Greg Sabino Mullane) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] wpoison ? Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > Hi All :) > > What do you guys think about this: > > #!/usr/bin/perl -w > > # wpoison.pl - Version 1.8p Pretty cool program. I actually wrote a similar one a long time ago, which doesn't use a dictionary file but just strings together random characters. Ron is a very active, very anti-spam advocate: he can be abrasive but is a good person and has done a lot of good, including running some filtering lists (e.g. formmail and open proxy) and writing things like this. If you are asking about the perl itself, well, it works, although it is obvious Ron is from a C background. Some quick things I might improve upon: * Stick to either vars or my at the top where the variables are declared, but not both. * Use 'qw' in those large array assignments. * Replace chop with chomp * Replace goto with redo * Lose the srand call Very minor things: after all, it works, nd that's all that really matters most times. If you are asking about the whole concept, I think it has some validity, but overall I would say that the current spam environment almost demands an escalation into auto-blocking and tarpitting, perhaps in addition to wpoison... Greg Sabino Mullane greg@turnstep.com PGP Key: 0x14964AC8 200210052203 -----BEGIN PGP SIGNATURE----- Comment: http://www.turnstep.com/pgp.html iD8DBQE9n5pGvJuQZxSWSsgRAusBAKDlx2vzPbJxYdk34y0r/Jbo8SsmKwCfe7ca wsL3tS5OgwJOuB9ErK1RyBk= =2x9X -----END PGP SIGNATURE----- From nate at campin.net Tue Oct 8 15:07:08 2002 From: nate at campin.net (Nate Campi) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] child proc output Message-ID: <20021008200708.GG1981@campin.net> I have a script that reads log lines from STDIN and keeps stats in memory. At a user-defined interval I fork a child to read a one line text file with some numbers in it (exclusive lock) add the current numbers to it and write out the updated totals. Sometimes my file gets messed up despite the lock, and I want to see what's going on. I have a bunch of print statements but I don't see them. The fork executes a subroutine and exits, it's not a fork and exec. How do I see the output from the kid when I run the parent script manually? -- "Golf is a good walk spoiled." - Samuel Clemens From sneex at bellsouth.net Tue Oct 8 22:59:00 2002 From: sneex at bellsouth.net (iudicium ferat) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ??? Message-ID: <71100BF8-DB3B-11D6-82F9-0003930FDFC6@bellsouth.net> Did my "new" list already break ? or ... Am I just missing stuff? -Sx- _________________________________________________________ "Well, in general, the thing I don't like about other computer languages is that they're not Perl." -Larry Wall From sneex at bellsouth.net Wed Oct 9 04:56:19 2002 From: sneex at bellsouth.net (iudicium ferat) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] child proc output In-Reply-To: <20021008200708.GG1981@campin.net> Message-ID: <5BF914C0-DB6D-11D6-AAD3-0003930FDFC6@bellsouth.net> scriptname > captured.data & tail -f captured.data ???/Sx ? On Tuesday, October 8, 2002, at 04:07 PM, Nate Campi wrote: > exec. How do I see the output from the kid when I run the parent script > manually? From jproctor at marlboro.edu Wed Oct 9 08:52:29 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ??? In-Reply-To: <71100BF8-DB3B-11D6-82F9-0003930FDFC6@bellsouth.net> Message-ID: > Did my "new" list already break ? > > or ... Am I just missing stuff? No, not yet. I'd say the list traffic is about as high as always. Maybe even higher, since Nate posted a message and I'm about to try to answer before Greg does. :) What do you think is broken/missing? j From jproctor at marlboro.edu Wed Oct 9 09:11:38 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] child proc output In-Reply-To: <20021008200708.GG1981@campin.net> Message-ID: > Sometimes my file gets messed up despite the lock, and I want to see > what's going on. I have a bunch of print statements but I don't see > them. The fork executes a subroutine and exits, it's not a fork and > exec. How do I see the output from the kid when I run the parent script > manually? I tried a simple test of printing from within a forked subroutine: while (<>) { print "got some stdin "; if (not (time % 5)) { if (!fork) { zap(); exit; } } print "and chewed on it.\n" } sub zap { print "ZAP! \n"; } and I ran it from the command line. Type some stuff on stdin and it'll tell you it got it, unless the current time is divisible by 5, when it'll print ZAP! in the middle. It works beatifully on my system, anyway. Options: Try printing to STDERR from the forked sub. Try $|=1 (and don't forget to check that you're debug-printing newlines). Try ditching the fork and inlining the counter file update at the same interval. In the bigger picture, it's difficult to imagine what could corrupt the counter file under those circumstances, unless (a) the time interval is so short it's stepping on itself, or (b) you've got multiple things trying to use the data, and your system doesn't do file locking in any sane way. That would be most of them, by the way. If you have multiple processes that need to get at them, you might be better off stuffing the numbers in a database somewhere. j From wcjones at fccj.edu Tue Oct 8 14:38:21 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] [Non-Perl] Re: Newsletter from O'Reilly UG Program, October 7 In-Reply-To: <200210072355.g97NtQ512080@smtp.oreilly.com> Message-ID: [admin posting][Non-Perl] O'Reilly User Group Program Newsletter October 7, 2002 Spread The Word To Your Members... Highlights This Week: ---------------------------------------------------------------- Book News ---------------------------------------------------------------- -Learning C# -Creating Applications with Mozilla -Learning Cocoa with Objective-C -Web Privacy with P3P ---------------------------------------------------------------- Conference News ---------------------------------------------------------------- -O'Reilly's Mac OS X Conference Coverage -Mac User Group members at the Mac OS X Conference ---------------------------------------------------------------- News ---------------------------------------------------------------- -Go Wild with the New and Improved Safari Bookshelf -A Missing Manual Saves my Day -Real Hacking Rules! -Securing Linux -Working with Files in PHP -Creating ASP.NET Web Services, Part 1 -Introduction to OOP in VB.NET -Help! IE6 Is Blocking My Cookies -Top Five Open Source Packages for System Administrators -O'Reilly Wins Best Java Book Award -Top Ten New Things You Can Do with NIO -The Near Future of Digital Rights Management -Why Unix Matters to Mac OS X -The Do's and Don'ts of Shareware, Part 1 ---------------------------------------------------------------- Announcements From Your Peers ---------------------------------------------------------------- -Maryland Apple Corps next meeting ================================================ Book News ================================================ Review books are available--please email me for a copy. If you need your books by a certain date, please allow at least four weeks for shipping. Send or email me copies of your newsletters and book reviews. Don't forget, your members get 20% off any O'Reilly book they purchase directly from O'Reilly. Just use code DSUG when ordering. Press releases are available on our press page: http://press.oreilly.com/ ***Learning C# Order Number: 3765 With "Learning C#," best-selling author Jesse Liberty will help you build a solid foundation in .NET and show how to apply your skills by using dozens of tested examples. You will learn how to develop various kinds of applications--including those that work with databases--and web services. Whether you have a little object-oriented programming experience or you are new to programming altogether, "Learning C# "will set you firmly on your way. http://www.oreilly.com/catalog/learncsharp/ Chapter 2, "Getting Started with C#," is available online: http://www.oreilly.com/catalog/learncsharp/chapter/ch02.html ***Creating Applications with Mozilla Order Number: 0529 Mozilla is not just a browser. Mozilla is also a framework that allows developers to create cross-platform applications. "Creating Applications with Mozilla" provides step-by-step information about how you can create your own programs using Mozilla's framework.http://www.oreilly.com/catalog/mozilla/ Chapter 2, "Getting Started," is available online: http://www.oreilly.com/catalog/mozilla/chapter/index.html ***Learning Cocoa with Objective-C Order Number: 3013 Based on the Jaguar release of Mac OS X 10.2, this new edition of "Learning Cocoa" covers the latest updates to the Cocoa frameworks, including examples that use the Address Book and Universal Access APIs. Also included with this edition is a handy quick reference card, charting Cocoa's Foundation and AppKit frameworks, along with an Appendix that includes a listing of resources essential to any Cocoa developer--beginning or advanced. This is the "must-have" book for people who want to develop applications for Mac OS X, and is the only book approved and reviewed by Apple engineers. http://www.oreilly.com/catalog/learncocoa2/ Chapter 3, "Object-Oriented Programming with Objective-C," is available online: http://www.oreilly.com/catalog/learncocoa2/chapter/index.html ***Web Privacy with P3P Order Number: 3714 "Web Privacy with P3P" explains the P3P protocol and shows web site developers how to configure their sites for P3P compliance. Full of examples and case studies, the book delivers practical advice and insider tips. Software developers, privacy consultants, corporate decision-makers, lawyers, public policy-makers, and any individual interested in online privacy issues will find this book a necessary reference. http://www.oreilly.com/catalog/webprivp3p/ Chapter 1, "Introduction to P3P," is available online: http://www.oreilly.com/catalog/webprivp3p/chapter/index.html The author's website: http://p3pbook.com/ ================================================ Conference News ================================================ ***Mac OS X Conference Coverage O'Reilly's Mac OS X Conference has just wrapped up. Don't miss our coverage, including photos, reports, and weblogs from the conference floor. http://www.macdevcenter.com/mac/osx2002/ ***Mac User Group members together at the conference: http://www.mugcenter.com/ Thanks to Lorene Romero (North Coast Mac Users Group) and Chuck Joiner (Hershey Apple Core) for putting this event together and promoting it. ================================================ News From O'Reilly & Beyond ================================================ --------------------- General News --------------------- ***Go Wild with the New and Improved Safari Bookshelf The premier electronic reference library for programmers and IT professionals just got better, with simplified navigation, a more powerful search, and flexible book swapping options. http://www.oreilly.com/news/new_safari_0902.html Get your first 14 days on Safari free! https://secure.safaribooksonline.com/promo.asp?code=ORA14&portal=oreilly ***A Missing Manual Saves my Day O'Reilly author and editor Jonathan Gennick writes about the book that saved him from disaster--David Pogue's "Windows XP Home Edition: The Missing Manual." http://www.oreillynet.com/pub/wlg/2032 Has an O'Reilly book saved your day? Please let me know at marsee@oreilly.com ***Real Hacking Rules! On the tenth anniversary of Def Con, the annual Las Vegas meeting of computer hackers, security professionals, and others, Richard Thieme reflects on how the con--and hacking--had changed since he spoke at Def Con 4 seven years earlier. http://www.oreillynet.com/pub/a/network/2002/10/04/hackers.html --------------------- Open Source --------------------- ***Securing Linux Michael Bauer explains why it's both possible and worthwhile to secure Linux for use as an Internet server platform. http://www.onlamp.com/pub/a/onlamp/2002/10/03/securinglinux.html Michael is the author of "Building Secure Servers with Linux," available later this month. Order Number: 2173 http://www.oreilly.com/catalog/bssrvrlnx/ ***Working with Files in PHP John Coggeshall covers the fundamentals of reading and writing text files in PHP. http://www.onlamp.com/pub/a/php/2002/10/03/php_foundations.html This article is part of the "PHP Foundations" series--A programmer's guide to learning PHP for people with no PHP experience. http://www.oreillynet.com/pub/ct/29 --------------------- .NET --------------------- ***Creating ASP.NET Web Services, Part 1 Learn how to write a HelloWorld Web services application with ASP.NET in part one of a series of book excerpts from "Programming .NET Web Services." http://www.oreillynet.com/pub/a/dotnet/excerpt/progdotnetws_2/index1.html Programming .NET Web Services Order Number: 2505 http://www.oreilly.com/catalog/prognetws/ ***Introduction to OOP in VB.NET This article addresses why Microsoft made the switch to object-oriented programming, and why it is so hard to learn, even for experienced programmers. http://www.oreillynet.com/pub/a/dotnet/2002/09/22/vb-oop.html For more on how OOP helps you maximize the power of .NET, don't miss the upcoming "Object-Oriented Programming with Visual Basic .NET." Order Number: 1460 http://www.oreilly.com/catalog/objectvbnet/ --------------------- Web Development --------------------- ***Help! IE6 Is Blocking My Cookies Lorrie Cranor offers an introduction to P3P and an overview of what you need to do to prevent IE6 from blocking your cookies. Lorrie is the author of "Web Privacy with P3P." http://www.oreillynet.com/pub/a/javascript/2002/10/04/p3p.html --------------------- System Administration --------------------- ***Top Five Open Source Packages for System Administrators AEleen Frisch offers the first installment in a five-part series on the most useful open source administrative tools. We begin the countdown with number five, Amanda, a network-based enterprise backup utility. http://www.oreillynet.com/pub/a/network/2002/09/24/essentialsysadmin.html AEleen is the author of "Essential System Administration, 3rd Edition." Order Number: 3439 http://www.oreilly.com/catalog/esa3/ --------------------- Java --------------------- ***O'Reilly Wins Best Java Book Award "The Java Developer's Journal" has announced its Readers' Choice award for Best Java Book in 2002: Richard Monson-Haefel and David Chappell's "Java Message Service." http://www.sys-con.com/java/readerschoice2002/winners.cfm Java Message Service Order Number: 0685 http://www.oreilly.com/catalog/javmesser/ ***Top Ten New Things You Can Do with NIO In this article, Ron Hitchens lists a slew of powerful new capabilities NIO brings to the Java platform. http://www.onjava.com/pub/a/onjava/2002/10/02/javanio.html Ron is the author of O'Reilly's recently released "Java NIO." Order Number: 2882 http://www.oreilly.com/catalog/javanio/ --------------------- Mac --------------------- ***The Near Future of Digital Rights Management Daniel Steinberg looks at the ramifications of Hollywood's desire to turn the PC into a trusted digital appliance, in this report from the DRM panel at the Mac OS X Conference http://www.macdevcenter.com/pub/a/mac/2002/10/03/drm.html ***Why Unix Matters to Mac OS X In their keynotes Tim O'Reilly and Jordan Hubbard talk about the significance of UNIX to Mac OS X. http://www.macdevcenter.com/pub/a/mac/2002/10/03/keynotes.html ***The Do's and Don'ts of Shareware, Part 1 http://www.macdevcenter.com/pub/a/mac/2002/09/30/dev_osx.html This article is part of the "Developing for Mac OS X Series" http://macdevcenter.com/pub/ct/59 ================================================ Announcements From Your Peers ================================================ ***Maryland Apple Corps, Inc.--Greater Baltimore Metro Area Tuesday, October 8, 2002, 6:30 pm 320 York Rd., Towson, MD 21204 A presenter from the Mid-Atlantic Mac User Groups will be discussing Jaguar and its new feature. For More info contact Mical Wilmoth Carton, Club Ambassador at MdAPPLE@aol.com Until next time, Marsee From nate at campin.net Wed Oct 9 09:18:23 2002 From: nate at campin.net (Nate Campi) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] child proc output In-Reply-To: References: <20021008200708.GG1981@campin.net> Message-ID: <20021009141823.GJ1981@campin.net> On Wed, Oct 09, 2002 at 10:11:38AM -0400, J Proctor wrote: > > In the bigger picture, it's difficult to imagine what could corrupt the > counter file under those circumstances, unless (a) the time interval is so > short it's stepping on itself, or (b) you've got multiple things trying to > use the data, and your system doesn't do file locking in any sane way. > That would be most of them, by the way. If you have multiple processes > that need to get at them, you might be better off stuffing the numbers in > a database somewhere. I didn't seek/rewind the file after reading it, causing file corruption from just the one process with the lock. I'll worry about the weird lack of debugging output in the child later, it's not pressing. Thanks guys. OBTW, this is solaris 8 sparc it's running on. Does file locking behave properly on this platform? -- Redmond WA -- Microsoft announced today that the official release date for the new operating system "Windows 2000" will be delayed until the second quarter of 1901. -- seen in Brian Hatch's sig From sneex at bellsouth.net Wed Oct 9 12:40:58 2002 From: sneex at bellsouth.net (iudicium ferat) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ??? In-Reply-To: Message-ID: > I sent 2 notes to the list almost 4 hours ago. And ... It appears to be REALLY slow ... As I haven't seen anything :( -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From wcjones at fccj.edu Wed Oct 9 12:44:14 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] The JaxPM List site Message-ID: You can manage your account here: http://www.pm.org/mailman/listinfo/jacksonville-pm Just tell the system to mail you your password. Cheers! -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From jproctor at marlboro.edu Wed Oct 9 12:50:05 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ??? In-Reply-To: Message-ID: > And ... It appears to be REALLY slow ... > > As I haven't seen anything :( Oh well. I tried to offer a rational explanation, anyway. You're the list admin; go bug whoever runs mail.pm.org. Or, even better, ask politely if they're already working on it. :) j From wcjones at fccj.edu Thu Oct 10 07:22:02 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] child proc output In-Reply-To: Message-ID: On Wednesday, October 9, 2002, at 10:11 AM, J Proctor wrote: > In the bigger picture, it's difficult to imagine what could corrupt the > counter file under those circumstances, unless (a) the time > interval is so > short it's stepping on itself, or (b) you've got multiple things > trying to > use the data, and your system doesn't do file locking in any sane way. > That would be most of them, by the way. If you have multiple processes > that need to get at them, you might be better off stuffing the > numbers in > a database somewhere. On Solaris file locking is flakey - you would need to create your own mutex/semaphore to test whether another process is writing to the file. Like CGI processes will likely all try to write to the same file at inopportune times... -Sx- _________________________________________________________ "Well, in general, the thing I don't like about other computer languages is that they're not Perl." -Larry Wall From jproctor at marlboro.edu Fri Oct 11 18:21:54 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] code style/data structure questions Message-ID: As I mentioned couple weeks ago, I'm working on a module for abstracting the relationship between database tables and HTML pages. It's time to ask for a little fresh insight on some code style/data structure issues I'm having. Even if none of you actually helps me, it'll probably be good for me to have written this stuff down. :) Instead of a massive email, I've moved my notes and questions to http://persons.marlboro.edu/~jproctor/dw.html If you're not familiar with database programming and OO Perl, you're welcome to try reading this, but I won't promise that it'll make any sense at all. Anyway, comments/suggestions are appreciated, encouraged, and hereby solicited. Thanks. j From solution at gina.net Sat Oct 12 20:49:46 2002 From: solution at gina.net (Aaron Johnson) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] code style/data structure questions In-Reply-To: References: Message-ID: <1034473786.2991.8.camel@development.gina.net> You can take a look at some of my code that does something similar at: http://www.gina.net/solution/Table.txt That code part of a larger code library, but it might give you some insight as to what to do or not to do. Aaron Johnson On Fri, 2002-10-11 at 19:21, J Proctor wrote: > [a jax.PM member posting] > > As I mentioned couple weeks ago, I'm working on a module for abstracting > the relationship between database tables and HTML pages. It's time to ask > for a little fresh insight on some code style/data structure issues I'm > having. > > Even if none of you actually helps me, it'll probably be good for me to > have written this stuff down. :) > > Instead of a massive email, I've moved my notes and questions to > > http://persons.marlboro.edu/~jproctor/dw.html > > If you're not familiar with database programming and OO Perl, you're > welcome to try reading this, but I won't promise that it'll make any > sense at all. > > Anyway, comments/suggestions are appreciated, encouraged, and hereby > solicited. Thanks. > > > j > > _______________________________________________ > Jacksonville-pm mailing list > Jacksonville-pm@mail.pm.org > http://mail.pm.org/mailman/listinfo/jacksonville-pm > From greg at turnstep.com Sat Oct 12 21:34:57 2002 From: greg at turnstep.com (Greg Sabino Mullane) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] code style/data structure questions Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 First of all, I would really like to see examples of how it would be used, no matter how simple or contrived they may be. That always helps me immeasurably to absorb new things. >... I've read it over twice now, and I kind of have a grasp on it, but I won't attempt to answer any of the questions until I understand it better. A 50,000 foot overview and the aforementioned examples would be great. One question: why did you spell "wherever" as you did in Q 5? :) Greg Sabino Mullane greg@turnstep.com PGP Key: 0x14964AC8 200210122233 -----BEGIN PGP SIGNATURE----- Comment: http://www.turnstep.com/pgp.html iD8DBQE9qNuFvJuQZxSWSsgRAhyrAJ9VRdvcHI+lH29uuIR7Crj8n8Fi8QCdEasD qGkJ6Yj6M04QEDzQvUp/jkc= =4Eyj -----END PGP SIGNATURE----- From sneex at bellsouth.net Mon Oct 14 11:25:03 2002 From: sneex at bellsouth.net (iudicium ferat) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data Message-ID: I am somewhat beating my head against a brick wall here - so I think "Hey! This sounds like a Fun With Perl project :)" Here is the challenge - You are presented with a MySQL Schema dump that is less than 9 million rows; you should read the data row by row, finding each CREATE TABLE statement, and displaying the next ~50 lines INCLUDING this line - do this recursively until end of file is reached. My brute force efforts, while slow, are generally working - I am wondering - could this become MORE FUN ? My brute force method - #!/usr/local/bin/perl -w use strict; use diagnostics; $|++; my $ctr; my $flag; open (RFILE, "Schema.Cooked") or die "\n\nCan't open Schema.Cooked for writing: $!\n\n"; while () { $ctr++; # Count lines read... s/\n/ /; # newline to space... s/^\s+//; # compress leading whitespace... s/\s+$//; # compress trailing whitespace... next unless length; # anything to process? # CREATE TABLE if (/^CREATE\sTABLE\s\(/) { print NFILE "\n\n$_\n"; $flag++; next; } # End of segment if (/^\#\sDumpings\datas\for\stable\s\'/) { --$flag; next; } # Get data, while $flag if ($flag) { print NFILE " $_\n "; next; } # Everything else is skipped # during natural looping... } # end while loop close (RFILE) or die "\n\nCan't close Schema.Raw: $!\n\n"; close (NFILE) or die "\n\nCan't close Schema.Cooked: $!\n\n"; print "\nProcessed $ctr lines...\n\n"; __END__ Example of the snapshot - # Table structure for table 'addressbook' # CREATE TABLE addressbook ( . . Get everything here ... . PRIMARY KEY (pk1,sos_id_pk2), KEY addrbk_users_fk_i (users_pk1,users_sos_id_pk2) ); # # Dumping data for table 'addressbook' The line above denotes end of this segment; skip all data until next segment area... Any helpful mumblings would be appreciated :) Thx! -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From greg at turnstep.com Mon Oct 14 12:44:20 2002 From: greg at turnstep.com (greg@turnstep.com) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data Message-ID: <200210141759.g9EHn2021637@mail.pm.org> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 #!/usr/bin/perl -- -*-fundamental-*- Quick notes: This line: > if (/^CREATE\sTABLE\s\(/) { I do not think it does what you think it does! Add in a regex for the table name itself: if (/^CREATE\sTABLE[^(]+\(/) { > $|++ This probably does not do what you want, since it only affects STDOUT. See the rewrite below for the (ok, a) way to do this. > $ctr++; # Count lines read.. Not needed, as perl keeps track itself with the handy $. variable. Just grab it *before* you close the file handle. > s/\n/ /; # newline to space... Unnecessary, as is already splitting on newlines, unless you had something else in mind? > s/^\s+//; # compress leading whitespace... Not necessary: just add that to the regex text. Useless overhead to make perl change something and then discard it. > s/\s+$//; # compress trailing whitespace... > next unless length; # anything to process? This might be good for "empty" lines, but probably better to just let the if statements below discard them. Or, do something like this: next unless /\S/; The if (..) next; construct is perfectly valid (and I sometimes use it myself) but the code may be more readable if you change those to if..elsif..else Upon further thought, the "print NFILE" section is repeated code, so we can compress it with some judicious if elsif mangling. If those extra newlines before a "CREATE TABLE" statement are important, however, you can fall back to the double print method. > if (/^\#\sDumpings\datas\for\stable\s\'/) { Seems like overkill, since we know exactly what the line will be. This also applies to the CREATE TABLE line above as well. No sense in stressing the regex engine. Matter of fact, we can probably use the far more efficient index() since we know the exact placement. If we can avoid calling the regex engine at all, even better. > $flag++; Don't increment and decrement for a boolean counter, but specifically set it to "1" and "0" - this will save you a lot of pain someday when you accidentally increment it twice, and the decremented value is still true! :) $flag=1; $flag=0; ## My rewrite. It may not do what you want, as I am not exactly sure of the ## program requirements (e.g. newlines) #!/usr/bin/perl ## Removing strict wins a small speed increase at startup, but not ## noticeable for a 9 million line file, so leave it in use strict; ## Best to name the files for easy changes later. ## May even want to allow them as arguments to the program. my $infile = "Schema.Raw"; my $outfile = "Schema.Cooked"; open (RAWFILE, $infile) or die "\nCould not open $infile: $!\n"; open (COOKEDFILE, ">$outfile") or die "\nCould not open $outfile: $!\n"; ## This is probably not needed, but here is how it is done: select((select(COOKEDFILE),$|=1)[0]); ## Matter of fact, it may be faster without it, since the more often ## we dump to the new file, the slower it will be (in theory) my $flag=0; while () { ## A "skip empty lines" test is tempting here, but then we are using a regex ## Strings to start and stop the copying if (index($_,'CREATE TABLE') ==0) { $flag=1; } elsif (index($_,'# Dumping data') ==0) { $flag=0; } ## I really like the "do if $var" syntax, but this could also be a normal if print COOKEDFILE $_ if $flag; } # end while loop print "\nProcessed $. lines...\n\n"; close (COOKEDFILE) or die "\nCould not close $outfile: $!\n"; close (RAWFILE) or die "\nCould not close $infile: $!\n"; Greg Sabino Mullane greg@turnstep.com PGP Key: 0x14964AC8 200210141335 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) Comment: http://www.turnstep.com/pgp.html iD8DBQE9qwEUvJuQZxSWSsgRAuDZAKC7Fx1ev94qkEneuLRNvj9Rs1AirACfeKef +ltAcY0HciqzNzM1D7BuPxE= =T6uR -----END PGP SIGNATURE----- From wcjones at fccj.edu Mon Oct 14 13:28:20 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <200210141759.g9EHn2021637@mail.pm.org> Message-ID: You are, of course, right on many counts :) > select((select(COOKEDFILE),$|=1)[0]); > > ## Matter of fact, it may be faster without it, since the more often > ## we dump to the new file, the slower it will be (in theory) > > Greg Sabino Mullane greg@turnstep.com > PGP Key: 0x14964AC8 200210141335 I vote Greg should give a Perl tutorial, donate it even, to the Tutorial::* namespace I am creating for CPAN :) In fact I vote Greg to be the Jax.PM Leader - Yeah Greg! -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From solution at gina.net Mon Oct 14 13:45:29 2002 From: solution at gina.net (Aaron Johnson) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: References: Message-ID: <1034621128.4818.75.camel@development.gina.net> I am very curious as to the reason you would want to do this. You don't seem to be excluding any specific information in the rewrite, if you just want the create statements you can do a mysqldump -d I suppose if you just have the dump and are doing to be creating them then this might be a useful process. Aaron Johnson On Mon, 2002-10-14 at 12:25, iudicium ferat wrote: > [a jax.PM member posting] > I am somewhat beating my head against a brick wall here - so I think "Hey! > This sounds like a Fun With Perl project :)" > > Here is the challenge - > > You are presented with a MySQL Schema dump that is less than 9 million rows; > you should read the data row by row, finding each CREATE TABLE statement, > and displaying the next ~50 lines INCLUDING this line - do this recursively > until end of file is reached. > > My brute force efforts, while slow, are generally working - I am wondering - > could this become MORE FUN ? > > My brute force method - > > #!/usr/local/bin/perl -w > > use strict; > use diagnostics; > > $|++; > > my $ctr; > my $flag; > > open (RFILE, " die "\n\nCan't open Schema.Raw for reading: $!\n\n"; > open (NFILE, ">Schema.Cooked") or > die "\n\nCan't open Schema.Cooked for writing: $!\n\n"; > > while () { > > $ctr++; # Count lines read... > s/\n/ /; # newline to space... > s/^\s+//; # compress leading whitespace... > s/\s+$//; # compress trailing whitespace... > next unless length; # anything to process? > > # CREATE TABLE > if (/^CREATE\sTABLE\s\(/) { > print NFILE "\n\n$_\n"; > $flag++; > next; > } > > # End of segment > if (/^\#\sDumpings\datas\for\stable\s\'/) { > --$flag; > next; > } > > # Get data, while $flag > if ($flag) { > print NFILE " $_\n "; > next; > } > > # Everything else is skipped > # during natural looping... > > } # end while loop > > close (RFILE) or die "\n\nCan't close Schema.Raw: $!\n\n"; > close (NFILE) or die "\n\nCan't close Schema.Cooked: $!\n\n"; > print "\nProcessed $ctr lines...\n\n"; > > __END__ > > Example of the snapshot - > > # Table structure for table 'addressbook' > # > CREATE TABLE addressbook ( > . > . Get everything here ... > . > PRIMARY KEY (pk1,sos_id_pk2), > KEY addrbk_users_fk_i (users_pk1,users_sos_id_pk2) > ); > > # > # Dumping data for table 'addressbook' > > The line above denotes end of this segment; > skip all data until next segment area... > > > Any helpful mumblings would be appreciated :) > > Thx! > -Bill- :] > _Sx____________________ > ('> iudicium ferat > //\ Have Computer - > v_/_ Will Hack... > > > _______________________________________________ > Jacksonville-pm mailing list > Jacksonville-pm@mail.pm.org > http://mail.pm.org/mailman/listinfo/jacksonville-pm > From nate at campin.net Mon Oct 14 12:34:50 2002 From: nate at campin.net (Nate Campi) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: References: Message-ID: <20021014173450.GB26104@campin.net> On Mon, Oct 14, 2002 at 12:25:03PM -0400, iudicium ferat wrote: > [a jax.PM member posting] > > You are presented with a MySQL Schema dump that is less than 9 million rows; > you should read the data row by row, finding each CREATE TABLE statement, > and displaying the next ~50 lines INCLUDING this line - do this recursively > until end of file is reached. > > My brute force efforts, while slow, are generally working - I am wondering - > could this become MORE FUN ? Hmm, my grep example doesn't stop at the "Dumping data for table 'addressbook'" as you want it to. Not a drop-in replacement then, sorry for the lame post. -- "WARNING: Keyboard Not Attached. Press F10 to Continue." -Anon. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://mail.pm.org/pipermail/jacksonville-pm/attachments/20021014/3574a779/attachment.bin From wcjones at fccj.edu Mon Oct 14 13:57:55 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <1034621128.4818.75.camel@development.gina.net> Message-ID: On 10/14/02 2:45 PM, "Aaron Johnson" wrote: > I am very curious as to the reason you would want to do this. You don't > seem to be excluding any specific information in the rewrite, if you > just want the create statements you can do a mysqldump -d > > I suppose if you just have the dump and are doing to be creating them > then this might be a useful process. > > Aaron Johnson -Sx- wrote: >> open (RFILE, "; from sneex@bellsouth.net on Mon, Oct 14, 2002 at 12:25:03PM -0400 References: Message-ID: <20021014184420.A7095@hermione.osp.nl> On Mon, Oct 14, 2002 at 12:25:03PM -0400, iudicium ferat wrote: > I am somewhat beating my head against a brick wall here - so I think "Hey! > This sounds like a Fun With Perl project :)" > > Here is the challenge - > > You are presented with a MySQL Schema dump that is less than 9 million rows; > you should read the data row by row, finding each CREATE TABLE statement, > and displaying the next ~50 lines INCLUDING this line - do this recursively > until end of file is reached. grep -A 50 'CREATE TABLE' file.sql Abigail From nate at campin.net Mon Oct 14 12:28:43 2002 From: nate at campin.net (Nate Campi) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: References: Message-ID: <20021014172843.GA26104@campin.net> On Mon, Oct 14, 2002 at 12:25:03PM -0400, iudicium ferat wrote: > [a jax.PM member posting] > I am somewhat beating my head against a brick wall here - so I think "Hey! > This sounds like a Fun With Perl project :)" > > Here is the challenge - > > You are presented with a MySQL Schema dump that is less than 9 million rows; > you should read the data row by row, finding each CREATE TABLE statement, > and displaying the next ~50 lines INCLUDING this line - do this recursively > until end of file is reached. I hate to say this, but the sysadmin in me hates reinventing the wheel. If we're going to use brainpower, use it to cure cancer or fight SPAM - something that makes life better for all ;) GNU grep to the rescue: $ grep -A5 Tanenbaum linux_is_obsolete.txt From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: LINUX is obsolete Date: 29 Jan 92 12:12:50 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Andy Tanenbaum (ast@cs.vu.nl) P.S. Just as a random aside, Amoeba has a UNIX emulator (running in user space), but it is far from complete. If there are any people who would like to work on that, please let me know. To run Amoeba you need a few 386s, -- From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: LINUX is obsolete Date: 29 Jan 92 18:03:01 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Andy Tanenbaum (ast@cs.vu.nl)  0, unseen,, *** EOOH *** From: gt0178a@prism.gatech.EDU (Jim Burns) Newsgroups: comp.os.minix -- in article <12605@star.cs.vu.nl>, ast@cs.vu.nl (Andy Tanenbaum) says: > The drivers have to read and write the device registers in I/O space, and > this cannot be done in user mode on the 286 and 386. If it were possible > to do I/O in a protected way in user space, all the I/O tasks could have > been user programs, like FS and MM. -- In article <12605@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >In article <1992Jan29.141212.29636@epas.toronto.edu> meggin@epas.utoronto.ca (David Megginson) writes: >> >>Why does the >>Intel architecture _not_ allow drivers to be independent programs? > -- >Andy Tanenbaum (ast@cs.vu.nl) joe. -- joe@jshark.rn.com uunet!nstar!jshark!joe -- In article <12605@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >In article <1992Jan29.141212.29636@epas.toronto.edu> meggin@epas.utoronto.ca (David Megginson) writes: >> >>Why does the >>Intel architecture _not_ allow drivers to be independent programs? > -- >Andy Tanenbaum (ast@cs.vu.nl) Every 386 TSS has an iopermission bitmap. If the CPL is of a lower priveledge level than IOPL, the io permissions bitmap is consulted, allowing protection on a port by port basis. -- In article <12605@star.cs.vu.nl>, ast@cs.vu.nl (Andy Tanenbaum) wrote: > In article <1992Jan29.141212.29636@epas.toronto.edu> meggin@epas.utoronto.ca (David Megginson) writes: >> >>Why does the >>Intel architecture _not_ allow drivers to be independent programs? > -- Andy Tanenbaum (ast@cs.vu.nl) writes: > The drivers have to read and write the device registers in I/O space, and > this cannot be done in user mode on the 286 and 386. If it were possible > to do I/O in a protected way in user space, all the I/O tasks could have > been user programs, like FS and MM. -- In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > >I was in the U.S. for a couple of weeks, so I haven't commented much on >LINUX (not that I would have said much had I been around), but for what >it is worth, I have a couple of comments now. > -- From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: LINUX is obsolete Date: 30 Jan 92 13:44:34 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Prof. Andrew S. Tanenbaum (ast@cs.vu.nl)  0, unseen,, *** EOOH *** From: feustel@netcom.COM (David Feustel) Newsgroups: comp.os.minix -- ast@cs.vu.nl (Andy Tanenbaum) writes: >I still maintain the point that designing a monolithic kernel in 1991 is >a fundamental error. Be thankful you are not my student. You would not >get a high grade for such a design :-) -- >ast@cs.vu.nl (Andy Tanenbaum) writes: > > >>I still maintain the point that designing a monolithic kernel in 1991 is >>a fundamental error. Be thankful you are not my student. You would not >>get a high grade for such a design :-) -- >>ast@cs.vu.nl (Andy Tanenbaum) writes: >> >> >>>I still maintain the point that designing a monolithic kernel in 1991 is >>>a fundamental error. Be thankful you are not my student. You would not >>>get a high grade for such a design :-) -- In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >In article <1992Jan29.231426.20469@klaava.Helsinki.FI> torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) writes: >Of course 5 years from now that will be different, but 5 years from now >everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5. Well, I for one would _love_ to see this happen. -- In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >The limitations of MINIX relate at least partly to my being a professor: >An explicit design goal was to make it run on cheap hardware so students >could afford it. All right: a real technical point, and one that made some of my comments -- In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >In article <1992Jan29.231426.20469@klaava.Helsinki.FI> torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) writes: >>You use this [being a professor] as an excuse for the limitations of minix? >The limitations of MINIX relate at least partly to my being a professor: >An explicit design goal was to make it run on cheap hardware so students >could afford it. In particular, for years it ran on a regular 4.77 MHZ PC -- >Prof. Andrew S. Tanenbaum (ast@cs.vu.nl) Kevin Brown  -- Dr. Tanenbaum claims that the microkernel architecture is the way to go. He has a great deal more experience with operating systems than I have. It's an understatement that it's likely that there's some substance to his statement. :-) Many of the things I said in my previous posting were more a result of my -- STFS). Now, Dr. Tanenbaum may feel that a multi-threaded file system (hereafter, MTFS) is merely a performance hack. Perhaps he's right. Perhaps the architecture of a MTFS is sufficiently similar to that of a STFS that his assessment is correct. My vision of a MTFS may differ significantly from his, and this would explain why he and I seem to have a difference of opinion on this matter. Regardless of whether or not a -- is why Dr. Tanenbaum's statements about Linux touched a raw nerve with me: Linux comes with source *and* it's free. And it's available right now. Someone, either here on this newsgroup or over on alt.os.linux, made a very valid observation: the cost of a 16 MHz 386SX system is about $140 more than a comparably equipped (in terms of RAM size, display technology, -- Dr. Tanenbaum didn't make Minix free. His goals were different. Minix is a teaching aid above all else (unless Dr. Tanenbaum has changed his views about Minix :-). That means that he must be concerned with the most efficient way to get Minix to the student population. At the time Minix was released, Prentice-Hall was a good solution, and has been for some time. However, I must wonder whether or not this is still the case. Dr. Tanenbaum: do you still feel that free distribution of Minix via the net is not the best way to distribute Minix? Which wins? Minix or Linux? Depends on how you measure them... -- Andy Tanenbaum writes an interesting article (also interesting was finding out that he actually reads this group) but I think he is missing an important point. He Wrote: >As most of you know, for me MINIX is a hobby, ... -- In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >My point is that writing a new operating system that is closely tied to any >particular piece of hardware, especially a weird one like the Intel line, >is basically wrong. An OS itself should be easily portable to new hardware >platforms. -- >Dr. Tanenbaum claims that the microkernel architecture is the way to go. >He has a great deal more experience with operating systems than I have. >It's an understatement that it's likely that there's some substance to >his statement. :-) I tend to prefer seeing for myself rather than accepting "expert" opinion. -- >STFS). Now, Dr. Tanenbaum may feel that a multi-threaded file system >(hereafter, MTFS) is merely a performance hack. I think this is a very valid problem. There are two ways a single threaded FS could work and both have substantial problems. If the FS blocks while waiting for I/O it would be completely unusable for "real" work. Imagine several users -- >Dr. Tanenbaum didn't make Minix free. His goals were different. Minix >is a teaching aid above all else (unless Dr. Tanenbaum has changed his >views about Minix :-). That means that he must be concerned with the >most efficient way to get Minix to the student population. At the time >Minix was released, Prentice-Hall was a good solution, and has been for >some time. However, I must wonder whether or not this is still the case. >Dr. Tanenbaum: do you still feel that free distribution of Minix via the >net is not the best way to distribute Minix? I would guess that Prentice-Hall would have some objections :) -- Disclaimer: Opinions are based on logic rather than biblical "fact". ------ -- >>Dr. Tanenbaum claims that the microkernel architecture is the way to go. >>He has a great deal more experience with operating systems than I have. >>It's an understatement that it's likely that there's some substance to >>his statement. :-) > >I tend to prefer seeing for myself rather than accepting "expert" opinion. -- >>STFS). Now, Dr. Tanenbaum may feel that a multi-threaded file system >>(hereafter, MTFS) is merely a performance hack. > >I think this is a very valid problem. There are two ways a single threaded FS >could work and both have substantial problems. If the FS blocks while waiting >for I/O it would be completely unusable for "real" work. Imagine several users -- >>Dr. Tanenbaum didn't make Minix free. His goals were different. Minix >>is a teaching aid above all else (unless Dr. Tanenbaum has changed his >>views about Minix :-). That means that he must be concerned with the >>most efficient way to get Minix to the student population. At the time >>Minix was released, Prentice-Hall was a good solution, and has been for >>some time. However, I must wonder whether or not this is still the case. >>Dr. Tanenbaum: do you still feel that free distribution of Minix via the >>net is not the best way to distribute Minix? > >I would guess that Prentice-Hall would have some objections :) No doubt. :-( -- In article <12615@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >A multithreaded file system is only a performance hack. When there is only >one job active, the normal case on a small PC, it buys you nothing I find the single-threaded file system a serious pain when using Minix. I often want to do something else while reading files from the -- From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: LINUX is obsolete Date: 5 Feb 92 14:48:48 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Andy Tanenbaum (ast@cs.vul.nl)  0, unseen,, *** EOOH *** From: linville@garfield.catt.ncsu.edu (John W. Linville) Newsgroups: comp.os.minix -- In article <12696@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >In article <6121@skye.ed.ac.uk> richard@aiai.UUCP (Richard Tobin) writes: >>If you wanted a full-featured Unix with paging, job-control, a window >>system and so on, would it be quicker to start from basic Minix and >>add the features, or to start from Linux and fix the 386-specific >>bits? -- >Andy Tanenbaum (ast@cs.vul.nl) Coherent is limited by a compiler that only supports the small memory model, making it just as difficult (perhaps more in some instances) to port 'standard' Unix programs to Coherent as it can be under Minix. Also, Coherent is not portable (or at least, to the best of my knowledge, has not been ported), so -- In article <12696@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >Another option that seems to be totally forgotten here is buy UNIX or a >clone. If you just want to USE the system, instead of hacking on its >internals, you don't need source code. Coherent is only $99, and there >are various true UNIX systems with more features for more money. For the -- ast@cs.vu.nl (Andy Tanenbaum) writes: > Another option that seems to be totally forgotten here is buy UNIX or a > clone. If you just want to USE the system, instead of hacking on its > internals, you don't need source code. Coherent is only $99, and there > are various true UNIX systems with more features for more money. For the > true hacker, not having source code is fatal, but for people who just -- In article <12696@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >If you just want to USE the system, instead of hacking on its >internals, you don't need source code. Unfortunately hacking on the internals is just what many of us want the system for... You'll be rid of most of us when BSD-detox or GNU -- In <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >But in all honesty, I would >suggest that people who want a **MODERN** "free" OS look around for a >microkernel-based, portable OS, like maybe GNU or something like that. -- In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > >I was in the U.S. for a couple of weeks, so I haven't commented much on >LINUX (not that I would have said much had I been around), but for what >it is worth, I have a couple of comments now. > -- >Andy Tanenbaum (ast@cs.vu.nl) Minix is an excellent piece of work. A good starting point for anyone who wants to learn about operating systems. But it needs rewriting to make it truly elegant and functional. As it is, there are too many kludges and hacks (e.g., the message passing). -- In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > While I could go into a long story here about the relative merits of the > two designs, suffice it to say that among the people who actually design > operating systems, the debate is essentially over. Microkernels have won. -- >From: ast@cs.vu.nl (Andy Tanenbaum) >ftp.cs.vu.nl = 192.31.231.42 in dir minix/simulator.) I think it is a >gross error to design an OS for any specific architecture, since that is >not going to be around all that long. -- In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > > MINIX was designed to be reasonably portable, and has been ported from the > Intel line to the 680x0 (Atari, Amiga, Macintosh), SPARC, and NS32016. > LINUX is tied fairly closely to the 80x86. Not the way to go. -- >Andy Tanenbaum (ast@cs.vu.nl) joe. -- joe@jshark.rn.com  -- In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > >I was in the U.S. for a couple of weeks, so I haven't commented much on >LINUX (not that I would have said much had I been around), but for what >it is worth, I have a couple of comments now. -- "As a user, I'll take speed over features anyday" - A Tanenbaum  0, unseen,, *** EOOH *** From: entropy@wintermute.WPI.EDU (Lawrence C. Foard) Newsgroups: comp.os.minix -- In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >Don`t get me wrong, I am not unhappy with LINUX. It will get all the people >who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would >suggest that people who want a **MODERN** "free" OS look around for a >microkernel-based, portable OS, like maybe GNU or something like that. -- From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: LINUX is obsolete Date: 5 Feb 92 23:33:23 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Andy Tanenbaum (ast@cs.vu.nl)  0, unseen,, *** EOOH *** From: wolff@neuron.et.tudelft.nl (Rogier Wolff) Newsgroups: comp.os.minix -- ast@cs.vu.nl (Andy Tanenbaum) writes: >In article <1992Feb5.145630.759@wpi.WPI.EDU> entropy@wintermute.WPI.EDU (Lawrence C. Foard) writes: >>Actually my main problem with OS theorists is that they have never tested >>there ideas! >I'm mortally insulted. I AM NOT A THEORIST. Ask anybody who was at our -- In article <12747@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > QNX is a microkernel > based system, and someone just told me the installed base is 200,000 systems. Oh yes, while I'm on the subject... there are over 3 million Amigas out there, which means that there are more of them than any UNIX vendor has shipped, and -- In-Reply-To: ast@cs.vu.nl (Andy Tanenbaum) Nntp-Posting-Host: sauna.cs.hut.fi Reply-To: jkp@cs.HUT.FI (Jyrki Kuoppala) Organization: Helsinki University of Technology, Finland Date: Fri, 31 Jan 1992 12:07:46 GMT In article <12595@star.cs.vu.nl>, ast@cs (Andy Tanenbaum) writes: >who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would >suggest that people who want a **MODERN** "free" OS look around for a >microkernel-based, portable OS, like maybe GNU or something like that. I hear bsd 4.4 might also become free and appear in the near future -- Andy Tanenbaum: >MINIX was designed before POSIX, and is now being (slowly) POSIXized as >everyone who follows this newsgroup knows. May I recommend the use of the verb "posixiate" (by analogy with asphyxiate) instead of "posixize"? Similarly, I prefer "ansitise" -- providing, as Andy Tanenbaum REALLY has, a public service. Even if he doesn't cater to you. There, I've had my day. Let's call an end to this controversy, shall we? If you prefer Linux, go hang out with the Linux crowd over on (I think) alt.linux. Rag on Minix all you can stand there. Hanging around in comp.os.minix reeks of low -- }providing, as Andy Tanenbaum REALLY has, a public service. Even }if he doesn't cater to you. Mr. Tanenbaum, though undoubtedly a gifted professor, and undoubtedly a gifted programmer, is not providing a "PUBLIC SERVICE". MINIX was written for his students, and AST had the fortune that MINIX caught on, and has now sold many copies. AST makes money off the deal I am sure - and if he does not, then I cannot understand why he does not free the code of copyright, so it can be distributed. -- From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Unhappy campers Date: 3 Feb 92 22:46:40 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Andy Tanenbaum (ast@cs.vu.nl)  0, unseen,, *** EOOH *** From: meulenbr@ce.philips.nl (Frans Meulenbroeks) Newsgroups: comp.os.minix -- ast@cs.vu.nl (Andy Tanenbaum) writes: >Suppose Fred van Kempen returns from the dead and wants to take over, creating Just a remark for the readers. As far as I know Fred is not physically dead. If english is not your native language (just like mine) you might -- > ast@cs.vu.nl (Andy Tanenbaum) writes: > >>Suppose Fred van Kempen returns from the dead and wants to take over, creating > > Just a remark for the readers. As far as I know Fred is not physically dead. > If english is not your native language (just like mine) you might -- In article <12667@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >As an aside, for those folks who don't read news headers, Linus is in Finland >and I am in The Netherlands. Are we reaching a situation where another >critical industry, free software, that had been totally dominated by the U.S. >is being taken over by the foreign competition? Will we soon see -- From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: Unhappy campers Date: 6 Feb 92 11:03:51 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Andy Tanenbaum (ast@cs.vu.nl)  0, unseen,, *** EOOH *** From: james@fiskville.mc.utexas.edu (James Hammett) Newsgroups: comp.os.minix -- In article <12667@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: >While most people can talk rationally about kernel design and portability, >the issue of free-ness is 100% emotional. You wouldn't believe how much >[expletive deleted] I have gotten lately about MINIX not being free. MINIX >costs $169, but the license allows making two backup copies, so the effective >price can be under $60. Furthermore, professors may make UNLIMITED copies -- From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: Unhappy campers Date: 5 Feb 92 23:23:26 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam -- Andy Tanenbaum (ast@cs.vu.nl)  0, unseen,, *** EOOH *** From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix -- In article <12746@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: > >If Linus wants to keep control of the official version, and a group of eager >beavers want to go off in a different direction, the same problem arises. This is the second time I've seen this "accusation" from ast, who feels -- Andy Tanenbaum writes: > >Where is the sizeable group of people that want to evolve gcc in a way that > >rms/FSF does not approve of? > A compiler is not something people have much emotional attachment to. If > the language to be compiled is a given (e.g., an ANSI standard), there isn't > much room for people to invent new features. An operating system has unlimited -- >>>>> On 3 Feb 92 22:46:40 GMT, ast@cs.vu.nl (Andrew "Dice" Tanenbaum) said: Andy> As an aside, for those folks who don't read news headers, Linus is Andy> in Finland and I am in The Netherlands. Are we reaching a Andy> situation where another critical industry, free software, that had Andy> been totally dominated by the U.S. is being taken over by the -- In article <12667@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes: (most stuffs omitted) > If you don't have that journal, you can FTP the paper from > ftp.cs.vu.nl (192.31.231.42) in directory amoeba/papers as comp_sys.tex.Z > (compressed TeX source) or comp_sys.ps.Z (compressed PostScript). -- >ast@cs.vu.nl (Andy Tanenbaum) writes: > >>Suppose Fred van Kempen returns from the dead and wants to take over, creating > >Just a remark for the readers. As far as I know Fred is not physically dead. >If english is not your native language (just like mine) you might -- "It is better to deserve honours and not have them than to have them and not deserve them." - Samuel Clemens -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 232 bytes Desc: not available Url : http://mail.pm.org/pipermail/jacksonville-pm/attachments/20021014/cb746edf/attachment.bin From wcjones at fccj.edu Mon Oct 14 14:25:59 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <200210141759.g9EHn2021637@mail.pm.org> Message-ID: On 10/14/02 1:44 PM, "greg@turnstep.com" wrote: >> if (/^\#\sDumpings\datas\for\stable\s\'/) { > > Seems like overkill, since we know exactly what the line will be. > This also applies to the CREATE TABLE line above as well. No sense in > stressing the regex engine. Matter of fact, we can probably use the > far more efficient index() since we know the exact placement. If we can > avoid calling the regex engine at all, even better. "Dumpings\datas\" is invalid anyways - I should have wrote: Dumping\sdata\s :/ :) > ## My rewrite. It may not do what you want, as I am not exactly sure of the > ## program requirements (e.g. newlines) > I am playing with your code as of this writing - it even looks better than mine :) ---Sx------------------------------------------------------ Three virtues of programming: laziness, impatience, hubris Three virtues of community : diligence, patience, humility -- Larry Wall, Author of perl From jproctor at marlboro.edu Mon Oct 14 15:36:38 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: Message-ID: > In fact I vote Greg to be the Jax.PM Leader - Yeah Greg! No way. You're not getting out of it *that* easy, Sneexie. I was going to ask why you don't watch for /^);/ (or index of it) instead of the "dumping data" line, but it occurred to me that there might be other lines with that, and you go through the process of setting $flag to 0 when it's already 0. Didn't realize index() was that much faster, though. Curious if you'd like to try a version each way and report back. Anchoring the regexes to the beginning of the line (i.e. /^CREATE TABLE/ should be fairly well optimized, and I *thought* (Greg, please correct me) that index() wasn't context-aware enough to say the goal is to match at the beginning of the line, if it doesn't, move on. So one regex per line versus (length $_ - length $target) flat comparisons doesn't seem like there'd be that much of an advantage. Never actually benchmarked it myself, but in this case, we know that the exact string is "CREATE TABLE ", with actual Ascii 32 spaces; I can imagine that \s *might* be a hair slower in a regex. j From wcjones at fccj.edu Mon Oct 14 16:07:00 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: Message-ID: On 10/14/02 4:36 PM, "J Proctor" wrote: > I was going to ask why you don't watch for /^);/ (or index of it) instead > of the "dumping data" line, but it occurred to me that there might be > other lines with that, and you go through the process of setting $flag to > 0 when it's already 0. Yes, I found it faster to just let it get reset to false each trip. > Didn't realize index() was that much faster, though. Curious if you'd > like to try a version each way and report back. Anchoring the regexes to The code I wrote runs about the same as the code Greg wrote; although his doesn't quite generate the data the way I want, but I am still trying to break his more so mine will be much faster :) What I want is - CREATE TABLE ... ( Row Row Row ) Then when I see Dump Data, the Flag become False so I can skip all the INSERT INTO statements... > Never actually benchmarked it myself, but in this case, we know that > the exact string is "CREATE TABLE ", with actual Ascii 32 spaces; I can > imagine that \s *might* be a hair slower in a regex. Actually, recent Perl versions the RegEx and the Index (substr, rindex, index) stuff - performance is about the same. -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From solution at gina.net Mon Oct 14 16:21:33 2002 From: solution at gina.net (Aaron Johnson) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: References: Message-ID: <1034630493.4818.207.camel@development.gina.net> Have you considered the inverse? Looking at what you don't want vs. what you want. while () { next if /^\INSERT/; next if /^\#/; print NEWFILE $_; } then on the command line just do something like: perl -pi -e 's/\n{2,}/\n/g; To clear up the multiple \n entries. Just a thought, no testing done. Aaron On Mon, 2002-10-14 at 17:07, William C (Bill) Jones wrote: > [a jax.PM member posting] > On 10/14/02 4:36 PM, "J Proctor" wrote: > > > I was going to ask why you don't watch for /^);/ (or index of it) instead > > of the "dumping data" line, but it occurred to me that there might be > > other lines with that, and you go through the process of setting $flag to > > 0 when it's already 0. > > Yes, I found it faster to just let it get reset to false each trip. > > > Didn't realize index() was that much faster, though. Curious if you'd > > like to try a version each way and report back. Anchoring the regexes to > > The code I wrote runs about the same as the code Greg wrote; although his > doesn't quite generate the data the way I want, but I am still trying to > break his more so mine will be much faster :) What I want is - > > CREATE TABLE ... ( > Row > Row > Row > ) > > Then when I see Dump Data, the Flag become False so I can skip all the > INSERT INTO statements... > > > Never actually benchmarked it myself, but in this case, we know that > > the exact string is "CREATE TABLE ", with actual Ascii 32 spaces; I can > > imagine that \s *might* be a hair slower in a regex. > > > Actually, recent Perl versions the RegEx and the Index (substr, rindex, > index) stuff - performance is about the same. > > -Bill- :] > _Sx____________________ > ('> iudicium ferat > //\ Have Computer - > v_/_ Will Hack... > > > _______________________________________________ > Jacksonville-pm mailing list > Jacksonville-pm@mail.pm.org > http://mail.pm.org/mailman/listinfo/jacksonville-pm > From wcjones at fccj.edu Mon Oct 14 16:27:05 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <1034630493.4818.207.camel@development.gina.net> Message-ID: On 10/14/02 5:21 PM, "Aaron Johnson" wrote: > Have you considered the inverse? Looking at what you don't want vs. > what you want. ... > then on the command line just do something like: > perl -pi -e 's/\n{2,}/\n/g; Your solution has the added benefit of getting things I may NOT have seen or thought of - that way they can be 'processed' if need be by another script. Good call; :) From jproctor at marlboro.edu Mon Oct 14 20:01:22 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: Message-ID: > CREATE TABLE ... ( > Row > Row > Row > ) You really want that whitespace stripped, eh? Hmm. Rearrange the conditional print and do it when you've got the flag set. No point in stripping whitespace on your "INSERT INTO" lines. if ($flag) { s/^\s+//; s/\s+$//; print OUTFILE $_, "\n"; } > Actually, recent Perl versions the RegEx and the Index (substr, rindex, > index) stuff - performance is about the same. You're gonna make me go prove this to myself, aren't you? Feh. But I was also curious if /\s/ matches ' ' slower than / / does. I guess I hope not, since that's the default in Perl 6. j From wcjones at fccj.edu Mon Oct 14 20:12:44 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:49 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: Message-ID: <35AC674B-DFDB-11D6-A7C5-0003930FDFC6@fccj.edu> Which is the default? /\s/ or / / ? I thought the \s was "more portable - therefore more beneficial"? On Monday, October 14, 2002, at 09:01 PM, J Proctor wrote: > But I was also curious if /\s/ matches ' ' slower than / / does. > I guess > I hope not, since that's the default in Perl 6. From jproctor at marlboro.edu Mon Oct 14 22:00:36 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <35AC674B-DFDB-11D6-A7C5-0003930FDFC6@fccj.edu> Message-ID: > Which is the default? > > /\s/ or / / ? Perl 6's regex engine will, when it's complete, default to the style we currently know as /x. If you want to match whitespace, you'll have to explicitly ask for it. I'm sure there's a way to ask for a literal space (as opposed to \n, \r, or \t), but it's not / / (that's the regex containing a single space). > I thought the \s was "more portable - therefore more beneficial"? It is. But you're not worried about portable; you're worried about speed to chug through ~9M lines of data, on a known platform, for limited use towards a specific purpose (getting data from Blackboard to some other app so you can fix it). Again, for those of you who may feel I'm imparting some great wisdom: I'm far too lazy to actually go test /\s/ vs / / to see which, if either, is faster; without doing so I will make no claim either way. I've merely speculated that I could imagine / / being faster, because ultimately a regex comes down to character comparisons, and one is faster than four. j From wcjones at fccj.edu Mon Oct 14 22:31:53 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: Message-ID: Matching 1 Char is faster :) More... On Monday, October 14, 2002, at 11:00 PM, J Proctor wrote: > I'm far too lazy to actually go test /\s/ vs / / to see which, if > either, > is faster; without doing so I will make no claim either way. I've > merely > speculated that I could imagine / / being faster, because ultimately a > regex comes down to character comparisons, and one is faster than four. J, you and I both know that whether /\s/ is slower or faster than / / will make no difference in the long haul. Mainly because I usually want to get RID of spaces... Now, if /^$/ were only faster - then I could die happy :) -Sx- From greg at turnstep.com Tue Oct 15 10:19:14 2002 From: greg at turnstep.com (greg@turnstep.com) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] ~9M lines of data Message-ID: <9c43a919a3bf6c591127d588bd0f12ea@biglumber.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 To quote J Proctor: >> In fact I vote Greg to be the Jax.PM Leader - Yeah Greg! > No way. You're not getting out of it *that* easy, Sneexie. Not to mention the fact that (a) I have way too many projects already. and (b) I'm not even in Jax anymore. :) > Didn't realize index() was that much faster, though. Curious if you'd > like to try a version each way and report back. Anchoring the regexes to > the beginning of the line (i.e. /^CREATE TABLE/ should be fairly well > optimized, and I *thought* (Greg, please correct me) that index() wasn't > context-aware enough to say the goal is to match at the beginning of the > line, if it doesn't, move on. So one regex per line versus (length $_ - > length $target) flat comparisons doesn't seem like there'd be that much of > an advantage. Well, index() does not have any concept of "context-aware" - it is simply a very quick byte-by-byte search, similar in spirit to the some of the C "string" functions. (see man index). The problem comes in that it will scan the entire line, looking for a match, while the regular expression can be conveniently anchored. Using a regular expression has a small bit of overhead however, and despite the fact that it may *almost* be as fast as index() and friends, it never shall be. There are plenty of specific cases in which it will be faster, of course, and 9 times out of 10, a regex is your best bet. For those times where you are doing a lot of work and speed is an issue, I maintain that index is better overall. Having said that, I'm almost willing to recant my earlier code, and go for the simple anchored regex if for no other reason than to make the code a bit more readable. I've always had a soft spot for some of the underused functions like index() in perl. Be glad I didn't find a way to throw in vec() and prototype() :) Aaron Johnson opines: > Have you considered the inverse? Looking at what you don't want vs. > what you want. I like this idea the best. When faced with a large file like this, I tend to crop things out one at a time until I know exactly what is in the file, so no surprises crop up later. I think the little code snippet Aaron posted is better than my solution. Greg Sabino Mullane greg@turnstep.com PGP Key: 0x14964AC8 200210151124 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) Comment: http://www.turnstep.com/pgp.html iD8DBQE9rDOVvJuQZxSWSsgRAu0+AKDfPVvWMHD4wbFmufeeaxbNjyMkSQCgrcXY a0PLO4KOQuXhgjEvF+wnqWk= =3l8D -----END PGP SIGNATURE----- From wcjones at fccj.edu Tue Oct 15 11:02:16 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <9c43a919a3bf6c591127d588bd0f12ea@biglumber.com> Message-ID: <79E7DB03-E057-11D6-A9CA-0003930FDFC6@fccj.edu> Do let that stop you - heck - J pesters me all the time :/ He's not here either :) On Tuesday, October 15, 2002, at 11:19 AM, greg@turnstep.com wrote: > >>> In fact I vote Greg to be the Jax.PM Leader - Yeah Greg! > >> No way. You're not getting out of it *that* easy, Sneexie. > > Not to mention the fact that (a) I have way too many projects already. > and (b) I'm not even in Jax anymore. :) > > Having said that, I'm almost willing to recant my earlier code, and go Nah - stick to your guns ! :) I liked the "less is more" approach as well :) -Sx- From jproctor at marlboro.edu Tue Oct 15 11:15:31 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <9c43a919a3bf6c591127d588bd0f12ea@biglumber.com> Message-ID: quoth Greg Sabino Mullane: > Not to mention the fact that (a) I have way too many projects already. > and (b) I'm not even in Jax anymore. :) Where are you now, just curious? You were only in Jax a year? Even my wife didn't hate it that quickly. :) j From wcjones at fccj.edu Tue Oct 15 11:02:16 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] ~9M lines of data In-Reply-To: <9c43a919a3bf6c591127d588bd0f12ea@biglumber.com> Message-ID: <79E7DB03-E057-11D6-A9CA-0003930FDFC6@fccj.edu> Do let that stop you - heck - J pesters me all the time :/ He's not here either :) On Tuesday, October 15, 2002, at 11:19 AM, greg@turnstep.com wrote: > >>> In fact I vote Greg to be the Jax.PM Leader - Yeah Greg! > >> No way. You're not getting out of it *that* easy, Sneexie. > > Not to mention the fact that (a) I have way too many projects already. > and (b) I'm not even in Jax anymore. :) > > Having said that, I'm almost willing to recant my earlier code, and go Nah - stick to your guns ! :) I liked the "less is more" approach as well :) -Sx- From greg at turnstep.com Tue Oct 15 11:41:31 2002 From: greg at turnstep.com (greg@turnstep.com) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] ~9M lines of data Message-ID: <9c43a919a3bf6c591127d588bd0f12ea@biglumber.com> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > Where are you now, just curious? You were only in Jax a year? Even my > wife didn't hate it that quickly. :) I am in Gainesville. The Jax job market just did not come through for me. Greg Sabino Mullane greg@turnstep.com PGP Key: 0x14964AC8 200210151248 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux) Comment: http://www.turnstep.com/pgp.html iD8DBQE9rEcUvJuQZxSWSsgRAvA9AKC8wXdec9GsfIJUjHGyMSRt7V3rsACgtVBM /K77zTtefNa9KbbMzLnbGxQ= =SQ9U -----END PGP SIGNATURE----- From solution at gina.net Tue Oct 15 11:57:34 2002 From: solution at gina.net (Aaron Johnson) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] Meeting Message-ID: <1034701054.2849.26.camel@development.gina.net> Is anyone planning another meeting? I haven't sat with a fellow programmer / computer addict in over a year. I am in Ocala, but wouldn't mind driving to Jax , Orlando, or Gainesville to meet. I am even willing to do a small presentation on an elected topic, that is if I know anything about said topic :) Aaron From wcjones at fccj.edu Tue Oct 15 12:10:33 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] Re: Meeting In-Reply-To: <1034701054.2849.26.camel@development.gina.net> Message-ID: <03BC84DC-E061-11D6-AEF1-0003930FDFC6@fccj.edu> On Tuesday, October 15, 2002, at 12:57 PM, Aaron Johnson wrote: > Is anyone planning another meeting? I want to but who is here (Jax area) to meet with? I seriously need to have a Blood, erm, new recruit drive soon :) > I haven't sat with a fellow programmer / computer addict in over a > year. Consider yourself lucky - I have been working on Bb for 5 days now and haven't showered or shaved yet :-D > I am in Ocala, but wouldn't mind driving to Jax , Orlando, or > Gainesville to meet. > > I am even willing to do a small presentation on an elected topic, that > is if I know anything about said topic :) Topics? A fun topic? We are planning on playing UT2003 this Friday at the MCCS Building downtown; everyone is welcome :) Oh, if it is about Perl - then, yes, We can hold a meeting in Jax, Gainesville, or Orlando - Orlando sounds nice -- maybe we can skip Perl and go on a "h.a.t." safari ? I would have suggested Gville, but the coed may feel I am a dirty ol' man :/ Looking for HAT here in Jx is just plain weird ... :) From wcjones at fccj.edu Tue Oct 15 21:14:20 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] [Non-Perl] Fwd: Newsletter from O'Reilly UG Program, October 15 Message-ID: [Admin Posting] OK, There is the Perl CD Bookshelf v3 -Sx- :] O'Reilly User Group Program Newsletter October 15, 2002 Spread The Word To Your Members... Highlights This Week: ---------------------------------------------------------------- Book News ---------------------------------------------------------------- -DNS & BIND Cookbook -Perl CD Bookshelf, Version 3.0 -Mac OS X for Unix Geeks -Programming .NET Web Services -Oracle PL/SQL Programming, 3rd Edition -JXTA in a Nutshell ---------------------------------------------------------------- Upcoming Events ---------------------------------------------------------------- -An Evening with Peter Morville in Silicon Valley ---------------------------------------------------------------- News ---------------------------------------------------------------- -Why Human Rights Requires Free Software -Powering Up Your Home-Brewed Computer -O'Reilly Beta Chapters Are Back! -An Introduction to VoIP and VOCAL -Free Frags with Cube: The Linux First-Person Shooter -A Review of Komodo -Top Five ASP.NET Web Services Tips -C# News Ticker Multithreaded Application -Introducing Mutation Events -Printing from XML: An Introduction to XSL-FO -Google Needs People -Self-Playing Media with Java Media Framework -An Introduction to iMovie ================================================ Book News ================================================ Review books are available--please email me for a copy. If you need your books by a certain date, please allow at least four weeks for shipping. Send or email me copies of your newsletters and book reviews. Don't forget, your members get 20% off any O'Reilly book they purchase directly from O'Reilly. Just use code DSUG when ordering. Press releases are available on our press page: http://press.oreilly.com/ ***DNS & BIND Cookbook Order Number: 4109 The "DNS & BIND Cookbook" presents solutions to the many problems faced by network administrators responsible for a name server. This title is an indispensable companion to "DNS & BIND, 4th Edition," the definitive guide to the critical task of name server administration. The cookbook contains dozens of code recipes showing solutions to everyday problems, ranging from simple questions, like, "How do I get BIND?" to more advanced topics like providing name service for IPv6 addresses. http://www.oreilly.com/catalog/dnsbindckbk/ Chapter 2, "Zone Data," is available online: http://www.oreilly.com/catalog/dnsbindckbk/chapter/index.html ***Perl CD Bookshelf, Version 3.0 Order Number: 3897 We've updated this best selling product with the electronic versions of 7 popular Perl books. Included are the second edition of "Perl in a Nutshell" (paperback version), the third editions of "Learning Perl" and "Programming Perl," the "Perl Cookbook," and 3 new titles: "Perl & XML," "Perl & LWP," and "Mastering Perl/Tk." Formatted in HTML, The "Perl CD Bookshelf, Version 3.0," can be accessed with any web browser and includes a master index for the entire library. http://www.oreilly.com/catalog/perlcdbs3/ ***Mac OS X for Unix Geeks Order Number: 3560 If you're one of the many Unix developers drawn to Mac OS X for its BSD core, you'll find yourself in surprisingly unfamiliar territory. Even if you're an experienced Mac user, Mac OS X is unlike earlier Macs, and it's radically different from the Unix you've used before, too. "Mac OS X for Unix Geeks" was written by two Unix geeks who found themselves in the same place you are. Their new book is your guide to figuring out the BSD Unix system and Mac-specific components that are making your life difficult and to help ease you into the Unix inside Mac OS X. http://www.oreilly.com/catalog/mosxgeeks/ Chapter 3, "Directory Services," is available online: http://www.oreilly.com/catalog/mosxgeeks/chapter/index.html ***Programming .NET Web Services Order Number: 2505 This comprehensive tutorial teaches programmers the skills they need to develop XML web services hosted on the Microsoft .NET platform. "Programming .NET Web Services" also shows you how to consume these services on both Microsoft and non-Windows clients, and how to weave them into well-designed and scalable applications. For those interested in building industrial-strength web services, this book is full of practical information and good old-fashioned advice. http://www.oreilly.com/catalog/prognetws/ Chapter 2, "Creating ASP.NET Web Services," is available online: http://www.oreilly.com/catalog/prognetws/chapter/ch02.html ***Oracle PL/SQL Programming, 3rd Edition Order Number: 3811 Nearly a quarter-million PL/SQL programmers--novices and experienced developers alike--have found the first and second editions of "Oracle PL/SQL Programming" to be indispensable references to this powerful language. Packed with examples and recommendations, this book has helped everyone, from Oracle Forms developers to database administrators, make the most of PL/SQL. http://www.oreilly.com/catalog/oraclep3/ Chapter 10, "Dates and Timestamps," is available online: http://www.oreilly.com/catalog/oraclep3/chapter/index.html ***JXTA in a Nutshell Order Number: 236X O'Reilly's pioneering reference is the first and last word on this powerful distributed computing technology. "JXTA in a Nutshell" delivers all the information you need to get started, including an overview of P2P distributed computing, an explanation of the JXTA Project's new platform, and ways that developers can become a part of the development effort. http://www.oreilly.com/catalog/jxtaian/ Chapter 2, "Getting Started with JXTA," is available online: http://www.oreilly.com/catalog/jxtaian/chapter/ch02.html ================================================ Upcoming Events ================================================ ***An Evening with Peter Morville in Silicon Valley Wednesday, October 30, 2002, 7:00 pm Peter Morville, coauthor of "Information Architecture for the World Wide Web, 2nd Ed.," will be speaking on "Information Architecture and Strategy." Presented by The Web Content, eBusiness Perspectives, and Technical Development SIGs of the Silicon Valley WebGuild and the Usability SIG of the Society for Technical Communications, Silicon Valley Chapter. For location and information, please see: http://www.webguild.org/content/ For more events, please see: http://events.oreilly.com/ ================================================ News From O'Reilly & Beyond ================================================ --------------------- General News --------------------- ***Why Human Rights Requires Free Software Human rights workers should be universally feted and supported. Instead, however, they are chronically underfunded, goaded to justify every detail of their work, and threatened with dire harm. For these reasons, human rights work requires free software. http://www.oreillynet.com/pub/a/network/2002/10/11/platform.html ***Powering Up Your Home-Brewed Computer How to construct and debug computers you've designed. http://www.oreillynet.com/pub/a/network/2002/10/14/DEH_tips.html ***O'Reilly Beta Chapters Are Back! Visit our Beta Chapters site for a preview of upcoming books. http://www.oreilly.com/beta/ ***An Introduction to VoIP and VOCAL A look at how Voice over Internet Protocol applications work and the architecture behind VOCAL, by the authors of "Practical VoIP Using VOCAL." http://www.oreillynet.com/pub/a/network/2002/10/11/voip.html Practical VoIP Using VOCAL Order Number: 0782 http://www.oreilly.com/catalog/voip/index.html --------------------- Open Source --------------------- ***Free Frags with Cube: The Linux First-Person Shooter Will the availability of attractive and feature-packed game engines attract mod communities to Linux? Howard Wen thinks so. This article introduces Cube 3-D, a simple, elegant, and free first-person shooter engine. http://linux.oreillynet.com/pub/a/linux/2002/10/10/cube3d.html ***A Review of Komodo Simon Cozens takes a look at ActiveState's latest Komodo release, Komodo 2.0. Will this version of the Perl IDE finally convince the hardened emacs and vi users to switch over? http://www.perl.com/pub/a/2002/10/09/komodo.html --------------------- .NET --------------------- ***Top Five ASP.NET Web Services Tips Alex Ferrara, coauthor of "Programming .NET Web Services," offers a brief comparison between ASP.NET web services and .NET remoting, and then delves into five useful tips for developing ASP.NET web services. http://www.ondotnet.com/pub/a/dotnet/2002/10/07/webservices.html Programming .NET Web Services Order Number: 2505 http://www.oreilly.com/catalog/prognetws/ ***C# News Ticker Multithreaded Application Writing multithreaded applications is one of the more advanced topics in computer programming. Fortunately, the .NET Framework makes it a piece of cake by hiding the complexity in the classes in the System.Threading framework. This article shows you how to create a news ticker by using the System.Threading.Thread class. Its main purpose is to demonstrate how easy multithreaded programming can be. http://www.ondotnet.com/pub/a/dotnet/2002/10/14/newsticker.htm --------------------- XML --------------------- ***Introducing Mutation Events In his latest exploration of SVG, Antoine Quint introduces DOM Mutation Events as a way to integrate custom components more fully. http://www.xml.com/pub/a/2002/10/09/mutate.html ***Printing from XML: An Introduction to XSL-FO Dave Pawson provides a simple introduction to creating printable page layouts with W3C XSL Formatting Objects. http://www.xml.com/pub/a/2002/10/09/xslfo.html Dave is the author of "XSL-FO." Order Number: 3552 http://www.oreilly.com/catalog/xslfo/ --------------------- Web Development --------------------- ***Google Needs People Peter Morville talks about the recent stir Google created when it launched Google News, a service Google claims was generated without human editors. http://www.oreillynet.com/pub/a/javascript/2002/10/11/morville.html Peter is a coauthor of "Information Architecture for the World Wide Web, 2nd Edition." Order Number: 0359 http://www.oreilly.com/catalog/infotecture2/index.html --------------------- Java --------------------- ***Self-Playing Media with Java Media Framework The Java Media Framework may not impress you as a media player client, but when you realize that you can deploy content without requiring a specific player on the user's machine, and that you can bundle the player and the media in a single download, it starts to look very interesting. http://www.onjava.com/pub/a/onjava/2002/10/09/jmf.html --------------------- Mac --------------------- ***An Introduction to iMovie OK, maybe it's not movies of your kids, that thing you deeply, desperately want to turn into little QuickTime movies and post on your web site or pass around on CDs. Maybe it's river rafting, or a groovy hippie wedding, or even those scenes from a bachelor party that warrant very limited distribution. There's probably something you want to capture and pass around in neat, two- to five-minute video packages. For me, it's the kids, and for the amateur moviemaker, there's no better application than iMovie on Mac OS X. http://www.macdevcenter.com/pub/a/mac/2002/10/11/imovie.html For more on iMovie, read " iMovie 2: The Missing Manual." Order Number: 1045 http://www.oreilly.com/catalog/imoviemm2/index.html Until next time, Marsee From wcjones at fccj.edu Wed Oct 16 17:37:06 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] [Admin] Well ? Message-ID: Who is up for a serious beer chuggin' meeting; Today I say "Fook Perl". Ready or not "Boom! Here comes the voice from the South..." -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From jproctor at marlboro.edu Wed Oct 16 21:38:44 2002 From: jproctor at marlboro.edu (J Proctor) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] [Admin] Well ? In-Reply-To: Message-ID: > Who is up for a serious beer chuggin' meeting; > > Today I say "Fook Perl". That's "Fook Parl". Eff yoor gohna fook wef da wards, dyoo et rate! And it sounds good to me. Can y'all be at the Peoples Pint in Greenfield, say, friday night around 7? Ooh. Hmm. Tourists'll be out then. And I was thinking of going to Boston tomorrow. (Mmmm. Chinatown.) WeMaLU meeting on monday; I usually don't go, but I wouldn't want to split the group. And I've gotta go to Albany tuesday evening. So, next wednesday, then? Or just go to the Pint on friday and wade through the tourists? j From wcjones at fccj.edu Wed Oct 16 23:36:03 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] [Admin] Well ? In-Reply-To: Message-ID: >> Today I say "Fook Perl". > > That's "Fook Parl". Eff yoor gohna fook wef da wards, dyoo et rate! Monsters? :) So, there! mpstat Status: CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 7 0 423 416 314 97 3 4 16 0 2479 16 7 0 77 1 7 1 119 103 100 121 4 4 14 0 1561 14 6 1 80 16 7 0 109 130 126 125 4 4 15 0 1310 13 5 1 80 17 7 1 117 103 100 134 4 4 14 0 1108 13 5 1 81 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 0 218 4351 649 549 449 1 2 2 0 14 29 8 51 12 1 31 29 519 100 100 88 0 2 2 0 7056 13 6 6 74 16 350 0 833 124 123 49 1 3 4 0 829 42 8 0 50 17 159 0 16 100 100 72 0 6 2 0 1252 8 4 0 88 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 0 13 697 622 521 64 3 8 6 0 33600 13 17 3 67 1 0 115 1934 104 100 270 4 7 2 0 13589 23 16 28 34 16 0 3 77 135 133 51 4 7 2 0 7216 14 4 1 80 17 0 83 1413 101 100 195 3 6 3 0 632 11 4 22 62 Forget about it... -Sx- :] "No ... not yet..." From wcjones at fccj.edu Thu Oct 17 08:58:44 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? Message-ID: What values would you give KEY_BUFFER=??? TABLE_CACHE=??? JOIN_BUFFER=??? RECORD_BUFFER=??? SORT_BUFFER=??? MAX_CONNECTIONS=300 TMP_TABLE_SIZE=??? Knowing you have 6GB RAM 6GB Swap and want to handle 300 connections and be very very fast (heck, I got 4 CPUs dedicated to this :/ :) ??? Need more info? Did I leave anything out? -Bill- :] From sml at zfx.com Thu Oct 17 09:39:28 2002 From: sml at zfx.com (Steve Lane) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? References: Message-ID: <3DAECBA0.2D674617@zfx.com> "William C (Bill) Jones" wrote: > > [a jax.PM member posting] > > What values would you give > > KEY_BUFFER=??? > TABLE_CACHE=??? > JOIN_BUFFER=??? > RECORD_BUFFER=??? > SORT_BUFFER=??? > MAX_CONNECTIONS=300 > TMP_TABLE_SIZE=??? > > Knowing you have 6GB RAM 6GB Swap and want to handle 300 connections and be > very very fast (heck, I got 4 CPUs dedicated to this :/ :) just from experience, you'll probably gain more performance by concentrating on your table design, and how to handle expensive queries, and table locking, than from the variables. but hell, if you have 6Gb, just pump up all those values. 300 connections is not really much, if the server is gonna be active. we handle ~200 connections with 1-1.5Gb with no problems. -- Steve Lane From wcjones at fccj.edu Thu Oct 17 09:45:18 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? In-Reply-To: <3DAECBA0.2D674617@zfx.com> Message-ID: >> What values would you give >> >> KEY_BUFFER=??? >> TABLE_CACHE=??? >> JOIN_BUFFER=??? >> RECORD_BUFFER=??? >> SORT_BUFFER=??? >> MAX_CONNECTIONS=300 >> TMP_TABLE_SIZE=??? >> >> Knowing you have 6GB RAM 6GB Swap and want to handle 300 connections and be >> very very fast (heck, I got 4 CPUs dedicated to this :/ :) > > just from experience, you'll probably gain more performance > by concentrating on your table design, and how to handle > expensive queries, and table locking, than from the variables. Unfortunately I had no design control over the system (Blackboard) - but was definitely interested in what other are doing, etc. Maybe I should say I want to handle 250 httpd and 300-500 mysql connections per second (simultaneously -- whatever that means these days.) This is what I am doing in production: KEY_BUFFER=128M TABLE_CACHE=1024 JOIN_BUFFER=30M RECORD_BUFFER=4096k SORT_BUFFER=20M MAX_CONNECTIONS=300 TMP_TABLE_SIZE=60M WAIT_TIMEOUT=31536000 And Test: KEY_BUFFER=512M TABLE_CACHE=512 JOIN_BUFFER=30M RECORD_BUFFER=4M SORT_BUFFER=20M MAX_CONNECTIONS=100 TMP_TABLE_SIZE=100M WAIT_TIMEOUT=31536000 Both are about the same speed - except the test server is a single CPU machine with 2GB RAM... Does that help? -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From solution at gina.net Thu Oct 17 10:18:40 2002 From: solution at gina.net (Aaron Johnson) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? In-Reply-To: References: Message-ID: <1034867920.25553.249.camel@development.gina.net> On Thu, 2002-10-17 at 10:45, William C (Bill) Jones wrote: > [a jax.PM member posting] > >> What values would you give > >> > >> KEY_BUFFER=??? > >> TABLE_CACHE=??? > >> JOIN_BUFFER=??? > >> RECORD_BUFFER=??? > >> SORT_BUFFER=??? > >> MAX_CONNECTIONS=300 > >> TMP_TABLE_SIZE=??? > >> > >> Knowing you have 6GB RAM 6GB Swap and want to handle 300 connections and be > >> very very fast (heck, I got 4 CPUs dedicated to this :/ :) > > > > just from experience, you'll probably gain more performance > > by concentrating on your table design, and how to handle > > expensive queries, and table locking, than from the variables. > > Unfortunately I had no design control over the system (Blackboard) - but was > definitely interested in what other are doing, etc. > > Maybe I should say I want to handle 250 httpd and 300-500 mysql connections > per second (simultaneously -- whatever that means these days.) > > This is what I am doing in production: > KEY_BUFFER=128M > TABLE_CACHE=1024 > JOIN_BUFFER=30M > RECORD_BUFFER=4096k > SORT_BUFFER=20M > MAX_CONNECTIONS=300 > TMP_TABLE_SIZE=60M > WAIT_TIMEOUT=31536000 > > > And Test: > KEY_BUFFER=512M > TABLE_CACHE=512 > JOIN_BUFFER=30M > RECORD_BUFFER=4M > SORT_BUFFER=20M > MAX_CONNECTIONS=100 > TMP_TABLE_SIZE=100M > WAIT_TIMEOUT=31536000 > > > Both are about the same speed - except the test server is a single CPU > machine with 2GB RAM... > How big are your tables? How many tables do you have? What type of queries are you doing? Are you running under mod_perl? If you are under mod_perl have you put Apache::DBI in your startup.pl? If it is a CGI model app have you looked at CGI::Speedyhttp://search.cpan.org/author/HORROCKS/CGI-SpeedyCGI-2.21/lib/CGI/SpeedyCGI.pm I have used CGI::Speedy in a couple of apps and seen an improvement in performance, but not sure if it would reuse DBI connection, most likely they would be reestablished on each call so not sure how that would help your MySQL specific question. Aaron Johnson > Does that help? > -Bill- :] > _Sx____________________ > ('> iudicium ferat > //\ Have Computer - > v_/_ Will Hack... > > > _______________________________________________ > Jacksonville-pm mailing list > Jacksonville-pm@mail.pm.org > http://mail.pm.org/mailman/listinfo/jacksonville-pm From sml at zfx.com Thu Oct 17 10:43:37 2002 From: sml at zfx.com (Steve Lane) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? References: Message-ID: <3DAEDAA9.4BC7C9A@zfx.com> "William C (Bill) Jones" wrote: > > >> What values would you give > >> > >> KEY_BUFFER=??? > >> TABLE_CACHE=??? > >> JOIN_BUFFER=??? > >> RECORD_BUFFER=??? > >> SORT_BUFFER=??? > >> MAX_CONNECTIONS=300 > >> TMP_TABLE_SIZE=??? > >> > >> Knowing you have 6GB RAM 6GB Swap and want to handle 300 connections and be > >> very very fast (heck, I got 4 CPUs dedicated to this :/ :) > > > > just from experience, you'll probably gain more performance > > by concentrating on your table design, and how to handle > > expensive queries, and table locking, than from the variables. > > Unfortunately I had no design control over the system (Blackboard) - but was > definitely interested in what other are doing, etc. > > Maybe I should say I want to handle 250 httpd and 300-500 mysql connections > per second (simultaneously -- whatever that means these days.) Blackboard sucks. anyway... someone else asked about if you're using mod_perl and Apache::DBI (to cache the database connections). both are important factors. mod_perl will (or should) speed things up a lot, but it'll also increase the size of the httpd's, sometimes dramatically, depending on what (Perl) modules are in the httpd's. and of course what part of the httpd's are shared memory (if i said that right; i'm not quite yet a memory-usage guru). example: you've got 250 httpd's, each using 30 Mb unshared memory (not atypical for a mod_perl server with a kazillion loaded Perl modules). that's 7.5 Gb memory! and we haven't even counted the mysqld's yet... but they'll typically be <5 Mb. to sum up, i don't think your mysqld-variable tuning's gonna have much effect. or at least, other things are gonna have a lot more effect. -- Steve Lane From solution at gina.net Thu Oct 17 12:09:57 2002 From: solution at gina.net (Aaron Johnson) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? In-Reply-To: <3DAEDAA9.4BC7C9A@zfx.com> References: <3DAEDAA9.4BC7C9A@zfx.com> Message-ID: <1034874596.25553.313.camel@development.gina.net> On Thu, 2002-10-17 at 11:43, Steve Lane wrote: > [a jax.PM member posting] > "William C (Bill) Jones" wrote: > > > > >> What values would you give > > >> > > >> KEY_BUFFER=??? > > >> TABLE_CACHE=??? > > >> JOIN_BUFFER=??? > > >> RECORD_BUFFER=??? > > >> SORT_BUFFER=??? > > >> MAX_CONNECTIONS=300 > > >> TMP_TABLE_SIZE=??? > > >> > > >> Knowing you have 6GB RAM 6GB Swap and want to handle 300 connections and be > > >> very very fast (heck, I got 4 CPUs dedicated to this :/ :) > > > > > > just from experience, you'll probably gain more performance > > > by concentrating on your table design, and how to handle > > > expensive queries, and table locking, than from the variables. > > > > Unfortunately I had no design control over the system (Blackboard) - but was > > definitely interested in what other are doing, etc. > > > > Maybe I should say I want to handle 250 httpd and 300-500 mysql connections > > per second (simultaneously -- whatever that means these days.) > > Blackboard sucks. anyway... > > someone else asked about if you're using mod_perl and Apache::DBI > (to cache the database connections). both are important factors. > mod_perl will (or should) speed things up a lot, but it'll also > increase the size of the httpd's, sometimes dramatically, depending > on what (Perl) modules are in the httpd's. and of course what part > of the httpd's are shared memory (if i said that right; i'm not > quite yet a memory-usage guru). > > example: you've got 250 httpd's, each using 30 Mb unshared memory > (not atypical for a mod_perl server with a kazillion loaded Perl > modules). that's 7.5 Gb memory! and we haven't even counted the > mysqld's yet... but they'll typically be <5 Mb. > I have to disagree. I currently have a client setup running mod_perl on Red Hat with only 28MB of RAM. No I didn't miss a number, 28MB. I am not sure how that machine was configured and for all I know it could be a VMWare virtual server, but in trying to determine a timeout issue I realized they had not setup a startup.pl file to preload the modules. After adding the startup.pl the server was able to handle much more concurrent traffic (total amount untested) despites its anemic RAM allotment. The total of unshared memory is closer to 5MB on my machines, how did you arrive at the 30MB figure? Or should I ask what are you running? I use a lot of modules and have Apache::ASP , Embperl and Mason processed pages. I also have PHP loaded along with SSL (all static) so it isn't a trim server configuration to start with on my end. Aaron > to sum up, i don't think your mysqld-variable tuning's gonna have > much effect. or at least, other things are gonna have a lot more > effect. > -- > Steve Lane > _______________________________________________ > Jacksonville-pm mailing list > Jacksonville-pm@mail.pm.org > http://mail.pm.org/mailman/listinfo/jacksonville-pm From sml at zfx.com Thu Oct 17 12:26:42 2002 From: sml at zfx.com (Steve Lane) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? References: <3DAEDAA9.4BC7C9A@zfx.com> <1034874596.25553.313.camel@development.gina.net> Message-ID: <3DAEF2D2.202CFF91@zfx.com> Aaron Johnson wrote: > On Thu, 2002-10-17 at 11:43, Steve Lane wrote: > > example: you've got 250 httpd's, each using 30 Mb unshared memory > > (not atypical for a mod_perl server with a kazillion loaded Perl > > modules). that's 7.5 Gb memory! and we haven't even counted the > > mysqld's yet... but they'll typically be <5 Mb. > > I have to disagree. what exactly are you disagreeing with? my math? the httpd size is just an example, i didn't make any claims other than the size of the mysqld's. > I currently have a client setup running mod_perl on > Red Hat with only 28MB of RAM. No I didn't miss a number, 28MB. I am > not sure how that machine was configured and for all I know it could be > a VMWare virtual server, but in trying to determine a timeout issue I > realized they had not setup a startup.pl file to preload the modules. > After adding the startup.pl the server was able to handle much more > concurrent traffic (total amount untested) despites its anemic RAM > allotment. > > The total of unshared memory is closer to 5MB on my machines, how did > you arrive at the 30MB figure? Or should I ask what are you running? i arrived at the figure by looking at my console :). > I use a lot of modules and have Apache::ASP , Embperl and Mason > processed pages. I also have PHP loaded along with SSL (all static) so > it isn't a trim server configuration to start with on my end. what is "a lot"? 10? 100? we've got probably 300 or more *large* modules :(. not my doing, and i'm not happy about it, but there's not a whole lot i can do about it. most of them are in-house modules. it's not a great situation, but as i like to say, imperfection is a bitch. -- Steve Lane From wcjones at fccj.edu Thu Oct 17 21:49:04 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? In-Reply-To: <1034874596.25553.313.camel@development.gina.net> Message-ID: <29C39264-E244-11D6-B21B-0003930FDFC6@fccj.edu> On Thursday, October 17, 2002, at 01:09 PM, Aaron Johnson wrote: > > The total of unshared memory is closer to 5MB on my machines, how did > you arrive at the 30MB figure? Or should I ask what are you running? > The Bb server leaks so badly that the combined httpd process list cannot fit in 6BG unless I kill the kids off every 3,000 requests... As it stands I get close to Zero RAM every 12 hours of processing or so. I really want to avoid swapping if I can -- I feel swap is only there if the water mark changed unexpectedly and to keep the system from horribly crashing and burning... :( -Sx- From wcjones at fccj.edu Thu Oct 17 21:44:53 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] MySQL ? In-Reply-To: <1034867920.25553.249.camel@development.gina.net> Message-ID: <94A441F6-E243-11D6-B21B-0003930FDFC6@fccj.edu> Sorry for the late reply - tonight is my teaching night :/ :) See below - On Thursday, October 17, 2002, at 11:18 AM, Aaron Johnson wrote: > How big are your tables? > How many tables do you have? > What type of queries are you doing? > Are you running under mod_perl? > If you are under mod_perl have you put Apache::DBI in your startup.pl? > > If it is a CGI model app have you looked at > CGI::Speedyhttp://search.cpan.org/author/HORROCKS/CGI- > SpeedyCGI-2.21/lib/CGI/SpeedyCGI.pm > > I have used CGI::Speedy in a couple of apps and seen an improvement in > performance, but not sure if it would reuse DBI connection, most likely > they would be reestablished on each call so not sure how that > would help > your MySQL specific question. The main table size is about 100 fields, I have 40 tables, the median ISAM file size if ~400MB I have a total of ~12,000 student records occupying - to one degree or another - ~540 on-line courses... The complete dataset is ~17GB... I don't feel that any of this is so special as to cause the system to "drag" with each query; so I have been trying to get management to purchase $2-3,000 worth of MySQL/Perl consulting to see if I have really missed anything or is the b system truly this awful? :) My money is the Bb system is truly awful... -Sx- From wcjones at fccj.edu Fri Oct 18 14:47:02 2002 From: wcjones at fccj.edu (William C (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] DocSet experience ? Message-ID: Hey :) This is the Jacksonville PM Leader; a while back you had mentioned interest in possibly sharing experience or collaborating on a DocSet project. Are you still interested? I have been messing around with DocSet a bit, mainly at my own FCCJ Courseware Support site - http://cws.fccj.edu/ I am basically to the point where I find myself wanting some type of Editor interface. But before I start writing code and likely reinventing the wheel - I wanted to contact a few people and do some research. Anyhow, I was wondering what your experience has been and what your thoughts are concerning DocSet ? -Bill- :] _Sx____________________ ('> iudicium ferat //\ Have Computer - v_/_ Will Hack... From wcjones at fccj.edu Thu Oct 24 21:36:50 2002 From: wcjones at fccj.edu (William C. (Bill) Jones) Date: Mon Aug 2 21:30:50 2004 Subject: [Jax.PM] [NON-PERL] Fwd: Newsletter from O'Reilly UG Program, October 24 Message-ID: <9D81B1C4-E7C2-11D6-84A4-0003930FDFC6@fccj.edu> O'Reilly User Group Program Newsletter October 24, 2002 Spread The Word To Your Members... Highlights This Week: ---------------------------------------------------------------- Book News ---------------------------------------------------------------- -NetBeans: The Definitive Guide -Building Secure Servers with Linux -Object-Oriented Programming with Visual Basic .NET -Embedding Perl in HTML with Mason -HTTP: The Definitive Guide -Windows XP Annoyances -RADIUS: Securing Public Access to Private Resources -Mac OS X: The Missing Manual, 2nd Edition -Oracle SQL*Plus Pocket Reference, 2nd Edition ---------------------------------------------------------------- Upcoming Events ---------------------------------------------------------------- -AEleen Frisch in Washington, DC--November 9, 2002 at 2:00 PM ---------------------------------------------------------------- Conference News ---------------------------------------------------------------- -O'Reilly Bioinformatics Technology Conference Online Registration Is Open ---------------------------------------------------------------- News ---------------------------------------------------------------- -Top Ten Digital Photography Tips -Building Online Communities -Lessons from the Internet Bookmobile -Denial-of-Service Vulnerabilities -Radiator -Beginning Python for Bioinformatics -Announcing ONDotnet.com -Using .NET Sockets -Beep BEEP! -Learning and Using Jakarta Digester -XML to PDF? Oh, FOP It. -Upgrade My Missing Manual? -Top Ten Mac OS X Tips for Unix Geeks -Digital Killed the Video Star ---------------------------------------------------------------- Announcements From Your Peers ---------------------------------------------------------------- -MacFair 2002 on Saturday, November 16, 2002--Southern California: ================================================ Book News ================================================ Review books are available--please email me for a copy. If you need your books by a certain date, please allow at least four weeks for shipping. Send or email me copies of your newsletters and book reviews. Don't forget, your members get 20% off any O'Reilly book they purchase directly from O'Reilly. Just use code DSUG when ordering. Press releases are available on our press page: http://press.oreilly.com/ ***Group purchases with better discounts are available*** Please let me know if you are interested. NetBeans: The Definitive Guide Order Number: 2807 You'll find out how to use this IDE to its fullest, making your Java programming more efficient and productive than ever before in this book. http://www.oreilly.com/catalog/netbeans/ Chapter 11, "Working with XML," is available online: http://www.oreilly.com/catalog/netbeans/chapter/ch11.html ***Building Secure Servers with Linux Order Number: 2173 An all-inclusive resource for Linux users who wish to harden their systems, this book covers general security as well as key services such as DNS, the Apache web server, mail, file transfer, and secure shell. With this book in hand, you'll have everything you need to ensure robust security of your Linux system. http://www.oreilly.com/catalog/bssrvrlnx/ Chapter 10, "System Log Management and Monitoring," is available online: http://www.oreilly.com/catalog/bssrvrlnx/chapter/index.html ***Object-Oriented Programming with Visual Basic .NET Order Number: 1460 Packed with examples that will guide you through every step, this book is an essential tool to mastering VB.NET. http://www.oreilly.com/catalog/objectvbnet/ Chapter 1, "Introduction," is available online: http://www.oreilly.com/catalog/objectvbnet/chapter/index.html ***Embedding Perl in HTML with Mason Order Number: 2254 "Embedding Perl in HTML with Mason" shows you how to create large, complex, dynamically driven web sites that look good and are a snap to maintain. Written by members of Mason's core development team, the book covers the latest release of Mason 1.12, which has many new features, including line-number reporting based on source files, sub-requests, and easier use as a CGI. http://www.oreilly.com/catalog/perlhtmlmason/ Chapter 5, "Advanced Features," is available online: http://www.oreilly.com/catalog/perlhtmlmason/chapter/index.html ***HTTP: The Definitive Guide Order Number: 5092 "HTTP: The Definitive Guide" documents everything technical people need for using HTTP efficiently. Written by experts with years of practical and teaching experience, this book is the definitive resource on HTTP and related core web technologies because it clearly explains the "why" as well as the "how." http://www.oreilly.com/catalog/httptdg/ Chapter 6, "Proxies," is available online: http://www.oreilly.com/catalog/httptdg/chapter/index.html ***Windows XP Annoyances Order Number: 4168 Windows XP contains dozens of new features designed to make your work easier, but it also introduces numerous quirks and unaccountable behaviors guaranteed to increase your level of frustration. "Windows XP Annoyances" offers solutions, tips, workarounds, and warnings that enable you to both customize and troubleshoot Windows XP. http://www.oreilly.com/catalog/winxpannoy/ Chapter 2, "Basic Explorer Coping Skills," is available online: http://www.oreilly.com/catalog/winxpannoy/chapter/index.html ***RADIUS: Securing Public Access to Private Resources Order Number: 3226 This unique book provides a complete, detailed guide to the underpinnings of the RADIUS protocol, from the history and theory of the architecture, to how the protocol and its ancillaries function on a day-to-day basis, to implementing RADIUS-based security in a variety of environments. http://www.oreilly.com/catalog/radius/ Chapter 5, "Getting Started with FreeRADIUS," and excerpts from Chapter 9 "New RADIUS Developments," are available online: http://www.oreilly.com/catalog/radius/chapter/index.html ***Mac OS X: The Missing Manual, 2nd Edition Order Number: 4508 New York Times columnist David Pogue has just updated his best-selling "Mac OS X: The Missing Manual," and once again, he reveals which new features work well and which do not. The second edition covers Mac OS X 10.2 and includes new chapters on iChat, Sherlock 3, and the new Finder. The book also delves into features under the hood, such as the networking tools that allow Macs and PCs to swap files on a network. http://www.oreilly.com/catalog/macosxmm2/ Chapter 2, "Organizing Your Stuff," is available online: http://www.oreilly.com/catalog/macosxmm2/chapter/index.html ***Oracle SQL*Plus Pocket Reference, 2nd Edition Order Number 4419 The new edition of this pocket reference includes many new features for Oracle9i: the COALESCE function, searched CASE expressions, new table join syntax, partition operations, MERGE statement, and syntax changes in existing SQL*Plus statements. It also adds sections on basic SQL (a much-requested feature): INSERT, DELETE, UPDATE, SELECT, and transaction management. http://www.oreilly.com/catalog/orsqlpluspr2/ A Sample Excerpt, "Table Joins (Oracle8i)," is available online: http://www.oreilly.com/catalog/orsqlpluspr2/chapter/ch01.html =============================================== Upcoming Events ================================================ ***AEleen Frisch in Washington, DC--November 9, 2002 at 2:00 PM AEleen is the author of "Essential System Administration, 3rd Edition." She will be giving a presentation and book signing at: Reiter's Professional and Scientific Books 2021 K Street NW, Washington, DC 20006-1003 (800) 537-4314 http://www.reiters.com/ Essential System Administration, 3rd Edition Order Number: 3439 http://www.oreilly.com/catalog/esa3/ For more events, please see: http://events.oreilly.com/ ================================================ Conference News ================================================ ***Online registration is now open for the O'Reilly Bioinformatics Technology Conference This conference takes place at the Westin Horton Plaza in San Diego on February 3-6, 2003. http://conferences.oreilly.com/biocon/ Early Bird Discount-- User Group members who register before December 16th, 2002 get a double discount. Use code DSUG when you register, and you'll get 20% off the "Early Bird" price. To register, go to: http://conferences.oreillynet.com/cs/bio2003/create/ord_bio03 Conference tracks for this year: Toolkits http://conferences.oreilly.com/pub/w/21/track_toolkits.html Techniques http://conferences.oreilly.com/pub/w/21/track_techniques.html Bioinformatics Overview http://conferences.oreilly.com/pub/w/21/track_overview.html End-User Applications http://conferences.oreilly.com/pub/w/21/track_enduser.html System Administration and Infrastructure http://conferences.oreilly.com/pub/w/21/track_sysadmin.html Speakers include Lincoln Stein, Suzanna Lewis, Francis Ouellette, Alvis Brazma, James Gosling, Stephen Wolfram, and Damian Conway For a complete list of speaker information see: http://conferences.oreilly.com/pub/w/21/speakers.html ================================================ News From O'Reilly & Beyond ================================================ --------------------- General News --------------------- ***Top Ten Digital Photography Tips http://www.macdevcenter.com/pub/a/mac/2002/10/22/digi_photo_tips.html ***Building Online Communities It's easy to install and run a web site or a mailing list. It's hard to run it well. The secret lies in understanding and adopting the best characteristics of several online communities. http://www.oreillynet.com/pub/a/network/2002/10/21/community.html ***Lessons from the Internet Bookmobile Cruising in a high-tech-equipped bus, Richard Koman joined Brewster Kahle on a cross-country crusade in the Internet Bookmobile to provide lessons to school kids in the applications of the public domain. Read their experiences as they stopped at various schools--taking ASCII text versions of public domain works available online and letting the kids turn them into books. http://www.oreillynet.com/pub/a/network/2002/10/18/bookmobile --------------------- Open Source --------------------- ***Denial-of-Service Vulnerabilities Noel Davis looks at denial-of-service vulnerabilities in xinetd, syslog-ng, net-snmp, and Sun's lockd; problems with heartbeat, dvips, OpenOffice, and Cisco CatOS embedded HTTP server; and security vulnerabilities in kpf, gnome-gv, ggv, Mozilla, and PAM. http://linux.oreillynet.com/pub/a/linux/2002/10/22/insecurities.html ***Radiator Are you fed up with those who think that commercial applications need to be written in an "enterprise" language like Java or C++? So are we, so we spoke to Mike McCauley at Open System Consultants. http://www.perl.com/pub/a/2002/10/15/radiator.html ***Beginning Python for Bioinformatics Python might not be the first language that comes to mind for bioinformatics, but Patrick O'Brien demonstrates that it's well suited for the task. http://www.onlamp.com/pub/a/python/2002/10/17/biopython.html --------------------- .NET --------------------- ***Announcing ONDotnet.com Shawn Wildermuth is very excited to announce the .NET DevCenter is now officially ONDotnet.com; and he is the new editor. http://www.oreillynet.com/pub/wlg/2198 Check it out at: http://ONDotnet.com ***Using .NET Sockets Writing programs that access the network used to be a relatively difficult task. With .NET, this is no longer the case. This article shows how to use the Socket class in a .NET client application. http://www.ondotnet.com/pub/a/dotnet/2002/10/21/sockets.htm --------------------- XML --------------------- ***Beep BEEP! Rich Salz examines BEEP as part of his study of methods for transporting binary data in SOAP. http://www.xml.com/pub/a/2002/10/16/ends.html Get your complete BEEP toolkit from "BEEP: The Definitive Guide." Order Number: 2440 http://www.oreilly.com/catalog/beep/ --------------------- Java --------------------- ***Learning and Using Jakarta Digester Turn your XML into Beans. http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html ***XML to PDF? Oh, FOP It. FOP is an open source Java API for converting XML data to PDF and other formats. This article shows you how it's done. http://www.onjava.com/pub/a/onjava/2002/10/16/fop.html --------------------- Mac --------------------- ***Upgrade My Missing Manual? David Pogue answers the question, How different is 10.1 from 10.2 and should I get the new Mac OS X book? http://www.missingmanual.com/david/ ***Top Ten Mac OS X Tips for Unix Geeks http://www.macdevcenter.com/pub/a/mac/2002/10/22/macforunix.html ***Digital Killed the Video Star Alan Graham shows how to create videos with just a scanner or digital camera, a $10 shareware app, and an OS X Mac. http://www.macdevcenter.com/pub/a/mac/2002/10/18/photo_to_movie.html ================================================ Announcements From Your Peers ================================================ Southern California-- MacFair 2002 Saturday - November 16, 2002 10:00am to 5:00pm Cerritos College - Student Activities Center 11110 Alondra Blvd., Norwalk, CA O'Reilly user group members can register online ahead of time with the discount code ORL-1 to receive $5.00 off the admission price. For more information or to register, go to: www.macfair.org Until next time, Marsee