From westerman at purdue.edu Mon Oct 18 07:15:10 2010 From: westerman at purdue.edu (Rick Westerman) Date: Mon, 18 Oct 2010 10:15:10 -0400 Subject: [Purdue-pm] My goodness, PM meeting tomorrow! Message-ID: <4CBC566E.7060204@purdue.edu> Has it been a month already? I just looked on my calendar and noticed that the PM meeting is tomorrow, Oct 19th, usual 11:30-1:30 in WSLR 116 with talks starting at noon. Unfortunately no one has signed up for talks and my own talk is still "in progress" (if you define "progress" as "churning around in my head".) We usually have a good last-minute discussion in any case but if someone has an official talk to give then please let us know. -- Rick Westerman westerman at purdue.edu Bioinformatics specialist at the Genomics Facility. Phone: (765) 494-0505 FAX: (765) 496-7255 Department of Horticulture and Landscape Architecture 625 Agriculture Mall Drive West Lafayette, IN 47907-2010 Physically located in room S049, WSLR building From gizmo at purdue.edu Mon Oct 18 07:25:57 2010 From: gizmo at purdue.edu (Joe Kline) Date: Mon, 18 Oct 2010 10:25:57 -0400 Subject: [Purdue-pm] My goodness, PM meeting tomorrow! In-Reply-To: <4CBC566E.7060204@purdue.edu> References: <4CBC566E.7060204@purdue.edu> Message-ID: <4CBC58F5.2060502@purdue.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I'm in Minneapolis/St. Paul for the Big Ten IT conference and won't be making it. joe -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAky8WPUACgkQb0mzA2gRTpnZQACePP5rJ8x+fUcEqt2it2Tdy5L/ uOoAnRA5Zut/4SuHTJxW4ErmoIMdW9o6 =FHVp -----END PGP SIGNATURE----- From jacoby at purdue.edu Mon Oct 18 07:50:50 2010 From: jacoby at purdue.edu (Dave jacoby) Date: Mon, 18 Oct 2010 10:50:50 -0400 Subject: [Purdue-pm] My goodness, PM meeting tomorrow! In-Reply-To: <4CBC58F5.2060502@purdue.edu> References: <4CBC566E.7060204@purdue.edu> <4CBC58F5.2060502@purdue.edu> Message-ID: <4CBC5ECA.7000505@purdue.edu> On 10/18/2010 10:25 AM, Joe Kline wrote: > I'm in Minneapolis/St. Paul for the Big Ten IT conference and won't be > making it. Joe, you spend more time in Minneapolis than almost anyone I know. I could put together a Joe-esque Pull-From-Perl-Blogs presentation, but I don't have anything to present. Much of what I write is either 1) not interesting to discuss or 2) not Perl, and there is much overlap in that venn diagram. -- Dave Jacoby Address: WSLR S049 Code Maker Mail: jacoby at purdue.edu Purdue University Phone: 765.49.67368 From gizmo at purdue.edu Mon Oct 18 10:49:33 2010 From: gizmo at purdue.edu (Joe Kline) Date: Mon, 18 Oct 2010 13:49:33 -0400 Subject: [Purdue-pm] My goodness, PM meeting tomorrow! In-Reply-To: <4CBC5ECA.7000505@purdue.edu> References: <4CBC566E.7060204@purdue.edu> <4CBC58F5.2060502@purdue.edu> <4CBC5ECA.7000505@purdue.edu> Message-ID: <4CBC88AD.6050205@purdue.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 10/18/2010 10:50 AM, Dave jacoby wrote: > On 10/18/2010 10:25 AM, Joe Kline wrote: >> I'm in Minneapolis/St. Paul for the Big Ten IT conference and won't be >> making it. > > Joe, you spend more time in Minneapolis than almost anyone I know. > > I could put together a Joe-esque Pull-From-Perl-Blogs presentation, but > I don't have anything to present. Much of what I write is either 1) not > interesting to discuss or 2) not Perl, and there is much overlap in that > venn diagram. > I like St. Paul. :-) There are a number of places I enjoy visiting here. There are lots of good blog posts in the last week or two. I would suggestion brian d foy's: http://www.effectiveperlprogramming.com/blog/714 Just to start. joe -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAky8iK0ACgkQb0mzA2gRTplUMgCePJdBnVjFoXhCcmenjBLuiO8O KpsAmwQFvQVstf72kqHv8yEWPFyhXUzQ =rbeG -----END PGP SIGNATURE----- From derrick at csociety.org Mon Oct 18 13:42:24 2010 From: derrick at csociety.org (derrick) Date: Mon, 18 Oct 2010 16:42:24 -0400 Subject: [Purdue-pm] My goodness, PM meeting tomorrow! In-Reply-To: <4CBC566E.7060204@purdue.edu> References: <4CBC566E.7060204@purdue.edu> Message-ID: <4CBCB130.1080803@csociety.org> I won't be able to make it this semester, I have a class from 12-1:15pm. I've been thinking about using seleniumrc as a part of an automated testing infrastructure. I need to be able to navigate and enable actions (push buttons, fill out forms) on web pages with java script. If anyone has worked with it in the past, or has other general comments, I'd be interested in hearing. http://seleniumhq.org/docs/05_selenium_rc.html I tried the first simple perl example, had to change the search text in for the command "is_text_present_ok", but it worked on google.com ok. I'll probably play with it more after the semester is over. dsk On 10/18/2010 10:15 AM, Rick Westerman wrote: > Has it been a month already? I just looked on my calendar and noticed > that the PM meeting is tomorrow, Oct 19th, usual 11:30-1:30 in WSLR 116 > with talks starting at noon. Unfortunately no one has signed up for > talks and my own talk is still "in progress" (if you define "progress" > as "churning around in my head".) We usually have a good last-minute > discussion in any case but if someone has an official talk to give then > please let us know. > > From jacoby at purdue.edu Tue Oct 19 12:10:58 2010 From: jacoby at purdue.edu (Dave jacoby) Date: Tue, 19 Oct 2010 15:10:58 -0400 Subject: [Purdue-pm] Meeting Post-Mortem and Challenge Message-ID: <4CBDED42.8070506@purdue.edu> We had a selection of new faces at our Perl Mongers meeting, seeking to learn Perl to understand and adapt the tools they have at hand to their further purpose. Mark and I and mostly Rick went through an example program they had used, RADpools, as a teaching tool, covering many of the basics and some of the advanced elements of our favorite programming language, until we got to line 143. foreach my $mid (@pool_mid_list) { $mid_length = length $mid; if ( !$fuzzy_MIDs ) { push @{ $mid_pools{$mid} }, $pool_name; } else { for my $i ( 1 .. $mid_length ) { for my $base (qw{A C G T}) { my $fuzzycode = $mid; my $prebase_i = $i - 1; my $postbase_i = $mid_length - $i; $fuzzycode =~ s{^([ACGT]{$prebase_i}) ([ACGT]) ([ACGT]{$postbase_i})$} {$1$base$3}xms; push @{ $mid_pools{$fuzzycode} }, $pool_name; } } } } And, actually, the if(!$fuzzy_MIDs){} section is straightforward. The else{} section is ... well, something else. Specifically, it's the kind of regular expression that causes folks like JWZ to say "now you have TWO problems". Rick specifically mentioned that he would not use regular expressions for this problem, and Mark said it was best to ignore my attempts to explain this. (I will point out now that this code is copyright 2008,2010 by John Davey of the University of Edinburgh and is licenced by the GPL v3.) I think that a good challenge for our November meeting would be to come up with variations of the else{} code that are more suitable for Perl 101. Does that sound good to anybody? Also, I have just reserved WSLR116 for next Tuesday from Noon to 2pm to continue the analysis of RADpools. -- Dave Jacoby Address: WSLR S049 Code Maker Mail: jacoby at purdue.edu Purdue University Phone: 765.49.67368 From pmiguel at purdue.edu Tue Oct 19 12:50:23 2010 From: pmiguel at purdue.edu (Phillip San Miguel) Date: Tue, 19 Oct 2010 15:50:23 -0400 Subject: [Purdue-pm] Meeting Post-Mortem and Challenge In-Reply-To: <4CBDED42.8070506@purdue.edu> References: <4CBDED42.8070506@purdue.edu> Message-ID: <4CBDF67F.5050707@purdue.edu> On 10/19/2010 3:10 PM, Dave jacoby wrote: > We had a selection of new faces at our Perl Mongers meeting, seeking > to learn Perl to understand and adapt the tools they have at hand to > their further purpose. Mark and I and mostly Rick went through an > example program they had used, RADpools, as a teaching tool, covering > many of the basics and some of the advanced elements of our favorite > programming language, until we got to line 143. > > foreach my $mid (@pool_mid_list) { > $mid_length = length $mid; > if ( !$fuzzy_MIDs ) { > push @{ $mid_pools{$mid} }, $pool_name; > } > else { > for my $i ( 1 .. $mid_length ) { > for my $base (qw{A C G T}) { > my $fuzzycode = $mid; > my $prebase_i = $i - 1; > my $postbase_i = $mid_length - $i; > $fuzzycode =~ s{^([ACGT]{$prebase_i}) > ([ACGT]) > ([ACGT]{$postbase_i})$} > {$1$base$3}xms; > push @{ $mid_pools{$fuzzycode} }, $pool_name; > } > } > } > } > > And, actually, the if(!$fuzzy_MIDs){} section is straightforward. The > else{} section is ... well, something else. > > Specifically, it's the kind of regular expression that causes folks > like JWZ to say "now you have TWO problems". Rick specifically > mentioned that he would not use regular expressions for this problem, > and Mark said it was best to ignore my attempts to explain this. > > (I will point out now that this code is > copyright 2008,2010 by John Davey of the > University of Edinburgh and > is licenced by the GPL v3.) > > I think that a good challenge for our November meeting would be to > come up with variations of the else{} code that are more suitable for > Perl 101. Does that sound good to anybody? > > Also, I have just reserved WSLR116 for next Tuesday from Noon to 2pm > to continue the analysis of RADpools. > I don't know that regexes are to blame for this. I'm not even sure that the code is *that* unwieldy. I was not there to hear the definition of "fuzzy codes", but the code appears to just iterate over each base of the MID sequence supplied to it and create 4 sequences at each step that have the base at that position replaced with each possible base. So if the MID were "GAC", then 12 sequences would be stored in the mid_pools hash: AAC CAC GAC TAC GAC GCC GGC GTC GAA GAC GAG GAT I think that is what it does. Although my understanding is based more on the biology that would be supported than the code itself. Phillip From westerman at purdue.edu Tue Oct 19 12:56:36 2010 From: westerman at purdue.edu (Rick Westerman) Date: Tue, 19 Oct 2010 15:56:36 -0400 Subject: [Purdue-pm] Meeting Post-Mortem and Challenge In-Reply-To: <4CBDF67F.5050707@purdue.edu> References: <4CBDED42.8070506@purdue.edu> <4CBDF67F.5050707@purdue.edu> Message-ID: <4CBDF7F4.3090802@purdue.edu> On 10/19/2010 03:50 PM, Phillip San Miguel wrote: > On 10/19/2010 3:10 PM, Dave jacoby wrote: >> We had a selection of new faces at our Perl Mongers meeting, seeking >> to learn Perl to understand and adapt the tools they have at hand to >> their further purpose. Mark and I and mostly Rick went through an >> example program they had used, RADpools, as a teaching tool, covering >> many of the basics and some of the advanced elements of our favorite >> programming language, until we got to line 143. >> >> foreach my $mid (@pool_mid_list) { >> $mid_length = length $mid; >> if ( !$fuzzy_MIDs ) { >> push @{ $mid_pools{$mid} }, $pool_name; >> } >> else { >> for my $i ( 1 .. $mid_length ) { >> for my $base (qw{A C G T}) { >> my $fuzzycode = $mid; >> my $prebase_i = $i - 1; >> my $postbase_i = $mid_length - $i; >> $fuzzycode =~ s{^([ACGT]{$prebase_i}) >> ([ACGT]) >> ([ACGT]{$postbase_i})$} >> {$1$base$3}xms; >> push @{ $mid_pools{$fuzzycode} }, >> $pool_name; >> } >> } >> } >> } >> >> And, actually, the if(!$fuzzy_MIDs){} section is straightforward. The >> else{} section is ... well, something else. >> >> Specifically, it's the kind of regular expression that causes folks >> like JWZ to say "now you have TWO problems". Rick specifically >> mentioned that he would not use regular expressions for this problem, >> and Mark said it was best to ignore my attempts to explain this. >> >> (I will point out now that this code is >> copyright 2008,2010 by John Davey of the >> University of Edinburgh and >> is licenced by the GPL v3.) >> >> I think that a good challenge for our November meeting would be to >> come up with variations of the else{} code that are more suitable for >> Perl 101. Does that sound good to anybody? >> >> Also, I have just reserved WSLR116 for next Tuesday from Noon to 2pm >> to continue the analysis of RADpools. >> > I don't know that regexes are to blame for this. I'm not even sure > that the code is *that* unwieldy. I was not there to hear the > definition of "fuzzy codes", but the code appears to just iterate over > each base of the MID sequence supplied to it and create 4 sequences at > each step that have the base at that position replaced with each > possible base. So if the MID were "GAC", then 12 sequences would be > stored in the mid_pools hash: > > AAC > CAC > GAC > TAC > GAC > GCC > GGC > GTC > GAA > GAC > GAG > GAT > > I think that is what it does. Although my understanding is based more > on the biology that would be supported than the code itself. That is my understanding it as well. In which case why regex? Why not use substrings? And even if one wanted to use regexs then why bother capturing the middle portion and then throwing it away? The program up to that point was well written. But that regex seems unnecessarily complex to me. Anyway that portion of the code does make for a good challenge problem. -- -- Rick From gribskov at purdue.edu Wed Oct 20 04:44:22 2010 From: gribskov at purdue.edu (Michael Gribskov) Date: Wed, 20 Oct 2010 07:44:22 -0400 Subject: [Purdue-pm] RADpools Message-ID: <4CBED616.6060606@purdue.edu> Can someone post a link to the complete code? What kind of questions do they have specifically? Are there some new features they want? -- Michael Gribskov Hockmeyer Hall of Structural Biology Purdue University 240 S. Martin Jischke Drive West Lafayette, IN 47907 gribskov at purdue.edu vox: 765.494.6933 fax: 765.496-1189 calendar: http://www.google.com/calendar/embed?src=mgribskov%40gmail.com From pmiguel at purdue.edu Wed Oct 20 04:51:07 2010 From: pmiguel at purdue.edu (Phillip San Miguel) Date: Wed, 20 Oct 2010 07:51:07 -0400 Subject: [Purdue-pm] RADpools In-Reply-To: <4CBED616.6060606@purdue.edu> References: <4CBED616.6060606@purdue.edu> Message-ID: <4CBED7AB.1040504@purdue.edu> On 10/20/2010 7:44 AM, Michael Gribskov wrote: > Can someone post a link to the complete code? > What kind of questions do they have specifically? > Are there some new features they want? > It is the "RADtools" package. Installed on cys: /usr/local/RADtools/ These were students/post docs from Krista Nichols lab. I think they wanted to understand the programs well enough to tinker around with the code. They have run the tools but do not program currently. Phillip From yatcilla at purdue.edu Wed Oct 20 05:34:52 2010 From: yatcilla at purdue.edu (Doug Yatcilla) Date: Wed, 20 Oct 2010 08:34:52 -0400 Subject: [Purdue-pm] RADpools In-Reply-To: <4CBED616.6060606@purdue.edu> References: <4CBED616.6060606@purdue.edu> Message-ID: <20101020123452.GU32125@purdue.edu> On Wed Oct 20 07:44:22 2010, Michael Gribskov wrote: > Can someone post a link to the complete code? > What kind of questions do they have specifically? > Are there some new features they want? https://www.wiki.ed.ac.uk/display/RADSequencing/Home Some people on this list can log into these servers and run the software directly: pro.genomics.purdue.edu ser.genomics.purdue.edu tyr.genomics.purdue.edu val.genomics.purdue.edu cys.genomics.purdue.edu his.genomics.purdue.edu gly.genomics.purdue.edu gln.genomics.purdue.edu -Doug From pmiguel at purdue.edu Wed Oct 20 05:45:58 2010 From: pmiguel at purdue.edu (Phillip San Miguel) Date: Wed, 20 Oct 2010 08:45:58 -0400 Subject: [Purdue-pm] RADpools In-Reply-To: <4CBED7AB.1040504@purdue.edu> References: <4CBED616.6060606@purdue.edu> <4CBED7AB.1040504@purdue.edu> Message-ID: <4CBEE486.6000608@purdue.edu> From the manual: -f, --fuzzy_MIDs If a MID sequence in a read contains an error, the read is usually thrown away. With this option, these reads will be accepted and assigned to the nearest pool. If the MID could be assigned to more than one pool, a new pool is created, named after all the possible pools for the ambiguous MID. "MID", standing for "Multiplex Identifier" is Roche-speak for "bar code". Strangely this code processes Illumina reads. Illumina calls their bar codes "indexes". Not important, though. The code in question (with extra comments): for my $i ( 1 .. $mid_length ) { for my $base (qw{A C G T}) { my $fuzzycode = $mid; my $prebase_i = $i - 1; my $postbase_i = $mid_length - $i; $fuzzycode =~ s{ ^([ACGT]{$prebase_i}) #capture bases, if any, before current base ([ACGT]) #current base ([ACGT]{$postbase_i})$} #capture bases, if any, after current base {$1$base$3}xms; #replace current base with $base push @{ $mid_pools{$fuzzycode} }, $pool_name; } } Actually, I don't see any problem with this code. You might get extra speed using substr() but the number of bar codes (probably no more than 100 or so) is drastically smaller than the number of sequence reads that will be processed (millions, probably). So looking for speed ups in this part of the code are unlikely to yield much. Phillip -------------- next part -------------- An HTML attachment was scrubbed... URL: From westerman at purdue.edu Wed Oct 20 05:59:27 2010 From: westerman at purdue.edu (Rick Westerman) Date: Wed, 20 Oct 2010 08:59:27 -0400 Subject: [Purdue-pm] RADpools In-Reply-To: <4CBEE486.6000608@purdue.edu> References: <4CBED616.6060606@purdue.edu> <4CBED7AB.1040504@purdue.edu> <4CBEE486.6000608@purdue.edu> Message-ID: <4CBEE7AF.2080309@purdue.edu> > The code in question (with extra comments): > > for my $i ( 1 .. $mid_length ) { > for my $base (qw{A C G T}) { > my $fuzzycode = $mid; > my $prebase_i = $i - 1; > my $postbase_i = $mid_length - $i; > $fuzzycode =~ s{ > ^([ACGT]{$prebase_i}) #capture bases, if any, before > current base > ([ACGT]) #current base > ([ACGT]{$postbase_i})$} #capture bases, if any, after > current base > {$1$base$3}xms; #replace current base with $base > push @{ $mid_pools{$fuzzycode} }, $pool_name; > } > } > > Actually, I don't see any problem with this code. Readability is the issue. IMHO, the author is using a sledgehammer when a peen hammer would do. Speedups are not the issue. The following is much more clear ... especially to the the novice Perl programmer who is not that familiar with regexes. for my $i ( 0 .. $mid_length - 1) { for my $base (qw{A C G T}) { my $fuzzycode = $mid; substr($fuzzycode, $i, 1, $base); push @{ $mid_pools{$fuzzycode} }, $pool_name; print "$fuzzycode\n"; } } Explaining substr should be a piece of cake compared to regex captures and replacements. -- Rick Westerman westerman at purdue.edu Bioinformatics specialist at the Genomics Facility. Phone: (765) 494-0505 FAX: (765) 496-7255 Department of Horticulture and Landscape Architecture 625 Agriculture Mall Drive West Lafayette, IN 47907-2010 Physically located in room S049, WSLR building -------------- next part -------------- An HTML attachment was scrubbed... URL: From westerman at purdue.edu Wed Oct 20 06:02:05 2010 From: westerman at purdue.edu (Rick Westerman) Date: Wed, 20 Oct 2010 09:02:05 -0400 Subject: [Purdue-pm] RADpools In-Reply-To: <4CBEE7AF.2080309@purdue.edu> References: <4CBED616.6060606@purdue.edu> <4CBED7AB.1040504@purdue.edu> <4CBEE486.6000608@purdue.edu> <4CBEE7AF.2080309@purdue.edu> Message-ID: <4CBEE84D.70202@purdue.edu> On 10/20/2010 08:59 AM, Rick Westerman wrote: > >> The code in question (with extra comments): >> >> for my $i ( 1 .. $mid_length ) { >> for my $base (qw{A C G T}) { >> my $fuzzycode = $mid; >> my $prebase_i = $i - 1; >> my $postbase_i = $mid_length - $i; >> $fuzzycode =~ s{ >> ^([ACGT]{$prebase_i}) #capture bases, if any, before >> current base >> ([ACGT]) #current base >> ([ACGT]{$postbase_i})$} #capture bases, if any, after >> current base >> {$1$base$3}xms; #replace current base with $base >> push @{ $mid_pools{$fuzzycode} }, $pool_name; >> } >> } >> >> Actually, I don't see any problem with this code. > > Readability is the issue. IMHO, the author is using a sledgehammer > when a peen hammer would do. Speedups are not the issue. The > following is much more clear ... especially to the the novice Perl > programmer who is not that familiar with regexes. > > > for my $i ( 0 .. $mid_length - 1) { > for my $base (qw{A C G T}) { > my $fuzzycode = $mid; > substr($fuzzycode, $i, 1, $base); > push @{ $mid_pools{$fuzzycode} }, $pool_name; > print "$fuzzycode\n"; > } > } > > > Explaining substr should be a piece of cake compared to regex captures > and replacements. And, I hope this is obvious, the extra print statement is my code above was just for verification purposes so that I could make sure that my code did the same as the original regex code. If my code fragment was to be put in the RADpools code then the print statement would, of course, be removed. -- Rick Westerman westerman at purdue.edu Bioinformatics specialist at the Genomics Facility. Phone: (765) 494-0505 FAX: (765) 496-7255 Department of Horticulture and Landscape Architecture 625 Agriculture Mall Drive West Lafayette, IN 47907-2010 Physically located in room S049, WSLR building -------------- next part -------------- An HTML attachment was scrubbed... URL: From pmiguel at purdue.edu Wed Oct 20 06:43:45 2010 From: pmiguel at purdue.edu (Phillip San Miguel) Date: Wed, 20 Oct 2010 09:43:45 -0400 Subject: [Purdue-pm] RADpools In-Reply-To: <4CBEE7AF.2080309@purdue.edu> References: <4CBED616.6060606@purdue.edu> <4CBED7AB.1040504@purdue.edu> <4CBEE486.6000608@purdue.edu> <4CBEE7AF.2080309@purdue.edu> Message-ID: <4CBEF211.9020802@purdue.edu> On 10/20/2010 8:59 AM, Rick Westerman wrote: > >> The code in question (with extra comments): >> >> for my $i ( 1 .. $mid_length ) { >> for my $base (qw{A C G T}) { >> my $fuzzycode = $mid; >> my $prebase_i = $i - 1; >> my $postbase_i = $mid_length - $i; >> $fuzzycode =~ s{ >> ^([ACGT]{$prebase_i}) #capture bases, if any, before >> current base >> ([ACGT]) #current base >> ([ACGT]{$postbase_i})$} #capture bases, if any, after >> current base >> {$1$base$3}xms; #replace current base with $base >> push @{ $mid_pools{$fuzzycode} }, $pool_name; >> } >> } >> >> Actually, I don't see any problem with this code. > > Readability is the issue. IMHO, the author is using a sledgehammer > when a peen hammer would do. Speedups are not the issue. The > following is much more clear ... especially to the the novice Perl > programmer who is not that familiar with regexes. > > > for my $i ( 0 .. $mid_length - 1) { > for my $base (qw{A C G T}) { > my $fuzzycode = $mid; > substr($fuzzycode, $i, 1, $base); > push @{ $mid_pools{$fuzzycode} }, $pool_name; > print "$fuzzycode\n"; > } > } > > > Explaining substr should be a piece of cake compared to regex captures > and replacements. > Your code is more compact. But the original code spoke to me. I could immediately tell what the author intended to do. Your more compact implementation does something very similar to what the original code does, but were I to read it de novo, I doubt I would have any idea what it was doing. Regex captures and replacements are important parts of perl. So they need to be explained sometime. I think you guys are hitting the "I saw a problem and decided to use a regex to solve it, now I have two problems" meme too hard. Unfortunately the meme is funny, which gives it more persistence than it should be allocated. That said, now that I do understand the code, I would go with the more compact form. Phillip -------------- next part -------------- An HTML attachment was scrubbed... URL: From mark at purdue.edu Fri Oct 22 06:14:17 2010 From: mark at purdue.edu (Mark Senn) Date: Fri, 22 Oct 2010 09:14:17 -0400 Subject: [Purdue-pm] Rakudo #34 has been released Message-ID: <14685.1287753257@pier.ecn.purdue.edu> Rakudo Perl 6 compiler development release #34 ("Paris") is available. -mark > Sender: perlpilot at gmail.com > Date: Thu, 21 Oct 2010 20:12:46 -0500 > Subject: Announce: Rakudo Perl 6 compiler development release #34 ("Paris") > From: Jonathan Scott Duff > To: perl6-compiler > > Announce: Rakudo Perl 6 compiler development release #34 ("Paris") > > On behalf of the Rakudo development team, I'm happy to announce the > October 2010 release of Rakudo Perl #34 "Paris". Rakudo is an > implementation of Perl 6 on the Parrot Virtual Machine (see > ). The tarball for the October 2010 release > is available from . > > Please note: This announcement is not for the Rakudo Star distribution -- > it's announcing a new release of the compiler only. For the latest > Rakudo Star release, see . > > The Rakudo Perl compiler follows a monthly release cycle, with each release > named after a Perl Mongers group. The October 2010 release is code named > "Paris", because the of the Perl love at the Open Source Developers > Conference > held in Paris, France earlier in the month. > > Some of the specific changes and improvements occurring with this > release include: > > * we now have a simple version of require > > * the local timezone is available in $*TZ > > * samespace versions of m// and s/// were implemented as ms// and ss/// > respectively. > > * Str.flip is now 100 times faster than it used to be > > * the subroutine version of Str.comb now exists > > * Hyperoperators can now be applied to infix:<+=> and friends. > > * improved diagnostic messages > > For a more detailed list of changes see "docs/ChangeLog". > > The development team thanks all of our contributors and sponsors for > making Rakudo Perl possible, as well as those people who worked on > Parrot, the Perl 6 test suite and the specification. > > The following people contributed to this release: > > Moritz Lenz, Kodi Arfer, Patrick R. Michaud, Bruce Gray, > Carl Masak, Ronald Schmidt, Jonathan Worthington, TimToady, > TimTom, PhatEddy, Patrick Abi Salloum, and your humble release > manager Jonathan Scott Duff. > > If you would like to contribute, see , ask on > the perl6-compiler at perl.org mailing list, or ask on IRC #perl6 on freenode. > > The next release of Rakudo (#35) is scheduled for November 18, 2010. > A list of the other planned release dates and code names for 2010 is > available in the "docs/release_guide.pod" file. In general, Rakudo > development releases are scheduled to occur two days after each > Parrot monthly release. Parrot releases the third Tuesday of each month. > > Have fun! > > -Scott