From casey at geeknest.com Tue Apr 8 13:47:47 2003 From: casey at geeknest.com (casey@geeknest.com) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Pittsburgh Perl Mongers | Meeting | 04.09.2003 Message-ID: <20030408184747.D68941003F@caseywest.com> *Techincal Talks* Two Pittsburgh Perl Mongers strut their stuff. *Location* Agnew Moyer Smith Inc 3700 South Water Street Suite 300 http://amsite.com 04.09.2003 05:00 The doors to this building are locked after 18:00. Please ring extension *195* from the keypad at the door. This will allow you to bypass this "feature" of building security. *Talks* *Functional Templates* Tom Moertel Most template systems encourage programmers to view templates as documents that contain placeholders or processing instructions that can be replaced or evaluated dynamically. However, there is another way of looking at templates that yields a simple yet powerful method for building and managing complex sets of information. That way is to view templates as *functions* (hence the name) that take named values as input and yield documents or other templates as output. The real power of this method is revealed by passing functional templates as *arguments* to other templates, which allows for global sharing and local specialization. A host of other interesting properties appear when one considers that the arguments themselves can be the results of calling other functional templates. Mind-bending fun for all! *Stuffing the Ballot Box* Casey West Online polls are taken way too seriously. This is not just a condition of the poller, but often of the pollee. In this talk, we're the pollee. Don't worry, it's all legal, your brain won't be counted as a circumvention device (and therefore detained) from having heard this. I promise. -- Casey West (via automation) From stella at alumni.princeton.edu Tue Apr 8 13:48:49 2003 From: stella at alumni.princeton.edu (Stella Daily) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Pittsburgh Perl Mongers | Meeting | 04.09.2003 Message-ID: <20030408114850.1113.h003.c007.wm@mail.alumni.princeton.edu.criticalpath.net> Any plans for dinner or snacks afterward? David and I would be game. -Stella From chris at cwinters.com Tue Apr 8 13:56:15 2003 From: chris at cwinters.com (Chris Winters) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Pittsburgh Perl Mongers | Meeting | 04.09.2003 In-Reply-To: <20030408184747.D68941003F@caseywest.com> References: <20030408184747.D68941003F@caseywest.com> Message-ID: <3E931B4F.9020900@cwinters.com> casey@geeknest.com wrote: > *Techincal Talks* > > Two Pittsburgh Perl Mongers strut their stuff. > > *Location* > > Agnew Moyer Smith Inc > 3700 South Water Street > Suite 300 > http://amsite.com > 04.09.2003 > 05:00 Is that 7 PM (as the website says) or 5 PM (as the email says)? Chris From casey at geeknest.com Tue Apr 8 14:01:43 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Pittsburgh Perl Mongers | Meeting | 04.09.2003 In-Reply-To: <20030408114850.1113.h003.c007.wm@mail.alumni.princeton.edu.criticalpath.net> References: <20030408114850.1113.h003.c007.wm@mail.alumni.princeton.edu.criticalpath.net> Message-ID: <20030408190143.GK34510@geeknest.com> It was Tuesday, April 08, 2003 when Stella Daily took the soap box, saying: : Any plans for dinner or snacks afterward? David and I : would be game. Last time I was on the south side I saw two cafe's on oppoite corners on E Carson. I think it was around 15th street. One looked Greek and the other Italian. I was interested in the coffee and so was thinking about going to one of those places. Casey West -- Shooting yourself in the foot with APL @#&^$%&%^ foot From casey at geeknest.com Tue Apr 8 14:02:24 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Pittsburgh Perl Mongers | Meeting | 04.09.2003 In-Reply-To: <3E931B4F.9020900@cwinters.com> References: <20030408184747.D68941003F@caseywest.com> <3E931B4F.9020900@cwinters.com> Message-ID: <20030408190224.GL34510@geeknest.com> It was Tuesday, April 08, 2003 when Chris Winters took the soap box, saying: : casey@geeknest.com wrote: : >*Techincal Talks* : > : >Two Pittsburgh Perl Mongers strut their stuff. : > : >*Location* : > : > Agnew Moyer Smith Inc : > 3700 South Water Street : > Suite 300 : > http://amsite.com : > 04.09.2003 : > 05:00 : : Is that 7 PM (as the website says) or 5 PM (as the email says)? Yes, that's 7PM, should say 19:00. There is a bug in something that translates that. I've not uncovered it yet. Casey West -- Shooting yourself in the foot with Windows 95 Your gun is not compatible with this OS and you must buy an upgrade and install it before you can continue. Then you will be informed that you don't have enough memory. From casey at geeknest.com Tue Apr 8 14:21:37 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Pittsburgh Perl Mongers | Meeting | 04.09.2003 In-Reply-To: <3E931D3C.40900@cwinters.com> References: <20030408184747.D68941003F@caseywest.com> <3E931B4F.9020900@cwinters.com> <20030408190224.GL34510@geeknest.com> <3E931D3C.40900@cwinters.com> Message-ID: <20030408192137.GM34510@geeknest.com> It was Tuesday, April 08, 2003 when Chris Winters took the soap box, saying: : Casey West wrote: : >: Is that 7 PM (as the website says) or 5 PM (as the email says)? : > : >Yes, that's 7PM, should say 19:00. There is a bug in something that : >translates that. I've not uncovered it yet. : : Well, it's 5 PM *somewhere* ;-) Well, I've nailed down the problem, but not why there's a problem. I use Text::Autoformat to tidy up the text version of a page and it's making the conversion. I've not dug deep enough to find out why, and the source is kind of scary. I'll come up with something in the mean time. Casey West -- If the automobile had followed the same development as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year killing everyone inside. -- Robert Cringely/InfoWorld From casey at geeknest.com Tue Apr 8 14:33:13 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Pittsburgh Perl Mongers | Meeting | 04.09.2003 In-Reply-To: <3E931B4F.9020900@cwinters.com> References: <20030408184747.D68941003F@caseywest.com> <3E931B4F.9020900@cwinters.com> Message-ID: <20030408193313.GO34510@geeknest.com> It was Tuesday, April 08, 2003 when Chris Winters took the soap box, saying: : casey@geeknest.com wrote: : >*Techincal Talks* : > : >Two Pittsburgh Perl Mongers strut their stuff. : > : >*Location* : > : > Agnew Moyer Smith Inc : > 3700 South Water Street : > Suite 300 : > http://amsite.com : > 04.09.2003 : > 05:00 : : Is that 7 PM (as the website says) or 5 PM (as the email says)? I beat it! For some reason, and I don't understand why it's so liberal, Text::Autoformat was renumbering my time. It thought 04.09.2003 was a section heading, and that the next number, 19:00 was numbered wrong. It's been fixed on the site and the next meeting announcement will not have this problem. Casey West -- Computers aren't intelligent, they only think they are. From casey at geeknest.com Tue Apr 8 19:59:25 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Adendum and Other Info Message-ID: <20030409005925.GQ34510@geeknest.com> Adam Foxson has been added to our talk schedule. He has a nice lighting talk about testing. And the FAQ has been updated with directions to AMS, specifically a link to the following: http://amsite.com/exchange/exchange.html Further, I've contacted the President of the Zets (http://www.zets.org) about a joint social meeting at Sorento's in Oakland next month. They're tech heads like us but with more history. :-) Should be a lot of fun if they're game. Casey "King of Networking" West -- Shooting yourself in the foot with Assembly Language You crash the OS and overwrite the root disk. The system administrator arrives and shoots you in the foot. After a moment of contemplation, the administrator shoots himself in the foot and then hops around the room rabidly shooting at everyone in sight. From chris at cwinters.com Wed Apr 9 22:34:52 2003 From: chris at cwinters.com (Chris Winters) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] [Fwd: [dcpm] Perl tutorials at U Penn on Monday April 14 and April 21] Message-ID: <3E94E65C.8050003@cwinters.com> Just in case anyone's in Philly... -------- Original Message -------- Subject: [dcpm] Perl tutorials at U Penn on Monday April 14 and April 21 Date: Wed, 09 Apr 2003 21:54:45 -0400 From: mjd-list-dcpm@plover.com Reply-To: dc@lists.pm.org To: dc@lists.pm.org This year I'll be doing three tutorials at the big Perl conference in San Diego. One is entirely new, and one is substantially refurbished. I need to practice these before I go to San Diego, so I'll be giving the tutorials in Philadelphia this month. If you were to attend in San Diego, you would pay between $250 and $345 for each tutorial. But you can come to my practice session for less than that. I am asking for a (voluntary) donation of $10. If this covers my expenses for the class, I will contribute 30% of the surplus to the EFF, a non-profit legal action group devoted to defending digital rights. (See http://www.eff.org/ for details.) The two tutorials are titled: Tricks of the Wizards (2003 Edition) Making Programs Faster: Benchmarking, Profiling, and Performance Tuning WHEN Tricks of the Wizards: Monday, 14 April 2003. Making Programs Faster: Monday, 21 April 2003. Both tutorials will start around 6PM and will last until about 9:30, including a 30-minute break in the middle. WHAT Here are the brochure descriptions: TRICKS OF THE WIZARDS ********************* This class will explore Perl's most unusual features. We'll look at some of the standard modules written by famous wizards like Tom Christiansen, Damian Conway, and Larry Wall, and learn what they're for and how they work. First we'll investigate Perl's remarkable 'glob' feature. We'll see many uses of globs, including the 'Exporter' module, which everyone uses but hardly anyone understands. We'll discuss how to accomplish the same globby magic in Perl 6, which won't have globs. After this we'll look at unusual uses of Perl's 'tie' function, which scoops the brain out of an ordinary Perl array, hash, or filehandle, replacing it with your own concoction. We'll make hashes with case-insensitive keys, arrays that mirror the contents of a file, and filehandles that suppress annoying output. Then we'll learn about AUTOLOAD, Perl's function of last resort. We'll see a tremendously useful application: How to generate the accessor methods of a class *without* writing pages of repetitive code. We'll see how Larry's 'Shell' module uses AUTOLOAD to emulate the Unix shell inside Perl scripts, and how Damian Conway's 'NEXT' module uses AUTOLOAD for method redispatch. Section 4 discusses Perl's new "source filter" feature. This magic allows you to write Perl programs in any language, and translate them to Perl at the last moment. We'll add a 'switch' statement to Perl and we'll see how Perl 5 can emulate the variable syntax of Perl 6. The class will finish with ten very small but useful enchantments that take thirty seconds each. MAKING PROGRAMS FASTER ********************** Almost every application must be made to run faster; some sooner, some later. Performance tuning of applications has long been a dark art, understood by few and riddled with terrible pitfalls. Stories abound of optimization projects that took weeks but yielded a pathetic 2% decrease in total run time. Don't let this happen to you. The class begins with a brief introduction to the basic concepts of performance tuning. We'll then take an extensive look at modules for benchmarking and profiling, including several common blunders that even experts commit when benchmarking. We'll finish with a discussion of a few of the most important optimizations. Throughout, the class will emphasize both high- and low-level approaches to performance tuning: when to tune and when to try something different, and if tuning is necessary, how to focus your efforts where they will do the most good. We'll learn how to rationally evaluate programming situations and when to try alternative approaches. Short introduction: Basic concepts and tools; CPU, wallclock, system, and user times; I/O, CPU, and memory-bound programs; 'time,' 'times,' 'Time::HiRes'. Performance tuning tools: Benchmarking: The cardinal rule of benchmarking (look at the big picture) Benchmark.pm Common errors of commission and interpretation The incredible shrinking test case When two optimizations look like zero The pseudo-hash disaster Case studies: Speeding up regexes, numerical calculation. Profiling: The 90-10 rule The Wrong Question The Innermost Loop Speeding up the case that never occurs Standard profiling modules Case study: high-turnaround XML processing. Common optimizations; When common optimizations don't work. WHARNING These are NOT introductory classes. Both tutorials are intermediate-level Perl classes. Basic familiarity with Perl is assumed for both; "Tricks of the Wizards" requires some familiarity with packages, objects, modules, and references. A notice was circulated recently that asked "Interested in learning perl?" Anyone who is "interested in learning Perl" is probably not going to get a lot out of these classes. WHERE The classes will be held in Heilmeier Hall (room 100, formerly Alumni Hall) in the Towne Building at the University of Pennsylvania. The Towne Building is located at 220 South 33rd Street in Philadelphia. For directions to the University, see http://www.facilities.upenn.edu/visitUs/ A map is available at: http://www.facilities.upenn.edu/mapsBldgs/view_map.php3?id=158 WHO According the the conference web site: Mark-Jason Dominus has been programming in Perl since 1992. He is the author of the 'Memoize', 'Text::Template', and 'Tie::File' modules, the author of the 'perlreftut' man page, and an occasional contributor to the Perl core. He won the 2001 Larry Wall award for Practical Utility. For more details about me, see http://perl.plover.com/yak/aboutme.html For more details about classes I teach, see http://perl.plover.com/yak/ WHOW We have plenty of space this year, but please make an advance reservation so that I know how many handouts to bring. To reserve, please send an email message to: mjd-tpc-practice-tricks+@plover.com mjd-tpc-practice-performance+@plover.com or both. Please do circulate this notice to any people or mailing lists that you think might want to see it. My grateful thanks go to Helen Anderson and Chip Buchholtz of the University of Pennsylvania School of Engineering and Applied Science for providing the space and AV equipment for these classes. WHUH? Questions? Send me email. -- Chris Winters (chris@cwinters.com) Building enterprise-capable snack solutions since 1988. From casey at geeknest.com Thu Apr 10 11:18:53 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:56 2004 Subject: [pgh-pm] Algorithms for finding words that are bases of others Message-ID: <20030410161853.GD44626@geeknest.com> So David Hand was asking about ways to find all the words ending in 'ow' that, when the 'ow' is removed forms another word. His initial approach, which I have labeled 'retroactive', goes through the dictionary storing each word it finds. When a word ends in 'ow', he examines the past list of words for one matching $word-'ow'. In our conversation, we concluded that after an 'ow' word is found and a match is looked for, the words we have stored can be thrown away because we assumed that these sequences would be 'in order'. For instance, 'ball' and 'ballow'. We were wrong, because wrapping that is 'b', and 'bow'. So all the words in the dictionary must be stored, by the time we get to the end. An approach that I came up with was a dictionary algorithm, basically storing every entry in a hash (where the value is meaningless, but lookups are faster) and then looking for matches. This being a two step process was dismissed out-of-hand in favor of the singular retroactive method. A third, mostly silly approach was a single regular expression that returned a list of matches. This was bothering me a bit last night and I decided to figure out which was best. I tried to profile my code as best I could, and take out anything that might increase overhead. You'll note that I couldn't run the regex. See, it works, I tested it on small data and I find it rather neat, but it never finished one iteration, I gave up around twelve minutes into the runtime. Benchmark: timing 5 iterations of directory, retroactive... directory: 36 wallclock secs (31.01 usr + 0.00 sys = 31.01 CPU) @ 0.16/s (n=5) retroactive: 313 wallclock secs (266.55 usr + 0.00 sys = 266.55 CPU) @ 0.02/s (n=5) s/iter retroactive directory retroactive 53.3 -- -88% directory 6.20 760% -- And for your pleasure, what follows is the code: #!/usr/bin/env perl use strict; use warnings; =pod Find words ending in C<$SUFFIX> that are also words without C<$SUFFIX>. =cut my $SUFFIX = q[ow]; my $DICT = q[/usr/share/dict/words]; use Benchmark qw[cmpthese]; cmpthese 5, { retroactive => \&retroactive, directory => \&directory, # regex => \®ex, }; regex(); sub retroactive { my @words = (); my @found = (); open DICT, $DICT or die $!; while ( ) { chomp; $_ = lc; if ( substr( $_, -2 ) eq $SUFFIX ) { my $root = substr $_, 0, length( $SUFFIX ) * -1; if ( grep { $_ eq $root } reverse @words ) { push @found, $_; } } push @words, $_; } close DICT; # print "$_\n" foreach @found; } sub directory { my %dir = (); my @found = (); open DICT, $DICT or die $!; %dir = map { chomp; lc $_ => undef } ; close DICT; foreach ( keys %dir ) { push @found, "$_$SUFFIX" if exists $dir{"$_$SUFFIX"}; } # print "$_\n" foreach @found; } sub regex { open DICT, $DICT or die $!; my $string = join "|", map { chomp; lc $_ } ; close DICT; study $string; my (@found) = ( $string =~ /\b(\w+)\b(?=.+\b\1$SUFFIX\b)/gso ); # print "$_\n" foreach @found; } __END__ Casey West -- Shooting yourself in the foot with dBase You buy a gun. Bullets are only available from another company and are promised to work so you buy them. Then you find out that the next version of the gun is the one scheduled to actually shoot bullets. From stella at alumni.princeton.edu Thu Apr 10 11:37:34 2003 From: stella at alumni.princeton.edu (Stella Daily) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] Algorithms for finding words that are bases of others Message-ID: <20030410093734.14523.h001.c007.wm@mail.alumni.princeton.edu.criticalpath.net> D'oh! meant to send this to the list, not Casey... ------- Start of forwarded message ------- Subject: Re: [pgh-pm] Algorithms for finding words that are bases of others From: "Stella Daily" Date: Thu, 10 Apr 2003 09:36:46 -0700 (PDT) To: casey@geeknest.com I heart Perl geeks. I'll be sure to tell you guys when the finished crossword is published (if it is). (For those who weren't at last night's meeting, this whole thing got started because I was looking for words that become new words when the letters -OW are added; the result will be a crossword theme with answers like LEGENDS OF THE FALLOW, BITTER PILLOW, ROSEANNE BARROW, etc.) ------- End of forwarded message ------- From jo2y at midnightlinux.com Fri Apr 11 15:33:29 2003 From: jo2y at midnightlinux.com (James O'Kane) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] Algorithms for finding words that are bases of others In-Reply-To: <20030410093734.14523.h001.c007.wm@mail.alumni.princeton.edu.criticalpath.net> Message-ID: Earlier this semester for my Algorithms class we had to solve search words (an NxN block of letters that have words hidden in them) using a de la Briandias tree. One explaination of the datastructure is here: http://www.cs.pitt.edu/~flying/CS1501/Recitation1.htm For that assignment we were looking for prefixes, so things higher in the tree were merged based on the first letters. I haven't thought it through, but perhaps they could be inserted last letter first? Or, when walking the tree, if you find an o on the same level as a string terminator, chec and see if the 'o' has a w and end of string following it. The class is in c++ or java, so I'm not sure if this maps well to thinking in perl. -james From avi at finkel.org Fri Apr 11 19:11:08 2003 From: avi at finkel.org (Avi) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] Algorithms for finding words that are bases of others In-Reply-To: References: Message-ID: <3E97599C.5050706@finkel.org> Looks a lot like a trie -- Check out Tree::Trie for a perl impl. James O'Kane wrote: >Earlier this semester for my Algorithms class we had to solve search words >(an NxN block of letters that have words hidden in them) using a de la >Briandias tree. One explaination of the datastructure is here: >http://www.cs.pitt.edu/~flying/CS1501/Recitation1.htm > >For that assignment we were looking for prefixes, so things higher in the >tree were merged based on the first letters. I haven't thought it through, >but perhaps they could be inserted last letter first? >Or, when walking the tree, if you find an o on the same level as a string >terminator, chec and see if the 'o' has a w and end of string following >it. > >The class is in c++ or java, so I'm not sure if this maps well to thinking >in perl. > >-james > > >_______________________________________________ >pgh-pm mailing list >pgh-pm@mail.pm.org >http://mail.pm.org/mailman/listinfo/pgh-pm > > > > > From tom at moertel.com Mon Apr 14 17:28:48 2003 From: tom at moertel.com (Tom Moertel) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] Algorithms for finding words that are bases of others In-Reply-To: <20030410161853.GD44626@geeknest.com> References: <20030410161853.GD44626@geeknest.com> Message-ID: <1050359329.1272.425.camel@sycamore-maple.lab04.moertel.com> On Thu, 2003-04-10 at 12:18, Casey West wrote: > So David Hand was asking about ways to find all the words ending in > 'ow' that, when the 'ow' is removed forms another word. [...] This is a fun problem. > In our conversation, we concluded that after an 'ow' word is found > and a match is looked for, the words we have stored can be thrown > away [...] We were wrong, [...] So all the words in the dictionary > must be stored, by the time we get to the end. You don't need to store all of the words. Assuming that the input dictionary is sorted, when you are examining words that start with "a" and then you encounter the first word that starts with "b", you can throw away the "a"-words you have remembered. It is impossible for a "b"-word that ends in an "ow" suffix to become an "a"-word when its suffix is removed. Going further, you can throw away all of your "ab"-words when you encounter the first "ac"-word, and so on for longer prefixes. Thus, an efficient method for solving this kind of problem is to construct a digital search tree that shares common prefixes. For example, we can imagine the following input: a ab abe at attempt as a set of pathnames: a/@ a/b/@ a/b/e/@ a/t/@ a/t/t/e/m/p/t/@ where "@" represents the end of a word. The pathnames correspond to the following directory structure, which is how we will store dictionaries in memory: a-+-@ | |-b-+-@ | | | `-e---@ | `-t-+-@ | `t---e---m---p---t---@ Notice how this representation lets us share common prefixes. Even though all five words start with "a", we only use one "a" directory node at the root to represent this common prefix. Likewise, both of the "ab"-words share a common "b" node under the shared root node. This is a big improvement over storing all of the words in a dictionary. Further, it allows for some cool optimizations, which I'll talk about later. Using search trees like this, it is fast and easy to solve our original problem. What we do is create search trees for our input dictionary. Then we search the trees for "@"-nodes, which mark the ends of legal words. When we find the end of a word, we check the last few letters of its pathname to see if it matches our target suffix (e.g., "ow"). If it matches, we climb back up the tree to the ancestral directory node *before* the start of the suffix. This effectively chops off the suffix. Then we check to see if the ancestral node contains an "@"-node. If it does, we know that removing the suffix from the original word results in another legal word, and we can output the original word as a "hit." We continue like this until we have exhausted our search trees. > This, being a two step process, was dismissed out-of-hand in favor > of the singular retroactive method. At first, the search-tree method also appears to be a two-step process: (1) Build search trees from the dictionary (2) Search the trees for hits But we can be clever here. Observing that the order in which the trees are built in step (1) is the same as they are consumed in (2), we can build *and* consume the trees in one pass. Not only can we throw out the "a" search tree when we start processing "b" words, but also we can throw out each of the subtrees within the "a" tree when we advance to the next. The same goes for subsubtrees, subsubsubtrees, and so on. In other words, we need to keep in memory only that small depth-first search path that we are actively considering! This smashes our total memory consumption down to a small constant proportional to the depth of the tree. Further, we can reduce the storage even more by collapsing non-terminal (non-@) nodes, since we never care about them during our search. It all boils down to this: #!/usr/bin/perl -l my ($sfx, @stack) = (shift().'$', ""); while (defined($_ = <>)) { chomp; -- $#stack until $stack[-1] eq substr($_, 0, length $stack[-1]); if (((my $word_less_sfx = $_) =~ s/$sfx//o)) { print if grep({$_ eq $word_less_sfx},@stack) && $_ ne $sfx; } push @stack, $_; } Example: $ ./suffix-words.pl ow < words-lc allow barrow bellow bestow billow burrow endow fallow fellow hallow meadow pillow shallow tallow wallow willow window yellow Cheers, Tom From casey at geeknest.com Mon Apr 21 07:30:24 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] June Plans with Harrisburg.pm Message-ID: <20030421123024.GD87115@geeknest.com> We're all set for a June meeting with Harrisburg.pm. As it stands, I'd like to hear from all of you on a preferred date. The 14th or the 28th? I'm voting for the 14th as it's just before YAPC and it will help our one YAPC Speaker, Mr. Winters. Let me know if you have preference. Casey West -- Shooting yourself in the foot with Minix You learn how to shoot yourself in the foot with a Saturday Night Special. From casey at geeknest.com Mon Apr 21 08:09:09 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] June Plans with Harrisburg.pm In-Reply-To: <20030421123024.GD87115@geeknest.com> References: <20030421123024.GD87115@geeknest.com> Message-ID: <20030421130909.GE87115@geeknest.com> It was Monday, April 21, 2003 when Casey West took the soap box, saying: : We're all set for a June meeting with Harrisburg.pm. As it stands, : I'd like to hear from all of you on a preferred date. The 14th or the : 28th? : : I'm voting for the 14th as it's just before YAPC and it will help our : one YAPC Speaker, Mr. Winters. : : Let me know if you have preference. I should mention, we are HOSTING. We aren't driving over there, they offered for that. :-) Sorry for the confusion. :-) Casey West -- Shooting yourself in the foot with MasPar You shoot all of your friends' feet simultaneously. From robertblackwell at yahoo.com Mon Apr 21 08:22:05 2003 From: robertblackwell at yahoo.com (Robert Blackwell) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] June Plans with Harrisburg.pm In-Reply-To: <20030421123024.GD87115@geeknest.com> Message-ID: <20030421132205.90072.qmail@web11605.mail.yahoo.com> I vote June 14th I have family visiting the 28th. --- Casey West wrote: > We're all set for a June meeting with Harrisburg.pm. > As it stands, > I'd like to hear from all of you on a preferred > date. The 14th or the > 28th? > > I'm voting for the 14th as it's just before YAPC and > it will help our > one YAPC Speaker, Mr. Winters. > > Let me know if you have preference. > > Casey West > > -- > Shooting yourself in the foot with Minix > You learn how to shoot yourself in the foot with a > Saturday Night > Special. > > _______________________________________________ > pgh-pm mailing list > pgh-pm@mail.pm.org > http://mail.pm.org/mailman/listinfo/pgh-pm ===== Robert Blackwell robertblackwell@yahoo.com AIM: robertdblackwell Yahoo!: robertblackwell Jabber: robertblackwell@jabber.com http://www.robertblackwell.com __________________________________________________ Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo http://search.yahoo.com From chris at cwinters.com Mon Apr 21 08:53:12 2003 From: chris at cwinters.com (Chris Winters) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] June Plans with Harrisburg.pm In-Reply-To: <20030421123024.GD87115@geeknest.com> References: <20030421123024.GD87115@geeknest.com> Message-ID: <3EA3F7C8.6020709@cwinters.com> Casey West wrote: > We're all set for a June meeting with Harrisburg.pm. As it stands, > I'd like to hear from all of you on a preferred date. The 14th or the > 28th? > > I'm voting for the 14th as it's just before YAPC and it will help our > one YAPC Speaker, Mr. Winters. As you might imagine, I'm for the 14th. Chris From casey at geeknest.com Fri Apr 25 08:33:15 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] June meetup schedule and plans Message-ID: <20030425133315.GS34510@geeknest.com> http://pgh.pm.org/m/200306.html The plans for the June meetup are coming together. About 5.5 hours of talk time is what I've alocated, and that should be enough. Here are some action items (I'm "Action Item" man!) If you want to do a talk (regular or lightening) please let me know. Allowed lengths are as follows. 45 minutes -- super long talk, hey, we get bored easy :-) 30 minutes -- 30 or less, if you need 20 that leaves a nice break 5 minutes -- the lightning talk If you're going to do a talk give me a name and a time. If it's not a lighning talk, give me a description as well. Also for lightning talks, we're going to have a Gong Troll of some kind, you will be restricted. :-) If you know of something more interesting (and cheap) for the evening, let me know! Thanks. Casey West -- Shooting yourself in the foot with Genetic Algorithms You create 10,000 strings describing the best way to shoot yourself in the foot. By the time the program produces the optimal solution, humans have evolved wings and the problem is moot. From casey at geeknest.com Tue Apr 29 20:12:57 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] YAPC::Canada - Ottawa - May 14, 15 and 16 Message-ID: <20030430011257.GW62281@geeknest.com> ----- Forwarded message from "Clayton L. Scott" ----- Date: Tue, 29 Apr 2003 20:45:06 -0400 (EDT) From: "Clayton L. Scott" To: yapc@yapc.ca Subject: YAPC::Canada - Ottawa - May 14, 15 and 16 Message-ID: Dear Perl Monger President, This mailing is targeted to PM groups in the North Eastern United States within a 10 hour drive of Ottawa. If I have mis-calculated the distance I apologise in advance. Could you please foward this announcement to your PM group list? I'm writing to remind you about YAPC::Canada coming up in May 14, 15 and 16. Please consider this a belated invitation to YAPC::Canada. Due to the lateness of this invitation I understand if you can't make it this year but please start preparing to attend next year as we'll be in the same location. Talk and Registration info is below. Thank you, Clayton Scott, YAPC::Canada DETAILS: YAPC::Canada (Yet Another Perl Conference) is a low-cost 1 1/2 day conference run by volunteers with its roots in the Perl Mongers groups. YAPC::Canada features two speaker streams and an optional day of pre-conference training. All the conference details are online. You can register yourself at anytime on the site http://www.yapc.ca/ help@yapc.ca DATES Training - May 14 (optional) Tutorials - May 15 - 9am - 12noon Conference Keynote - May 15 - 1pm Presentations - May 15 - 2pm - 5:30pm May 16 - 9am - 5:30pm KEYNOTE PRESENTER Dick Hardt - Founder and CTO of ActiveState. ABOUT THE CONFERENCE Cost - $75 / $45 for students (see site for payment details) Meals - Dinner on Thursday and lunch BBQ on Friday Size - We have space for 100 people Location - Carleton University, Ottawa, Ontario Proceedings - supplied on CD (ISBN 0-9733033-0-1) Help and info - email help@yapc.ca TRAINING Peter Scott - a professional trainer and author of Perl Debugged - will be delivering a 1 day hands on training course Wednesday May 14 at a cost of $250. Object Oriented Perl visit http://www.psdt.com/services/oo_perl.html for course details and registration info. FREE TUTORIALS Attendees to these tutorials do not need to be registered in the conference. Perhaps your coworkers or friends would benefit from them? Pass the word along! YAPT - Yet Another Perl Tutorial given by Mick Villeneuve An introduction to Perl for those who have never programmed in Perl before. Introduction to Regular Expressions given by Steve Jenkins Skills development for those who have programmed a little bit in Perl. Both tutorials run from 9am - 12 noon on Thursday May 15. PRESENTATIONS Beginner / Intermediate stream Thursday Afternoon - Using the Perl Debugger for Fun and Profit - Ten Easy Mistakes with XML and Perl - Tips for Learning XSLT Friday - Variations on a Theme: "Repeated Code Is a Mistake" - Object Oriented Perl - 20 minutes, 40 programs, 80 lines of code - Date and Times in Perl - Automatic Generation of Time-lapse Animations - Making labels using Perl and PDF Intermediate / Advanced stream Thursday Afternoon - Using Inline - Learning and Using DocBook - Using Log4perl Friday - Perl Style Guides for Large Projects - Design and Implementation of an efficient event loop in pure Perl - OpenThought and OpenPlugin - Exploring Perl Shells - Using Safe - Perl->pig(lipstick) - Perl 5.8 upgrade notes You may attend talks in either stream during the conference. ----- End forwarded message ----- Casey West -- Computers aren't intelligent, they only think they are. From casey at geeknest.com Tue Apr 29 20:15:12 2003 From: casey at geeknest.com (Casey West) Date: Mon Aug 2 21:34:57 2004 Subject: [pgh-pm] Re: YAPC::Canada - Ottawa - May 14, 15 and 16 In-Reply-To: <20030430011257.GW62281@geeknest.com> References: <20030430011257.GW62281@geeknest.com> Message-ID: <20030430011512.GX62281@geeknest.com> It was Tuesday, April 29, 2003 when Casey West took the soap box, saying: : ----- Forwarded message from "Clayton L. Scott" ----- : : Date: Tue, 29 Apr 2003 20:45:06 -0400 (EDT) : From: "Clayton L. Scott" : To: yapc@yapc.ca : Subject: YAPC::Canada - Ottawa - May 14, 15 and 16 : Message-ID: : ABOUT THE CONFERENCE : : Cost - $75 / $45 for students (see site for payment details) : Meals - Dinner on Thursday and lunch BBQ on Friday : Size - We have space for 100 people : Location - Carleton University, Ottawa, Ontario : Proceedings - supplied on CD (ISBN 0-9733033-0-1) : : Help and info - email help@yapc.ca This is in canadian dollars. So in US dollars it would be $53 / $31. Casey West -- Corollary to Godwin's Law: "As a p5p thread grows longer, the probability of a bad pun approaches one. Once this occurs, that thread is over, and whoever inflicted the pun is beaten to within an inch of his life." -- Michael G. Schwern