From jhannah at omnihotels.com Wed Feb 1 12:06:40 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Wed, 1 Feb 2006 14:06:40 -0600 Subject: [Omaha.pm] BioPerl Presentation Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B037AFDB6@exchange2k3.omnihotels.net> Here's the presentation Kiran did last Saturday (original was Powerpoint). I've burned a .pdf for all you Mac users like me :) (PS -- This stuff is way too cool. I read most of my Genetics for Dummies on the plane to LA yesterday. I even understood some of it. -grin-) j -------------- next part -------------- A non-text attachment was scrubbed... Name: BioPerl_Presentaton.pdf Type: application/octet-stream Size: 21218 bytes Desc: BioPerl_Presentaton.pdf Url : http://mail.pm.org/pipermail/omaha-pm/attachments/20060201/df7ebd9d/BioPerl_Presentaton-0001.obj From jhannah at omnihotels.com Wed Feb 1 13:53:23 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Wed, 1 Feb 2006 15:53:23 -0600 Subject: [Omaha.pm] Open Laszlo? Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B037AFDC3@exchange2k3.omnihotels.net> Interesting... This is what HIS is using in their CRS product. Competitor to AJAX? http://en.wikipedia.org/wiki/Open_Laszlo j From jay at jays.net Wed Feb 1 18:52:45 2006 From: jay at jays.net (Jay Hannah) Date: Wed, 01 Feb 2006 20:52:45 -0600 Subject: [Omaha.pm] /AAA|BBB/ Message-ID: <43E173FD.8090007@jays.net> Huh. I'm still learning stuff. :) (1) Here's a quiz for you. What does this print?: foreach (qw(AABBB AAABB AAA BBB AAB AA)) { print "$_ "; print (($_ =~ /AAA|BBB/) ? "yes" : "no"); print "\n"; } (2) What does this print (what does adding parens change)?: foreach (qw(AABBB AAABB AAA BBB AAB AA)) { print "$_ "; print (($_ =~ /(AAA|BBB)/) ? "yes" : "no"); print "\n"; } (3) What does this print? foreach (qw(AABBB AAABB AAA BBB AAB AA)) { print "$_ "; print (($_ =~ /^(AAA|BBB)$/) ? "yes" : "no"); print "\n"; } When I'm looking for an exact match from a list of possibles I've always used syntax 3. I was surprised to see syntax 1 the other day, and didn't think it was doing what the author intended. I was partially right... I guess this kind of stuff is a strong argument for 'use Switch;' -grin- j (1) AABBB yes AAABB yes AAA yes BBB yes AAB no AA no (2) AABBB yes AAABB yes AAA yes BBB yes AAB no AA no (3) AABBB no AAABB no AAA yes BBB yes AAB no AA no From jay at jays.net Wed Feb 1 19:53:50 2006 From: jay at jays.net (Jay Hannah) Date: Wed, 01 Feb 2006 21:53:50 -0600 Subject: [Omaha.pm] Issues regarding project objective 1 In-Reply-To: <43e12480.6d2ad3c6.6735.fffff087@mx.gmail.com> References: <43e12480.6d2ad3c6.6735.fffff087@mx.gmail.com> Message-ID: <43E1824E.2010408@jays.net> Try sending plain text messages to the mailing list. Those HTML emails complete w/ background image will get too big very quickly. -grin- I'm on a plane right now so I can't look up a specific URL for you, but if you go to http://search.cpan.org and search for Bio::Annotation::SimpleValue you should find the documentation for that object. Or, at the command line on your server try perldoc Bio::Annotation::SimpleValue or (less likely) the wiki may have something useful http://bioperl.open-bio.org/wiki/ We've had a death in the family so I'm probably not going to be able to work bioperl this weekend... Hmm, and I don't have access to my schedule right now... I'm probably available next weekend. Man, the turbulence is baaaaad right now. uck. j Dr. Dhundy R. Bastola wrote: > Hi Jay, > > Tried to send this to the list. But sent me back saying it is too big. > Could we please look into this Bio::Annotation::SipleValue object??? > > Thanks > > > - Unprocessed: > > if there was a word match on the species object. The output is > messed up for > the FEATURES? Any suggestion to correct it would be highly appreciated. > > Thanks > > Kiran > > =============================== > Here is part of my script > =============================== > my $outFName= $searchfor.'.gb'; > my $outfile = Bio::SeqIO->new(-file => ">$outFName", -format => > 'GenBank'); > foreach (@file_names) > { > my $infile = Bio::SeqIO->new(-file => "$_", -format => 'GenBank'); > > while (my $seq = $infile->next_seq()) > { > my $species = $seq->species; > if (grep /$searchfor/i, $species->classification) > { > $outfile->write_seq($seq); > } > } > } > ====================================== > > - Ignored: > Here is an example of input file > ======================================= > > LOCUS AB005258 332 bp RNA linear VRL > 22-JUL-1997 > DEFINITION Enterovirus 70 genomic RNA for polyprotein, partial cds. > ACCESSION AB005258 > VERSION AB005258.1 GI:2274781 > KEYWORDS polyprotein. > SOURCE Human enterovirus 70 > ORGANISM Human enterovirus 70 > Viruses; ssRNA positive-strand viruses, no DNA stage; > Picornaviridae; Enterovirus. > REFERENCE 1 (bases 1 to 332) > AUTHORS Uchio,E., Yamazaki,K., Aoki,K. and Ohno,S. > TITLE Detection of enterovirus 70 by polymerase chain reaction in acute > hemorrhagic conjunctivitis > JOURNAL Am. J. Ophthalmol. 122 (2), 273-275 (1996) > PUBMED 8694103 > REFERENCE 2 (bases 1 to 332) > AUTHORS Yamazaki,K. > TITLE Direct Submission > JOURNAL Submitted (26-FEB-1997) Kenji Yamazaki, Osaka Prefectural > Institute > of Public Health, Laboratory of Virology; Nakamichi 1-chome > Higashinari-ku, Osaka, Osaka 537, Japan > (E-mail:knyamaza at iph.pref.osaka.jp, Tel:06-972-1321(ex.278), > Fax:06-972-2393) > > FEATURES Location/Qualifiers > source 1..332 > /organism="Human enterovirus 70" > /mol_type="genomic RNA" > /isolate="EV70/MNC9/94/Japan" > /db_xref="taxon:12090" > /dev_stage="acutely infected" > CDS <1..>332 > /codon_start=3 > /product="polyprotein" > /protein_id="BAA21543.1" > /db_xref="GI:2274782" > /translation="CMRSFEYKNHSTSTSSIQKNFFIWTLNTRELVQIRRKMELFTYL > RFDTEITIVPTLRLFSSSNVSFSGLPNLTLQAMYVPVGAPKPSSQDSFEWQSACNPSV > FFKINDPP" > ================================== > Here is an example of output file > ================================== > LOCUS AB005258 332 bp RNA linear VRL > 22-JUL-1997 > DEFINITION Enterovirus 70 genomic RNA for polyprotein, partial cds. > ACCESSION AB005258 > VERSION AB005258.1 GI:2274781 > KEYWORDS polyprotein. > SOURCE Human enterovirus 70 > ORGANISM Enterovirus Human enterovirus 70 > Viruses; ssRNA positive-strand viruses, no DNA stage; > Picornaviridae; Enterovirus. > REFERENCE 1 (bases 1 to 332) > AUTHORS Uchio,E., Yamazaki,K., Aoki,K. and Ohno,S. > TITLE Detection of enterovirus 70 by polymerase chain reaction in > acute > hemorrhagic conjunctivitis > JOURNAL Am. J. Ophthalmol. 122 (2), 273-275 (1996) > PUBMED 8694103 > REFERENCE 2 (bases 1 to 332) > AUTHORS Yamazaki,K. > TITLE Direct Submission > JOURNAL Submitted (26-FEB-1997) Kenji Yamazaki, Osaka Prefectural > Institute of Public Health, Laboratory of Virology; > Nakamichi > 1-chome Higashinari-ku, Osaka, Osaka 537, Japan > (E-mail:knyamaza at iph.pref.osaka.jp, Tel:06-972-1321(ex.278), > Fax:06-972-2393) > FEATURES Location/Qualifiers > source 1..332 > /db_xref="Bio::Annotation::SimpleValue=HASH(0x8707e84)" > /mol_type="Bio::Annotation::SimpleValue=HASH(0x8702c0c)" > /isolate="Bio::Annotation::SimpleValue=HASH(0x870b05c)" > /dev_stage="Bio::Annotation::SimpleValue=HASH(0x86f9a84)" > /organism="Bio::Annotation::SimpleValue=HASH(0x877ce5c)" > CDS <1..>332 > /db_xref="Bio::Annotation::SimpleValue=HASH(0x86f5fec)" > /codon_start=Bio::Annotation::SimpleValue=HASH(0x8702c48) > /protein_id="Bio::Annotation::SimpleValue=HASH(0x8705ea8)" > /translation="Bio::Annotation::SimpleValue=HASH(0x870de5c) > /product="Bio::Annotation::SimpleValue=HASH(0x87080dc)" > BASE COUNT 100 a 74 c 60 g 98 t > > > //Dr. Dhundy R. Bastola// > //Assistant Professor// > //Department of Pediatrics// > //University of Nebraska Medical Center// > //Omaha//// NE 68198// > //E-mail: ////dbastola at unmc.edu// > //Phone: (402) 559-7720// From andy at petdance.com Wed Feb 1 21:23:07 2006 From: andy at petdance.com (Andy Lester) Date: Wed, 1 Feb 2006 21:23:07 -0800 Subject: [Omaha.pm] /AAA|BBB/ In-Reply-To: <43E173FD.8090007@jays.net> References: <43E173FD.8090007@jays.net> Message-ID: <41AB07CD-9B28-4645-977B-7E8D9C3FFDC4@petdance.com> > > (2) What does this print (what does adding parens change)?: Adding parens doesn't change anything as far as what matches or doesn't. It only captures the match. -- Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance From pbaker at omnihotels.com Thu Feb 2 06:36:04 2006 From: pbaker at omnihotels.com (Sean Baker) Date: Thu, 2 Feb 2006 08:36:04 -0600 Subject: [Omaha.pm] /AAA|BBB/ Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B037961DC@exchange2k3.omnihotels.net> "...I guess this kind of stuff is a strong argument for 'use Switch;' -grin-"... Switch is a pain with the debugger and .perldb. It re-interprets your code (replacing the Switch statements with if's I guess) and shifts all of the line numbers so your break points don't work. It is a good thought, but if you're in the debugger a lot it is more pain than it is worth. From scott.l.miller at gmail.com Thu Feb 2 07:30:00 2006 From: scott.l.miller at gmail.com (Scott Miller) Date: Thu, 2 Feb 2006 09:30:00 -0600 Subject: [Omaha.pm] /AAA|BBB/ In-Reply-To: <29AB736ABCE5C745ABF9C93B02F2C27B037961DC@exchange2k3.omnihotels.net> References: <29AB736ABCE5C745ABF9C93B02F2C27B037961DC@exchange2k3.omnihotels.net> Message-ID: <2446f92b0602020730yf509076p4716cc594df9181c@mail.gmail.com> There are more arguments against using switch. The switch module is a "source filter" which means that it changes the syntax of perl, and as a result royally screws up the debugger and can introduce bugs that are very difficult to find. Here is a linkto one node on Perl Monks that discusses some of the draw backs to switch.pm. Here is a linkto an alternative module without those problems. -Scott On 2/2/06, Sean Baker wrote: > > > "...I guess this kind of stuff is a strong argument for 'use Switch;' > -grin-"... > > Switch is a pain with the debugger and .perldb. It re-interprets your > code (replacing the Switch statements with if's I guess) and shifts all > of the line numbers so your break points don't work. It is a good > thought, but if you're in the debugger a lot it is more pain than it is > worth. > _______________________________________________ > Omaha-pm mailing list > Omaha-pm at pm.org > http://mail.pm.org/mailman/listinfo/omaha-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/omaha-pm/attachments/20060202/d8a139c0/attachment.html From jay at jays.net Thu Feb 2 08:25:41 2006 From: jay at jays.net (Jay Hannah) Date: Thu, 02 Feb 2006 10:25:41 -0600 Subject: [Omaha.pm] /AAA|BBB/ In-Reply-To: <41AB07CD-9B28-4645-977B-7E8D9C3FFDC4@petdance.com> References: <43E173FD.8090007@jays.net> <41AB07CD-9B28-4645-977B-7E8D9C3FFDC4@petdance.com> Message-ID: <43E23285.1030806@jays.net> Andy Lester wrote: >>(2) What does this print (what does adding parens change)?: > > Adding parens doesn't change anything as far as what matches or > doesn't. It only captures the match. Sure it does, sometimes. Parens allow for multi-character control of the | character while matching. That's why I always use them. $ cat j.pl foreach (qw(AAXXBB AAYBB AAXYBB AAYBB AYBB)) { printf("%-7s", $_); print (($_ =~ /^AA(XX|Y)BB$/) ? "yes " : "no "); print (($_ =~ /^AAXX|YBB$/) ? "yes " : "no "); print "\n"; } $ perl j.pl AAXXBB yes yes AAYBB yes yes AAXYBB no yes AAYBB yes yes AYBB no yes j From andy at petdance.com Thu Feb 2 10:27:46 2006 From: andy at petdance.com (Andy Lester) Date: Thu, 2 Feb 2006 10:27:46 -0800 Subject: [Omaha.pm] /AAA|BBB/ In-Reply-To: <43E23285.1030806@jays.net> References: <43E173FD.8090007@jays.net> <41AB07CD-9B28-4645-977B-7E8D9C3FFDC4@petdance.com> <43E23285.1030806@jays.net> Message-ID: On Feb 2, 2006, at 8:25 AM, Jay Hannah wrote: > Andy Lester wrote: >>> (2) What does this print (what does adding parens change)?: >> >> Adding parens doesn't change anything as far as what matches or >> doesn't. It only captures the match. > > Sure it does, sometimes. Parens allow for multi-character control > of the | character while matching. That's why I always use them. I meant in the two examples given, of /AAA|BBB/ and /(AAA|BBB)/ -- Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance From robert.fulkerson at gmail.com Thu Feb 2 11:06:31 2006 From: robert.fulkerson at gmail.com (Robert A. Fulkerson) Date: Thu, 2 Feb 2006 13:06:31 -0600 Subject: [Omaha.pm] /AAA|BBB/ In-Reply-To: <43E23285.1030806@jays.net> References: <43E173FD.8090007@jays.net> <41AB07CD-9B28-4645-977B-7E8D9C3FFDC4@petdance.com> <43E23285.1030806@jays.net> Message-ID: <6cb6eebc0602021106u3444864biaba4bafc941cf1ae@mail.gmail.com> Of course, if you're not going to use backreferencing ($1, $2, etc) with those parens, you'll probably want to turn off the backreferencing with ?: inside the parens; no need to create backreferences if you're not going to use 'em: foreach (qw(AAXXBB AAYBB AAXYBB AAYBB AYBB)) { > printf("%-7s", $_); > print (($_ =~ /^AA(XX|Y)BB$/) ? "yes " : "no "); > print (($_ =~ /^AAXX|YBB$/) ? "yes " : "no "); > print "\n"; > } > > $ perl j.pl > AAXXBB yes yes > AAYBB yes yes > AAXYBB no yes > AAYBB yes yes > AYBB no yes $ cat x.pl foreach (qw(AAXXBB AAYBB AAXYBB AAYBB AYBB)) { printf("%-7s", $_); print (($_ =~ /^AA(?:XX|Y)BB$/) ? "yes " : "no "); print (($_ =~ /^AAXX|YBB$/) ? "yes " : "no "); print "\n"; } AAXXBB yes yes AAYBB yes yes AAXYBB no yes AAYBB yes yes AYBB no yes -- b -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/omaha-pm/attachments/20060202/5c336f14/attachment.html From andy at petdance.com Thu Feb 2 11:19:37 2006 From: andy at petdance.com (Andy Lester) Date: Thu, 2 Feb 2006 11:19:37 -0800 Subject: [Omaha.pm] /AAA|BBB/ In-Reply-To: <6cb6eebc0602021106u3444864biaba4bafc941cf1ae@mail.gmail.com> References: <43E173FD.8090007@jays.net> <41AB07CD-9B28-4645-977B-7E8D9C3FFDC4@petdance.com> <43E23285.1030806@jays.net> <6cb6eebc0602021106u3444864biaba4bafc941cf1ae@mail.gmail.com> Message-ID: <361A5252-CB4D-4045-B882-D96FF2D51E86@petdance.com> On Feb 2, 2006, at 11:06 AM, Robert A. Fulkerson wrote: > Of course, if you're not going to use backreferencing ($1, $2, etc) > with those parens, you'll probably want to turn off the > backreferencing with ?: inside the parens; no need to create > backreferences if you're not going to use 'em: Except that it makes it easier to read with having less stuff for humans to parse. -- Andy Lester => andy at petdance.com => www.petdance.com => AIM:petdance From jhannah at omnihotels.com Thu Feb 2 11:48:14 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Thu, 2 Feb 2006 13:48:14 -0600 Subject: [Omaha.pm] Open Laszlo? Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B044326F2@exchange2k3.omnihotels.net> > http://en.wikipedia.org/wiki/Open_Laszlo Pretty neat demos: http://www.openlaszlo.org/ Works better in Firefox than IE :) j From dan at linder.org Thu Feb 2 12:32:00 2006 From: dan at linder.org (Daniel Linder) Date: Thu, 2 Feb 2006 14:32:00 -0600 (CST) Subject: [Omaha.pm] Open Laszlo? In-Reply-To: <29AB736ABCE5C745ABF9C93B02F2C27B044326F2@exchange2k3.omnihotels.net> References: <29AB736ABCE5C745ABF9C93B02F2C27B044326F2@exchange2k3.omnihotels.net> Message-ID: <45216.68.13.86.85.1138912320.squirrel@mail.linder.org> On Thu, February 2, 2006 13:48, Jay Hannah wrote: > Pretty neat demos: > http://www.openlaszlo.org/ > > Works better in Firefox than IE :) Odd...? Firefox under Linux just pulls up a new window with the "Transferring data from www.laszlosystems.com..." forever. Does this work for anyone else in Linux? Dan - - - - "Wait for that wisest of all counselors, time." -- Pericles "I do not fear computers, I fear the lack of them." -- Isaac Asimov GPG fingerprint:6FFD DB94 7B96 0FD8 EADF 2EE0 B2B0 CC47 4FDE 9B68 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/omaha-pm/attachments/20060202/4a251172/attachment.html From jay at jays.net Thu Feb 2 13:01:32 2006 From: jay at jays.net (Jay Hannah) Date: Thu, 02 Feb 2006 15:01:32 -0600 Subject: [Omaha.pm] /AAA|BBB/ In-Reply-To: References: <43E173FD.8090007@jays.net> <41AB07CD-9B28-4645-977B-7E8D9C3FFDC4@petdance.com> <43E23285.1030806@jays.net> Message-ID: <43E2732C.7030605@jays.net> >>>>(2) What does this print (what does adding parens change)?: >>> >>>Adding parens doesn't change anything as far as what matches or >>>doesn't. It only captures the match. >> >>Sure it does, sometimes. Parens allow for multi-character control >>of the | character while matching. That's why I always use them. > > I meant in the two examples given, of /AAA|BBB/ and /(AAA|BBB)/ Ya. But I'm not smart enough to remember that I need to remember parens sometimes, so years ago I just started using /^(xxx|yyy)$/ for all my switch-esque operations, just to be safe. I'm certainly too lazy to remember /^(?:xxx|yyy)$/ ... I think. Yup, I'm probably too lazy to remember that. Grin, j From jay at jays.net Sun Feb 5 09:14:56 2006 From: jay at jays.net (Jay Hannah) Date: Sun, 05 Feb 2006 11:14:56 -0600 Subject: [Omaha.pm] [pm_groups] Perl Mongers map via Google Maps API In-Reply-To: References: <43DCDDC0.1000905@jays.net> Message-ID: <43E63290.90204@jays.net> Daniel Allen wrote: > Thank you jay; very cool. And thanks to all of the pm.org volunteers > for your great work! Thanks! > You might want to add text at the bottom of the map page that the data > is only as good as the .xml provided by group leaders, and what to do > if their group is incorrect (presumably they should tell their group > leader to mail the coordinates to you?)... Done. The map is now linked up all over the site -- if you click the map a couple times you end up on the Google map. :) I also updated Omaha.pm's lat/long to be on top of the exact building where we're meeting now, just in case anyone is solely using their GPSr to find our meetings. :) Thanks, j Omaha.pm Group leaders FAQ: http://groups.pm.org/faq.html From jay at jays.net Sun Feb 5 10:11:32 2006 From: jay at jays.net (Jay Hannah) Date: Sun, 05 Feb 2006 12:11:32 -0600 Subject: [Omaha.pm] [Fwd: Re: Gedcom.pm - searching for a path from person A to person X?] Message-ID: <43E63FD4.8000505@jays.net> Paul's reply... j -------- Original Message -------- Subject: Re: Gedcom.pm - searching for a path from person A to person X? Date: Mon, 23 Jan 2006 17:43:19 +0100 From: Paul Johnson To: Jay Hannah CC: Omaha Perl Mongers References: On Sat, Nov 26, 2005 at 12:52:27PM -0600, Jay Hannah wrote: > Hi Paul -- Hello Jay (and omaha.pm), First, my apologies for a delayed reply. > I've got a little over 4000 people in my GEDCOM > > http://jays.net/genealogy/ That's pretty impressive. I wish I had that much information, but I spend too much time hacking Gedcom.pm and too little time actually researching. > I'm also a Perl hacker, and was playing with your Gedcom.pm and > wondering if you have any logic to find paths from arbitrary points in > GEDCOMs to other arbitrary points. > > Something like > > The path from INDI 0012 to INDI 1077: > > Start: INDI 0012 > Father: INDI 0078 > Mother: INDI 1032 > Married: INDI 1999 > Daughter: INDI 1066 > Married: INDI 0887 > Son: INDI 1077 > > Once you found the path, of course, you could make it as pretty as you > wanted to, Names, dates, etc. > > Does such a thing exist? Im not sure whether anyone has written such a thing directly in Perl, but I do know of a lifelines script called "relation" that does (mostly) what you are after. This script can be translated into Perl using lines2perl which is a part of the Gedcom.pm release. I've reproduced the script below. (It required a small change to lines2perl.) You can run this directly, or use it to learn from. The original script is after __END__. The Perl is not wonderful, but I don't think it's too bad for an automatic translation. As an aside, lifelines has some really nice reports. For the most part, lines2perl will translate them into Perl for you. (There might be problems with some of the newer ones if they use new features I haven't implemented yet.) See http://lifelines.sourceforge.net/ and ftp://ftp.cac.psu.edu/pub/genealogy/lines/reports/ Let me know if you run into any problems. > If not, do you have any thoughts about how I > might right it? Any interest in this being a plugin to Gedcom.pm? > Gedcom::Search or something? If you'd like to write some general method for this I'd be very happy to include it, either within the distribution or by providing some sort of plugin support. If you do this, you might like to subscribe to the mailing list (details in the README) to keep us informed. Thanks! #!/usr/local/bin/perl -w # This program was generated by lines2perl, which is part of Gedcom.pm. # Gedcom.pm is Copyright 1999-2005, Paul Johnson (pjcj at cpan.org) # Version 1.1502 - 20th December 2005 # Gedcom.pm is free. It is licensed under the same terms as Perl itself. # The latest version of Gedcom.pm should be available from my homepage: # http://www.pjcj.net use strict; require 5.005; use diagnostics; use integer; use Getopt::Long; use Gedcom::LifeLines 1.1502; my $Ged; # Gedcom object my %Opts; # options my $_Traverse_sub; # subroutine for traverse sub out { print STDERR @_ unless $Opts{quiet} } sub outf { printf STDERR @_ unless $Opts{quiet} } sub initialise () { die "usage: $0 -gedcom_file file.ged\n" unless GetOptions(\%Opts, "gedcom_file=s", "quiet!", "validate!", ) and defined $Opts{gedcom_file}; local $SIG{__WARN__} = sub { out "\n at _" }; out "reading..."; $Ged = Gedcom->new ( gedcom_file => $Opts{gedcom_file}, callback => sub { out "." } ); if ($Opts{validate}) { out "\nvalidating..."; my %x; my $vcb = sub { my ($r) = @_; my $t = $r->{xref}; out "." if $t && !$x{$t}++; }; $Ged->validate($vcb); } out "\n"; set_ged($Ged); } $SIG{__WARN__} = sub { out $_[0] unless $_[0] =~ /^Use of uninitialized value/ }; # /* # relation - a LifeLines relation computing program # by Jim Eggert (eggertj at atc.ll.mit.edu) # Version 1, 21 November 1992 # Version 2, 23 November 1992 (completely revamped) # Version 3, (changed format slightly, modified code somewhat) # Version 4, 6 July 1993 (added English language) # Version 5, 6 September 1993 (generified language) # # This program calculates the relationship between individuals in a # database. It does so in three modes. Mode 1 just does one pair of # individuals and then exits. Mode 2 does any number of pairs with a # common "from" person. Mode 3 does all pairs with a common "from" # person. In general, mode 1 is fastest for simple relationships, but # if you want one complicated relationship, you may as well do them all. # # Each computed relation is composed of the minimal combination of # parent (fm), sibling (bsS), child (zdC), and spouse (hw) giving the # relational path from the "from" person to the "to" person. Each # incremental relationship (or hop) is coded as follows, with the # capital letters denoting a person of unknown gender: # father f # mother m # parent P (not used) # brother b # sister s # sibling S # son z (sorry) # daughtr d # child C # husband h # wife w # spouse O (sorry again, but usually not possible) # # The report gives the steps required to go from the first person to # the second person. Thus the printout # I93 John JONES fmshwz I95 Fred SMITH # means that John Jones' father's mother's sister's husband's wife's son # is Fred Smith. Notice in this case, the sister's husband's wife is # not the same as the sister, and the husband's wife's son is not the # same as the husband's son. Thus in more understandable English, John # Jones' paternal grandmother's sister's husband's wife's son from # another marriage is Fred Smith. # # The program will do a trivial parsing of the path string. You can # change the language_table to have it print in different languages, as # long as the word order is unchanged. # # If there is no relation, the program says so. That at least should be # easy to explain. Mode 3 only prints out those individuals who are # related to the "from" individual. # */ my $plist; my $hlist; my $mark; my $keys; my $found; my $do_names; my $language; my $language_table; my $token; my $untoken; sub include ($$$$$) { my($person, $hops, $keypath, $path, $pathend) = @_; my $and; my $entry; my $eq; my $pkey; if (($person && ($found == 0))) { $pkey = &key($person); if ($entry = $mark->{$pkey}) { if ((&strcmp($entry, "is not related to") == 0)) { $found = 1; $plist = []; $hlist = []; $mark->{&save($pkey)} = &save(&concat($path, $pathend)); $keys->{&save($pkey)} = &save(&concat(&concat($keypath, "@"), $pkey)); } } else { push @$plist, &save($pkey); push @$hlist, $hops; $mark->{&save($pkey)} = &save(&concat($path, $pathend)); $keys->{&save($pkey)} = &save(&concat(&concat($keypath, "@"), $pkey)); } } undef } sub get_token ($) { my($input) = @_; my $eq; my $first_delim; my $not; # /* Parse a token from the input string. # Tokens are separated by one or more "@"s. # Set global parameter token to the first token string. # Set global parameter untoken to the rest of the string after first token. # */ # /* strip leading @s */ # $untoken = &save($input); $first_delim = &index($untoken, "@", 1); LOOP: while (($first_delim == 1)) { $untoken = &save(&substring($untoken, 2, &strlen($untoken))); $first_delim = &index($untoken, "@", 1); } # /* get token and untoken */ # if ((! $first_delim)) { $token = &save($untoken); $untoken = &save(""); } else { $token = &save(&substring($untoken, 1, ($first_delim - 1))); $untoken = &save(&substring($untoken, ($first_delim + 1), &strlen($untoken))); } undef } sub parse_relation ($$) { my($relation, $keypath) = @_; my $charcounter; my $le; my $not; my $strlen; if ((! $language)) { display " "; display $relation; if ($do_names) { $untoken = $keypath; display &get_token($untoken); LOOP: while (&strlen($untoken)) { display &get_token($untoken); display " "; display $token; display " "; display &name(&indi($token)); } } display " "; } else { $charcounter = 1; $untoken = $keypath; display &get_token($untoken); LOOP: while (($charcounter <= &strlen($relation))) { display $language_table->{&substring($relation, $charcounter, $charcounter)}; if ($do_names) { display &get_token($untoken); display " "; display $token; display " "; display &name(&indi($token)); } $charcounter = ($charcounter + 1); } display " is "; } undef } sub main () { my $child; my $cnum; my $eq; my $fam; my $female; my $from_key; my $from_person; my $hopcount; my $keypath; my $male; my $mode; my $ne; my $num; my $path; my $pathend; my $person; my $pkey; my $pnum; my $prev_hopcount; my $spouse; my $strcmp; my $to_key; my $to_person; my $want_another; $mark = {}; $keys = {}; $plist = []; $hlist = []; $language_table = {}; $language_table->{"f"} = "'s father"; $language_table->{"m"} = "'s mother"; $language_table->{"P"} = "'s parent"; $language_table->{"b"} = "'s brother"; $language_table->{"s"} = "'s sister"; $language_table->{"S"} = "'s sibling"; $language_table->{"z"} = "'s son"; $language_table->{"d"} = "'s daughter"; $language_table->{"C"} = "'s child"; $language_table->{"h"} = "'s husband"; $language_table->{"w"} = "'s wife"; $language_table->{"O"} = "'s spouse"; display &getindimsg($from_person, "Enter person to compute relation from:"); $from_key = &save(&key($from_person)); $hopcount = 0; $prev_hopcount = (- 1); $found = 0; display &include($from_person, $hopcount, "", "", ""); display &getintmsg($mode, "Enter 1 for a single relation, 2 for several, 3 for all:"); display &getintmsg($language, "Enter 0 for brief, 1 for English-language relationships:"); display &getintmsg($do_names, "Enter 0 to omit, 1 to output names of all intervening relatives:"); if (($mode == 1)) { display &getindimsg($to_person, "Enter one person to compute relation to:"); $to_key = &save(&key($to_person)); if (&strcmp($from_key, $to_key)) { $mark->{$to_key} = "is not related to"; } else { $plist = []; $hlist = []; } } LOOP: while ($pkey = (shift @$plist)) { $person = &indi($pkey); $hopcount = (shift @$hlist); $path = $mark->{$pkey}; $keypath = $keys->{$pkey}; if (($hopcount != $prev_hopcount)) { display &print("."); $prev_hopcount = $hopcount; } $hopcount = ($hopcount + 1); display &include(&father($person), $hopcount, $keypath, $path, "f"); display &include(&mother($person), $hopcount, $keypath, $path, "m"); $cnum = 0; LOOP: for $child ( do { my $e = &parents($person); $e ? $e->children : ()} ) { $cnum++; if (&male($child)) { $pathend = "b"; } elsif (&female($child)) { $pathend = "s"; } else { $pathend = "S"; } display &include($child, $hopcount, $keypath, $path, $pathend); } $pnum = 0; LOOP: for $fam ($person->fams) { for $spouse ($fam->parents || undef) { next if $spouse && $spouse->xref eq $person->xref; $pnum++; if (&male($spouse)) { $pathend = "h"; } elsif (&female($spouse)) { $pathend = "w"; } else { $pathend = "O"; } display &include($spouse, $hopcount, $keypath, $path, $pathend); $cnum = 0; LOOP: for $child ( do { my $e = $fam; $e ? $e->children : ()} ) { $cnum++; if (&male($child)) { $pathend = "z"; } elsif (&female($child)) { $pathend = "d"; } else { $pathend = "C"; } display &include($child, $hopcount, $keypath, $path, $pathend); } } } } if (($mode == 1)) { display $from_key; display " "; display &name(&indi($from_key)); display &parse_relation(&save($mark->{$to_key}), $keys->{$to_key}); display $to_key; display " "; display &name(&indi($to_key)); display "\n"; } if (($mode == 2)) { $want_another = 1; LOOP: while ($want_another) { display &getindimsg($to_person, "Enter person to compute relation to:"); $to_key = &save(&key($to_person)); display $from_key; display " "; display &name(&indi($from_key)); if ($path = $mark->{$to_key}) { display &parse_relation(&save($path), $keys->{$to_key}); } else { display " is not related to "; } display $to_key; display " "; display &name($to_person); display "\n"; display &getintmsg($want_another, "Enter 0 if done, 1 if you want another to person:"); } } if (($mode == 3)) { display $from_key; display " "; display &name(&indi($from_key)); display " --->\n"; $num = 0; LOOP: for $to_person ($Ged->individuals) { $num++; $to_key = &save(&key($to_person)); if ($path = $mark->{$to_key}) { display &parse_relation(&save($path), $keys->{$to_key}); display $to_key; display " "; display &name($to_person); display "\n"; } } } undef } initialise(); main(); flush(); 0 __END__ Original LifeLines program follows: /* relation - a LifeLines relation computing program by Jim Eggert (eggertj at atc.ll.mit.edu) Version 1, 21 November 1992 Version 2, 23 November 1992 (completely revamped) Version 3, (changed format slightly, modified code somewhat) Version 4, 6 July 1993 (added English language) Version 5, 6 September 1993 (generified language) This program calculates the relationship between individuals in a database. It does so in three modes. Mode 1 just does one pair of individuals and then exits. Mode 2 does any number of pairs with a common "from" person. Mode 3 does all pairs with a common "from" person. In general, mode 1 is fastest for simple relationships, but if you want one complicated relationship, you may as well do them all. Each computed relation is composed of the minimal combination of parent (fm), sibling (bsS), child (zdC), and spouse (hw) giving the relational path from the "from" person to the "to" person. Each incremental relationship (or hop) is coded as follows, with the capital letters denoting a person of unknown gender: father f mother m parent P (not used) brother b sister s sibling S son z (sorry) daughtr d child C husband h wife w spouse O (sorry again, but usually not possible) The report gives the steps required to go from the first person to the second person. Thus the printout I93 John JONES fmshwz I95 Fred SMITH means that John Jones' father's mother's sister's husband's wife's son is Fred Smith. Notice in this case, the sister's husband's wife is not the same as the sister, and the husband's wife's son is not the same as the husband's son. Thus in more understandable English, John Jones' paternal grandmother's sister's husband's wife's son from another marriage is Fred Smith. The program will do a trivial parsing of the path string. You can change the language_table to have it print in different languages, as long as the word order is unchanged. If there is no relation, the program says so. That at least should be easy to explain. Mode 3 only prints out those individuals who are related to the "from" individual. */ global(plist) global(hlist) global(mark) global(keys) global(found) global(do_names) global(language) global(language_table) global(token) global(untoken) proc include(person,hops,keypath,path,pathend) { if (and(person,eq(found,0))) { set(pkey,key(person)) if (entry,lookup(mark,pkey)) { if (eq(strcmp(entry,"is not related to"),0)) { set(found,1) list(plist) list(hlist) insert(mark,save(pkey),save(concat(path,pathend))) insert(keys,save(pkey),save(concat(concat(keypath,"@"),pkey))) } } else { enqueue(plist,save(pkey)) enqueue(hlist,hops) insert(mark,save(pkey),save(concat(path,pathend))) insert(keys,save(pkey),save(concat(concat(keypath,"@"),pkey))) } } } proc get_token(input) { /* Parse a token from the input string. Tokens are separated by one or more "@"s. Set global parameter token to the first token string. Set global parameter untoken to the rest of the string after first token. */ /* strip leading @s */ set(untoken,save(input)) set(first_delim,index(untoken,"@",1)) while (eq(first_delim,1)) { set(untoken,save(substring(untoken,2,strlen(untoken)))) set(first_delim,index(untoken,"@",1)) } /* get token and untoken */ if (not(first_delim)) { set(token,save(untoken)) set(untoken,save("")) } else { set(token,save(substring(untoken,1,sub(first_delim,1)))) set(untoken,save( substring(untoken,add(first_delim,1),strlen(untoken)))) } } proc parse_relation(relation,keypath) { if (not(language)) { " " relation if (do_names) { set(untoken,keypath) call get_token(untoken) while(strlen(untoken)) { call get_token(untoken) " " token " " name(indi(token)) } } " " } else { set(charcounter,1) set(untoken,keypath) call get_token(untoken) while (le(charcounter,strlen(relation))) { lookup(language_table,substring(relation,charcounter,charcounter)) if (do_names) { call get_token(untoken) " " token " " name(indi(token)) } set(charcounter,add(charcounter,1)) } " is " } } proc main () { table(mark) table(keys) list(plist) list(hlist) table(language_table) insert(language_table,"f","'s father") insert(language_table,"m","'s mother") insert(language_table,"P","'s parent") insert(language_table,"b","'s brother") insert(language_table,"s","'s sister") insert(language_table,"S","'s sibling") insert(language_table,"z","'s son") insert(language_table,"d","'s daughter") insert(language_table,"C","'s child") insert(language_table,"h","'s husband") insert(language_table,"w","'s wife") insert(language_table,"O","'s spouse") getindimsg(from_person, "Enter person to compute relation from:") set(from_key,save(key(from_person))) set(hopcount,0) set(prev_hopcount,neg(1)) set(found,0) call include(from_person,hopcount,"","","") getintmsg(mode,"Enter 1 for a single relation, 2 for several, 3 for all:") getintmsg(language, "Enter 0 for brief, 1 for English-language relationships:") getintmsg(do_names, "Enter 0 to omit, 1 to output names of all intervening relatives:") if (eq(mode,1)) { getindimsg(to_person, "Enter one person to compute relation to:") set(to_key,save(key(to_person))) if (strcmp(from_key,to_key)) { insert(mark,to_key,"is not related to") } else { list(plist) list(hlist) } } while (pkey,dequeue(plist)) { set(person,indi(pkey)) set(hopcount,dequeue(hlist)) set(path,lookup(mark,pkey)) set(keypath,lookup(keys,pkey)) if (ne(hopcount,prev_hopcount)) { print(".") set(prev_hopcount,hopcount) } set(hopcount,add(hopcount,1)) call include(father(person),hopcount,keypath,path,"f") call include(mother(person),hopcount,keypath,path,"m") children(parents(person),child,cnum) { if (male(child)) { set(pathend,"b") } elsif (female(child)) { set(pathend,"s") } else { set(pathend,"S") } call include(child,hopcount,keypath,path,pathend) } families(person,fam,spouse,pnum) { if (male(spouse)) { set(pathend,"h") } elsif (female(spouse)) { set(pathend,"w") } else { set(pathend,"O") } call include(spouse,hopcount,keypath,path,pathend) children(fam,child,cnum) { if (male(child)) { set(pathend,"z") } elsif (female(child)) { set(pathend,"d") } else { set(pathend,"C") } call include(child,hopcount,keypath,path,pathend) } } } if (eq(mode,1)) { from_key " " name(indi(from_key)) call parse_relation(save(lookup(mark,to_key)),lookup(keys,to_key)) to_key " " name(indi(to_key)) "\n" } if (eq(mode,2)) { set(want_another,1) while (want_another) { getindimsg(to_person,"Enter person to compute relation to:") set(to_key,save(key(to_person))) from_key " " name(indi(from_key)) if (path,lookup(mark,to_key)) { call parse_relation(save(path),lookup(keys,to_key)) } else { " is not related to " } to_key " " name(to_person) "\n" getintmsg(want_another, "Enter 0 if done, 1 if you want another to person:") } } if (eq(mode,3)) { from_key " " name(indi(from_key)) " --->\n" forindi(to_person,num) { set(to_key,save(key(to_person))) if (path,lookup(mark,to_key)) { call parse_relation(save(path),lookup(keys,to_key)) to_key " " name(to_person) "\n" } } } } -- Paul Johnson - paul at pjcj.net http://www.pjcj.net From jay at jays.net Sun Feb 5 11:21:22 2006 From: jay at jays.net (Jay Hannah) Date: Sun, 05 Feb 2006 13:21:22 -0600 Subject: [Omaha.pm] Gedcom.pm - searching for a path from person A to person X? In-Reply-To: <20060123164319.GD14319@pjcj.net> References: <20060123164319.GD14319@pjcj.net> Message-ID: <43E65032.5040403@jays.net> Paul Johnson wrote: > On Sat, Nov 26, 2005 at 12:52:27PM -0600, Jay Hannah wrote: > First, my apologies for a delayed reply. Not at all. You should some of the 2003 stuff in my Inbox. -grin- >>I've got a little over 4000 people in my GEDCOM >> >> http://jays.net/genealogy/ > > That's pretty impressive. I wish I had that much information, but I > spend too much time hacking Gedcom.pm and too little time actually > researching. The trick there is to have cousins that already have 3950 people in their GEDCOMs. Merge 'em, and you're done! So easy! -grin- > Im not sure whether anyone has written such a thing directly in Perl, > but I do know of a lifelines script called "relation" that does (mostly) > what you are after. This script can be translated into Perl using > lines2perl which is a part of the Gedcom.pm release. This LineLines? http://lifelines.sourceforge.net/ So LineLines is written in C, and comes with its own scripting language. And lines2perl converts samples of that scripting language to pure Perl (so I don't need anything other than Perl)? Did I get that right? > I've reproduced the script below. (It required a small change to > lines2perl.) You can run this directly, or use it to learn from. The > original script is after __END__. The Perl is not wonderful, but I > don't think it's too bad for an automatic translation. Wow. That's awesome. Haven't played with the code yet, but I'll give it a stab. > As an aside, lifelines has some really nice reports. For the most part, > lines2perl will translate them into Perl for you. (There might be > problems with some of the newer ones if they use new features I haven't > implemented yet.) See http://lifelines.sourceforge.net/ and > ftp://ftp.cac.psu.edu/pub/genealogy/lines/reports/ > > Let me know if you run into any problems. Ahh... There's "relation" on the FTP site. I get it... >> If not, do you have any thoughts about how I >>might right it? Any interest in this being a plugin to Gedcom.pm? >>Gedcom::Search or something? > > If you'd like to write some general method for this I'd be very happy to > include it, either within the distribution or by providing some sort of > plugin support. If you do this, you might like to subscribe to the > mailing list (details in the README) to keep us informed. I've joined perl-gedcom at perl.org. I would have bugged them first, but I didn't see that in "perldoc Gedcom" or on your website. Thanks for your help! I'll see what I can do w/ your magical "relation" translation. :) j From jay at jays.net Sun Feb 5 11:27:17 2006 From: jay at jays.net (Jay Hannah) Date: Sun, 05 Feb 2006 13:27:17 -0600 Subject: [Omaha.pm] Gedcom.pm - searching for a path from person A to person X? In-Reply-To: <43E65032.5040403@jays.net> References: <20060123164319.GD14319@pjcj.net> <43E65032.5040403@jays.net> Message-ID: <43E65195.3060003@jays.net> Jay Hannah wrote: > Not at all. You should some of the 2003 stuff in my Inbox. -grin- err... typo. I meant: You should SEE some of the stuff from 2003 that's still sitting in my Inbox. A dozen emails containing good ideas I'll never get around to doing anything about. Yet I can't seem to delete them. If I could just give up sleep think how much more free time I'd have! :) j From jay at jays.net Mon Feb 6 11:28:51 2006 From: jay at jays.net (Jay Hannah) Date: Mon, 06 Feb 2006 13:28:51 -0600 Subject: [Omaha.pm] One-liner adding machine Message-ID: <43E7A373.5020708@jays.net> Given a comma delimited file w/ numbers in the 3rd location, add up all those numbers. $ perl -anF',' -e '$total += $F[2]; print "$F[2] $total\n";' myfile.txt | head 25000 25000 20946 45946 11592 57538 500 58038 500 58538 500 59038 500 59538 500 60038 500 60538 500 61038 Neat! Saved myself from having to write a 4 line program! -grin- This is my first time using -a and -F. "perldoc perlrun" for more info. Let's see your alternate syntaxii, shell gurus :) j Omaha Perl Mongers: http://omaha.pm.org From jhannah at omnihotels.com Tue Feb 7 13:36:29 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Tue, 7 Feb 2006 15:36:29 -0600 Subject: [Omaha.pm] find binary junk in a database Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B04432748@exchange2k3.omnihotels.net> Here's a buggy, craptastic program I wrote in 10m to find binary junk that somehow got shoved into our database: (This is probably a superb example of poor coding. -grin-) j ------------------ #!/usr/bin/perl use Omni::DB; my $dbh = Omni::DB::connect_prod(); my $strsql = <prepare($strsql); $sth->execute; my ($prop, $gds_sys, $seamless_bk_code, @row); while (($prop, $gds_sys, $seamless_bk_code, @row) = $sth->fetchrow) { foreach $column qw( disp_line1 disp_line2 disp_line3 ) { $data = join "|", @row; if ($data =~ /[^ -~]/) { my ($evil) = ($data =~ /([^ -~])/); my $notsoevil = ord($evil); $data =~ s/$evil/\*\*\*ASCII_$notsoevil\*\*\*/g; print "$prop $gds_sys $seamless_bk_code\n"; print " $data\n"; } } } $sth->finish; $dbh->disconnect; Output (see those ASCII 150's in the data!? Those are bad. -grin-): ATLCNN WB XDRREV RENDEZVOUS FOR TWO ULTIMATE |DELUXE ACCOMMODATIONS ***ASCII_150*** REQUEST 1 KING, 1 QUEEN|BREAKFAST - CHOCOLATES - CHAMPAGNE AND ROSES ATLCNN WB XDRREV RENDEZVOUS FOR TWO ULTIMATE |DELUXE ACCOMMODATIONS ***ASCII_150*** REQUEST 1 KING, 1 QUEEN|BREAKFAST - CHOCOLATES - CHAMPAGNE AND ROSES From jhannah at omnihotels.com Wed Feb 8 14:21:54 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Wed, 8 Feb 2006 16:21:54 -0600 Subject: [Omaha.pm] Wow! Lol..... Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B0443276C@exchange2k3.omnihotels.net> > I'm all for methods being mnemonic, but isn't this a little overkill? > > sub dates_inside_any_simple_double_miles_promotion_range { > my ($self, $arrival, $depart) = @_; It seemed like a good idea at the time. :) Johnny Mnemonic? Grin, j From kthompson at omnihotels.com Wed Feb 8 15:17:56 2006 From: kthompson at omnihotels.com (Kenneth Thompson) Date: Wed, 8 Feb 2006 17:17:56 -0600 Subject: [Omaha.pm] Wow! Lol..... Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B0450D2E4@exchange2k3.omnihotels.net> I kinda like the meaningfulness of it all... $self->the_ol_rate_switcharoo -----Original Message----- From jay at jays.net Fri Feb 10 18:38:36 2006 From: jay at jays.net (Jay Hannah) Date: Fri, 10 Feb 2006 20:38:36 -0600 Subject: [Omaha.pm] Business::AAPOS? Message-ID: <43ED4E2C.40808@jays.net> [3rd try. Posting to nntp.perl.org isn't working?] Hola -- I'm automating one of American Airlines' new websites. It's called "AAPOS" and its used by companies (like the one I work for) who buy AA frequent flyer miles to give to their customers. I'm using WWW::Mechanize, mainly, and have gotten a couple handy features working. I carefully kept all our proprietary junk out of this little ball of software, hoping I could contribute it to CPAN. I guessed that maybe Business::AAPOS would be a good namespace choice, but if its not I'd be happy to change it. I've been coding Perl for years, but have never contributed to CPAN. I'd love any feedback anyone has about this namespace choice, my code, whether or not you guess others mind find this useful, whatever. One downside (?) is that this code will shatter whenever they change or abandon their website. I'll be happy to keep the bundle updated since I'll have to for my day job anyway. :) Also, AA is promising more native automation some day, but they certainly don't have it so far and it could be years before they get around to it, if ever. Also, whatever year AA completely abandones AAPOS this software will be useless to everyone. Is there a facility for removing it from CPAN in the event that it becomes 100% unusable? It's not ready for PAUSE upload yet, but here's my code so far: http://jays.net/tmp/Business-AAPOS.tgz There's some POD in there. All feedback very welcome! Thoughts? Thanks! j Omaha Perl Mongers (I'd contribute frequent flyer check-digit algorythms for several airlines, too, but those algos all have NDAs attached to them. I notice that the credit card algo's are on CPAN even though the CC companies all require NDAs...?) From jay at jays.net Mon Feb 13 16:29:42 2006 From: jay at jays.net (Jay Hannah) Date: Mon, 13 Feb 2006 18:29:42 -0600 Subject: [Omaha.pm] Meeting tomorrow night! Message-ID: <43F12476.9040001@jays.net> It's that time of month again! Come on down tomorrow night: http://omaha.pm.org/ Meetings are sponsored by Paragon IT Professionals (free food). Thanks Chad Hendren! If no one has suggested topic(s) we'll probably do more bioperl fun. (Kiran: Are you coming?) I'll bring our new books. See you there! j > -----Original Message----- > From: Ryan Stille [mailto:rps at willcomminc.com] > Sent: Monday, February 13, 2006 11:36 AM > To: Jay Hannah > Subject: Meeting tomorrow night? > > Is there a meeting tomorrow night? According to the website there is, > and I believe that's the correct new meeting date. > > Has a topic been chosen? I have to convince my coworker to come down, > I'll start on him today if I know the meeting topic. > > Thanks, > -Ryan > > From kiranbina at gmail.com Wed Feb 15 04:35:58 2006 From: kiranbina at gmail.com (Dr. Dhundy R. Bastola) Date: Wed, 15 Feb 2006 06:35:58 -0600 Subject: [Omaha.pm] Meeting tomorrow night! In-Reply-To: <43F12476.9040001@jays.net> Message-ID: <43f32045.502ce93b.0168.ffff9233@mx.gmail.com> Hi Jay, I missed it. I completely forgot about it and went to the gym instead. Kiran -----Original Message----- From: omaha-pm-bounces+kiranbina=gmail.com at pm.org [mailto:omaha-pm-bounces+kiranbina=gmail.com at pm.org] On Behalf Of Jay Hannah Sent: Monday, February 13, 2006 6:30 PM To: Perl Mongers of Omaha, Nebraska USA Subject: [Omaha.pm] Meeting tomorrow night! It's that time of month again! Come on down tomorrow night: http://omaha.pm.org/ Meetings are sponsored by Paragon IT Professionals (free food). Thanks Chad Hendren! If no one has suggested topic(s) we'll probably do more bioperl fun. (Kiran: Are you coming?) I'll bring our new books. See you there! j > -----Original Message----- > From: Ryan Stille [mailto:rps at willcomminc.com] > Sent: Monday, February 13, 2006 11:36 AM > To: Jay Hannah > Subject: Meeting tomorrow night? > > Is there a meeting tomorrow night? According to the website there is, > and I believe that's the correct new meeting date. > > Has a topic been chosen? I have to convince my coworker to come down, > I'll start on him today if I know the meeting topic. > > Thanks, > -Ryan > > _______________________________________________ Omaha-pm mailing list Omaha-pm at pm.org http://mail.pm.org/mailman/listinfo/omaha-pm From dan at linder.org Wed Feb 15 10:46:53 2006 From: dan at linder.org (Daniel Linder) Date: Wed, 15 Feb 2006 12:46:53 -0600 (CST) Subject: [Omaha.pm] Eclipse or other Perl IDE under Linux. Message-ID: <37347.12.160.138.81.1140029213.squirrel@mail.linder.org> Hello, I've been playing with Eclipse and the EPIC plugin to allow it to properly colorize Perl scripts.? That seems to work well enough, but I thought that the Eclipse IDE also had integrated run and step-through buttons? What perl IDEs are other people using in the Linux environment?? I've grown weary of the "VI in one window, perl command line in the other" setup. Dan P.S. I had been using PerlIDE (on Sourceforge.net) under Windows and it worked quite well -- single stepping through a program was great when a subtile logic bug crept in. :) - - - - "Wait for that wisest of all counselors, time." -- Pericles "I do not fear computers, I fear the lack of them." -- Isaac Asimov GPG fingerprint:6FFD DB94 7B96 0FD8 EADF 2EE0 B2B0 CC47 4FDE 9B68 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/omaha-pm/attachments/20060215/deef4e3d/attachment.html From dan at linder.org Thu Feb 16 14:03:51 2006 From: dan at linder.org (Daniel Linder) Date: Thu, 16 Feb 2006 16:03:51 -0600 (CST) Subject: [Omaha.pm] Eclipse or other Perl IDE under Linux. In-Reply-To: <37347.12.160.138.81.1140029213.squirrel@mail.linder.org> References: <37347.12.160.138.81.1140029213.squirrel@mail.linder.org> Message-ID: <49900.12.160.138.81.1140127431.squirrel@mail.linder.org> Yesterday I wrote: > What perl IDEs are other people using in the Linux environment? > I've grown weary of the "VI in one window, perl command line in > the other" setup. I guess from the resounding lack of responses that I must be in the minority when it comes to using IDEs... :( Dan - - - - "Wait for that wisest of all counselors, time." -- Pericles "I do not fear computers, I fear the lack of them." -- Isaac Asimov GPG fingerprint:6FFD DB94 7B96 0FD8 EADF 2EE0 B2B0 CC47 4FDE 9B68 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/omaha-pm/attachments/20060216/72f1dfc4/attachment.html From rps at willcomminc.com Thu Feb 16 14:09:46 2006 From: rps at willcomminc.com (Ryan Stille) Date: Thu, 16 Feb 2006 16:09:46 -0600 Subject: [Omaha.pm] Eclipse or other Perl IDE under Linux. Message-ID: <9A8B75E3985324438F1BFA08B160E82057B73C@suxsvr.willconsult.com> I use vi. I hear you can even set it up for syntax highlighting. -Ryan From jay at jays.net Fri Feb 17 05:35:16 2006 From: jay at jays.net (Jay Hannah) Date: Fri, 17 Feb 2006 07:35:16 -0600 Subject: [Omaha.pm] Eclipse or other Perl IDE under Linux. In-Reply-To: <49900.12.160.138.81.1140127431.squirrel@mail.linder.org> References: <37347.12.160.138.81.1140029213.squirrel@mail.linder.org> <49900.12.160.138.81.1140127431.squirrel@mail.linder.org> Message-ID: <43F5D114.1030004@jays.net> Daniel Linder wrote: > > What perl IDEs are other people using in the Linux environment? > > I've grown weary of the "VI in one window, perl command line in > > the other" setup. > > I guess from the resounding lack of responses that I must be in the > minority when it comes to using IDEs... :( I'm from the "VI in 5 windows, command line off and on in several of them" camp. :) I've never liked IDEs enough to put up with the overhead. Even syntax highlighting tends to just annoy me. Not trying to rain on your parade. Everyone should use whatever is most productive for them. Perhaps if I went to work for a large shop with a ton of pre-existing, internally written source code with poor/no documentation I might find method name auto-discovery useful. You'd need an IDE for that. :) j From hostetlerm at gmail.com Fri Feb 17 07:03:02 2006 From: hostetlerm at gmail.com (Mike Hostetler) Date: Fri, 17 Feb 2006 09:03:02 -0600 Subject: [Omaha.pm] Eclipse or other Perl IDE under Linux. In-Reply-To: <9A8B75E3985324438F1BFA08B160E82057B73C@suxsvr.willconsult.com> References: <9A8B75E3985324438F1BFA08B160E82057B73C@suxsvr.willconsult.com> Message-ID: On 2/16/06, Ryan Stille wrote: > I use vi. I hear you can even set it up for syntax highlighting. > Syntax coloring isn't everything. I tend to like more than that. Auto-structuring, smart-indenting, etc. How about Emacs? If you don't like the keystrokes, you can always use it in vi mode. Emacs has an alternative for "editor in one window, shell in another": http://www.khngai.com/emacs/perl.php To make this even a bigger flame war, I use Emacs all the time for Python scripts. Python has an interactive interpretor. You can be editing your script in on part of the Window, have the interpreter in the other, and with a "C-cC-c", the contents of your script is ran in the interpreter. That way you can see any errors, poke around to make sure that Python is doing what you want it to do, etc. I would image that the setup in the above link is close to that (though I've never used the Perl debugger) -- Mike Hostetler http://mike.hostetlerhome.com/ From kthompson at omnihotels.com Fri Feb 17 07:07:43 2006 From: kthompson at omnihotels.com (Kenneth Thompson) Date: Fri, 17 Feb 2006 09:07:43 -0600 Subject: [Omaha.pm] Eclipse or other Perl IDE under Linux. Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B0466C26E@exchange2k3.omnihotels.net> For what it's worth, There was an ActivePerl plugin for visual studio that looked great- all the IDE autosense and syntax highlighting. I believe they've dropped the project tho, and it was Windows platform. Have you looked into the Mono project? ________________________________ I guess from the resounding lack of responses that I must be in the minority when it comes to using IDEs... :( Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/omaha-pm/attachments/20060217/acfb285f/attachment.html From jhannah at omnihotels.com Fri Feb 17 08:52:46 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Fri, 17 Feb 2006 10:52:46 -0600 Subject: [Omaha.pm] $self->SUPER::methodA(); Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B04432824@exchange2k3.omnihotels.net> > if a class(CB) has methodA and the ISA (CA) has methodA, can CB->methodA run and then call CA->methodA? Is that the SUPER:: notation? Yup. $ cat j.pl package CA; sub methodA { print "Hi. I'm the super/base/parent class.\n"; } package CB; use vars qw(@ISA); @ISA = qw( CA ); sub new { return bless {}; } sub methodA { my ($self) = @_; print "Hi. I'm the sub/derived/child class.\n"; $self->SUPER::methodA(); } package main; my $obj = CB->new(); $obj->methodA; $ perl j.pl Hi. I'm the sub/derived/child class. Hi. I'm the super/base/parent class. From jhannah at omnihotels.com Fri Feb 17 14:15:44 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Fri, 17 Feb 2006 16:15:44 -0600 Subject: [Omaha.pm] FW: Announce Class::DBI::Informix Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B04432837@exchange2k3.omnihotels.net> Huh... I wonder what the gap between our home-spun OOP (object oriented persistence) and this is nowadays? Class::DBI wasn't as cool (for us) as our internal wheel-reinvention last time I looked (a year ago?). I wonder if its catching up yet? j -----Original Message----- From: informix-list-bounces at iiug.org [mailto:informix-list-bounces at iiug.org] On Behalf Of Jonathan Stowe Sent: Friday, February 10, 2006 3:42 PM To: informix-list at iiug.org Subject: Announce Class::DBI::Informix Hi, Anyone who is using an Informix database with Perl might be interested in Class::DBI::Informix and Class::DBI::Loader::Informix that I released to CPAN earlier in the week. Class::DBI is an object relational mapping library that allows you to define classes that represent tables in the database and the relationships between the tables. You can read more about it at: http://search.cpan.org/perldoc?Class%3A%3ADBI Class::DBI::Loader automates the creation of the Class::DBI subclasses: defining the columns, primary key and foreign key relationships and can be seen at: http://search.cpan.org/perldoc?Class%3A%3ADBI%3A%3ALoader Class::DBI::Informix and Class::DBI::Loader::Informix provide the Informix specific functionality that the generic modules didn't, thus allowing you to use this labour saving framework with your favourite database server. You can find them at: http://search.cpan.org/~jstowe/Class-DBI-Loader-Informix-0.02/ These both should be considered as beta releases and I am announcing here in the hope of some robust feedback on the way I am handling the Informix specific things: I know you do 'robust' here well :-) I am specifically interested in having people try these out on a variety of IDS (or SE even) versions as I have only had the opportunity to test with IDS 9.40. Anyway, have fun and I'll look forward to your comments. /J\ _______________________________________________ Informix-list mailing list Informix-list at iiug.org http://www.iiug.org/mailman/listinfo/informix-list From jay at jays.net Sat Feb 18 03:56:05 2006 From: jay at jays.net (Jay Hannah) Date: Sat, 18 Feb 2006 05:56:05 -0600 Subject: [Omaha.pm] Next BioPerl lab In-Reply-To: <43f32045.502ce93b.0168.ffff9233@mx.gmail.com> References: <43f32045.502ce93b.0168.ffff9233@mx.gmail.com> Message-ID: <43F70B55.7000902@jays.net> Dr. Dhundy R. Bastola wrote: > I missed it. I completely forgot about it and went to the gym instead. I've been booked the last 2 weekends, and today's no good. How about: - Sun Feb 19, any time. RTU is closed. Location? - Tue Feb 21, 6pm @ RTU? At out last meeting Mathew Caughron (PHP deity (phpconsulting.com)) expressed a bunch of interest in bioperl. He has a biology background, too, so maybe he can help? j mobile: 578-3976 From jay at jays.net Sat Feb 18 06:52:01 2006 From: jay at jays.net (Jay Hannah) Date: Sat, 18 Feb 2006 08:52:01 -0600 Subject: [Omaha.pm] [Fwd: New Ubuntu and Perl books available from O'Reilly Rough Cuts] Message-ID: <43F73491.6040909@jays.net> Hey, its another Perl book! j -------- Original Message -------- Subject: New Ubuntu and Perl books available from O'Reilly Rough Cuts Date: Thu, 16 Feb 2006 08:36:02 -0800 From: Marsee Henon To: jay at jays.net Hello, Just wanted to let you know about these brand new Rough Cuts titles available from O'Reilly: Perl Hacks http://www.oreilly.com/catalog/perlhks/index.html Ubuntu Hacks http://www.oreilly.com/catalog/ubuntuhks/index.html Ajax Design Patterns http://www.oreilly.com/catalog/ajaxdp/index.html Rough Cuts is a new service that gives you early access to content on cutting-edge technologies months before it's published. Other titles include "Ajax Hacks," "Flickr Hacks," "Ruby Cookbook," "Ruby on Rails," and "Java and XML, 3rd Edition." For more information, go to: http://www.oreilly.com/roughcuts/ Thanks! Marsee ================================================================ O'Reilly 1005 Gravenstein Highway North Sebastopol, CA 95472 http://ug.oreilly.com/ http://www.oreilly.com ================================================================ From kiranbina at gmail.com Sun Feb 19 06:54:22 2006 From: kiranbina at gmail.com (Dr. Dhundy R. Bastola) Date: Sun, 19 Feb 2006 08:54:22 -0600 Subject: [Omaha.pm] Next BioPerl lab In-Reply-To: <43F70B55.7000902@jays.net> Message-ID: <43f886b7.72ba8a66.37a0.ffff8673@mx.gmail.com> Tuesday Feb 21 at 6 pm @RTU is great. I will be there kiran -----Original Message----- From: omaha-pm-bounces+kiranbina=gmail.com at pm.org [mailto:omaha-pm-bounces+kiranbina=gmail.com at pm.org] On Behalf Of Jay Hannah Sent: Saturday, February 18, 2006 5:56 AM To: Perl Mongers of Omaha, Nebraska USA Subject: [Omaha.pm] Next BioPerl lab Dr. Dhundy R. Bastola wrote: > I missed it. I completely forgot about it and went to the gym instead. I've been booked the last 2 weekends, and today's no good. How about: - Sun Feb 19, any time. RTU is closed. Location? - Tue Feb 21, 6pm @ RTU? At out last meeting Mathew Caughron (PHP deity (phpconsulting.com)) expressed a bunch of interest in bioperl. He has a biology background, too, so maybe he can help? j mobile: 578-3976 _______________________________________________ Omaha-pm mailing list Omaha-pm at pm.org http://mail.pm.org/mailman/listinfo/omaha-pm From jhannah at omnihotels.com Tue Feb 21 10:57:12 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Tue, 21 Feb 2006 12:57:12 -0600 Subject: [Omaha.pm] Autocommmit? Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B04432862@exchange2k3.omnihotels.net> > Anyone seen this error before? > > DBD::mysql::db commit failed: Commmit ineffective while AutoCommit is on Yup. That happens when you $dbh->commit if you set AutoCommit on when you connected to the database. (DBI is warning you that you just explicitly did something useless.) Turn AutoCommit off then $dbh->commit manually, or leave AutoCommit on and don't $dbh->commit. j From kthompson at omnihotels.com Tue Feb 21 11:03:46 2006 From: kthompson at omnihotels.com (Kenneth Thompson) Date: Tue, 21 Feb 2006 13:03:46 -0600 Subject: [Omaha.pm] Autocommmit? Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B047367BE@exchange2k3.omnihotels.net> Is there a best-practices approach to going one way or the other? I'm trying to think of a situation where I wouldn't want an autocommit. From jhannah at omnihotels.com Tue Feb 21 11:09:42 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Tue, 21 Feb 2006 13:09:42 -0600 Subject: [Omaha.pm] Autocommmit? Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B04432863@exchange2k3.omnihotels.net> > Is there a best-practices approach to going one way or the > other? I'm trying to think of a situation where I wouldn't > want an autocommit. Well, you can't AutoCommit any time you want to control transactions, which would be any time you're doing multiple, related SQL operations. e.g.: Only do these 5 SQL statements IF all 5 of them work. If any of them fail, don't do ANY. In those cases, you need to explicitly control commit's/rollback's in your program at the appropriate times. In general I vote for AutoCommit off. I'd much rather accidentally NOT commit something when my program is wrong than accidentally commit something I didn't mean to commit yet. The opposite is also arguable. j From rps at willcomminc.com Tue Feb 21 12:12:17 2006 From: rps at willcomminc.com (Ryan Stille) Date: Tue, 21 Feb 2006 14:12:17 -0600 Subject: [Omaha.pm] Autocommmit? Message-ID: <9A8B75E3985324438F1BFA08B160E82057B76B@suxsvr.willconsult.com> I always leave Autocommit on. Then in the part of my script that requires transactional processing, I manually issue something like $dbh->do("BEGIN TRANSACTION") then when I've executed all the SQL statements I need to be done together I use $dbh->do("COMMIT"). But I suppose I should be switching autocommit on and off when I need it, and then using $dbh->commit. I think the problem I ran into with that is the DBD driver didn't think the database supported transactions. So I had to do the transaction stuff manually. -Ryan > -----Original Message----- > From: Jay Hannah [mailto:jhannah at omnihotels.com] > Sent: Tuesday, February 21, 2006 1:10 PM > To: omaha-pm at pm.org > Subject: Re: [Omaha.pm] Autocommmit? > > > Is there a best-practices approach to going one way or the > other? I'm > > trying to think of a situation where I wouldn't want an autocommit. > > Well, you can't AutoCommit any time you want to control > transactions, which would be any time you're doing multiple, > related SQL operations. > e.g.: Only do these 5 SQL statements IF all 5 of them work. > If any of them fail, don't do ANY. In those cases, you need > to explicitly control commit's/rollback's in your program at > the appropriate times. > > In general I vote for AutoCommit off. I'd much rather > accidentally NOT commit something when my program is wrong > than accidentally commit something I didn't mean to commit > yet. The opposite is also arguable. > > j > _______________________________________________ > Omaha-pm mailing list > Omaha-pm at pm.org > http://mail.pm.org/mailman/listinfo/omaha-pm > From jay at jays.net Wed Feb 22 03:32:20 2006 From: jay at jays.net (Jay Hannah) Date: Wed, 22 Feb 2006 05:32:20 -0600 Subject: [Omaha.pm] Next BioPerl lab Message-ID: <43FC4BC4.2020902@jays.net> Hi Kiran -- Sorry, turns out I'm now double booked Saturday morning. Sun Feb 26? I'm free anytime. 10am @ Panera Bread Oakview? 2pm? j From jay at jays.net Wed Feb 22 03:36:26 2006 From: jay at jays.net (Jay Hannah) Date: Wed, 22 Feb 2006 05:36:26 -0600 Subject: [Omaha.pm] Autocommmit? In-Reply-To: <9A8B75E3985324438F1BFA08B160E82057B76B@suxsvr.willconsult.com> References: <9A8B75E3985324438F1BFA08B160E82057B76B@suxsvr.willconsult.com> Message-ID: <43FC4CBA.8050901@jays.net> Ryan Stille wrote: > I always leave Autocommit on. Then in the part of my script that > requires transactional processing, I manually issue something like > $dbh->do("BEGIN TRANSACTION") then when I've executed all the SQL > statements I need to be done together I use $dbh->do("COMMIT"). But I > suppose I should be switching autocommit on and off when I need it, and > then using $dbh->commit. I think the problem I ran into with that is > the DBD driver didn't think the database supported transactions. So I > had to do the transaction stuff manually. Really? Which database? On a quiz I would have said that wouldn't work... :) j From rps at willcomminc.com Wed Feb 22 06:03:51 2006 From: rps at willcomminc.com (Ryan Stille) Date: Wed, 22 Feb 2006 08:03:51 -0600 Subject: [Omaha.pm] Autocommmit? Message-ID: <9A8B75E3985324438F1BFA08B160E82057B77B@suxsvr.willconsult.com> Jay Hannah wrote: > Ryan Stille wrote: >> I always leave Autocommit on. Then in the part of my script that >> requires transactional processing, I manually issue something like >> $dbh->do("BEGIN TRANSACTION") then when I've executed all the SQL >> statements I need to be done together I use $dbh->do("COMMIT"). But >> I suppose I should be switching autocommit on and off when I need it, >> and then using $dbh->commit. I think the problem I ran into with >> that is the DBD driver didn't think the database supported >> transactions. So I had to do the transaction stuff manually. > > Really? Which database? On a quiz I would have said that wouldn't > work... :) Microsoft SQL. But we recently migrated to MySQL and I think I am doing it there still, too. I am issuing the statements inbetween my manual transaction statements with $dbh->do(). Maybe if I was using $sth->execute() it wouldn't work, as you where thinking, because then it might call COMMIT for me after each statement? -Ryan From jhannah at omnihotels.com Wed Feb 22 09:55:42 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Wed, 22 Feb 2006 11:55:42 -0600 Subject: [Omaha.pm] fork() only goes 2 procs at a time? Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B04432872@exchange2k3.omnihotels.net> [I'm currently chasing this on IRC. If anyone wants to beat them to it, please do!] I expected this code to go through 1..10 immediately and exit, each child hanging around for 1 second. But it doesn't. It goes slowly, only launching 2 at a time. Why? ------------------- #!/usr/bin/perl use IO::Handle; STDOUT->autoflush(1); for (1..10) { print "launch $_\n"; if ($pid = open ($child, "-|")) { # Parent code here... } else { # Child code here... die "cannot fork: $!" unless defined $pid; `sleep 1`; exit; } } ------------------- (I'm trying to do super-quick/easy command line load testing of various commands on Linux.) Thanks! From jhannah at omnihotels.com Wed Feb 22 10:25:53 2006 From: jhannah at omnihotels.com (Jay Hannah) Date: Wed, 22 Feb 2006 12:25:53 -0600 Subject: [Omaha.pm] fork() only goes 2 procs at a time? Message-ID: <29AB736ABCE5C745ABF9C93B02F2C27B04432874@exchange2k3.omnihotels.net> Turns out open -| and open |- are NOT the same thing as fork(). Here's what I ended up with... ============================================================== Using Perl fork() ============================================================== > cat j2.pl #!/usr/bin/perl use IO::Handle; STDOUT->autoflush(1); my $cmd = </dev/null 2>>stress.log EOT chomp $cmd; #$cmd = "sleep 1"; for (1..10) { print "launch $_\n"; if ($pid = fork) { # Parent code here... } else { # Child code here... die "cannot fork: $!" unless defined $pid; `$cmd`; exit; } } jhannah at razorbill:~/tmp> perl j2.pl launch 1 launch 2 launch 3 launch 4 launch 5 launch 6 launch 7 launch 8 launch 9 launch 10 jhannah at razorbill:~/tmp> 0:10.63 0:10.95 0:11.19 0:11.20 0:11.34 0:11.55 0:12.04 0:12.06 0:12.07 0:12.22 ============================================================== Using apachebench: ============================================================== > ab -A "X:Y" -n 10 -c 10 URLHERE This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking 10.0.33.79 (be patient).....done Server Software: Microsoft-IIS/6.0 Server Hostname: 10.0.33.79 Server Port: 80 Document Path: URLHERE Document Length: 19726 bytes Concurrency Level: 10 Time taken for tests: 13.326764 seconds Complete requests: 10 Failed requests: 3 (Connect: 0, Length: 3, Exceptions: 0) Write errors: 0 Total transferred: 202544 bytes HTML transferred: 197264 bytes Requests per second: 0.75 [#/sec] (mean) Time per request: 13326.764 [ms] (mean) Time per request: 1332.676 [ms] (mean, across all concurrent requests) Transfer rate: 14.78 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 11100 12526 772.6 12880 13326 Waiting: 11098 12522 772.9 12876 13323 Total: 11100 12526 772.6 12880 13326 Percentage of the requests served within a certain time (ms) 50% 12880 66% 12922 75% 13093 80% 13284 90% 13326 95% 13326 98% 13326 99% 13326 100% 13326 (longest request) From kiranbina at gmail.com Thu Feb 23 16:21:08 2006 From: kiranbina at gmail.com (Dr. Dhundy R. Bastola) Date: Thu, 23 Feb 2006 18:21:08 -0600 Subject: [Omaha.pm] Next BioPerl lab In-Reply-To: <43FC4BC4.2020902@jays.net> Message-ID: <43fe518c.38893185.4433.2da5@mx.gmail.com> Sounds good. 10am on Sunday, Oakview Panera. kiran -----Original Message----- From: omaha-pm-bounces+kiranbina=gmail.com at pm.org [mailto:omaha-pm-bounces+kiranbina=gmail.com at pm.org] On Behalf Of Jay Hannah Sent: Wednesday, February 22, 2006 5:32 AM To: Perl Mongers of Omaha, Nebraska USA Subject: [Omaha.pm] Next BioPerl lab Hi Kiran -- Sorry, turns out I'm now double booked Saturday morning. Sun Feb 26? I'm free anytime. 10am @ Panera Bread Oakview? 2pm? j _______________________________________________ Omaha-pm mailing list Omaha-pm at pm.org http://mail.pm.org/mailman/listinfo/omaha-pm From jay at jays.net Thu Feb 23 18:14:57 2006 From: jay at jays.net (Jay Hannah) Date: Thu, 23 Feb 2006 20:14:57 -0600 Subject: [Omaha.pm] Fwd: iCal::Parser - or how to iterate through this hash? Message-ID: <43FE6C21.7010302@jays.net> Forwarding Brian's message while Brian and I try to figure out why his post didn't go straight through... j -------- Original Message -------- Subject: [Fwd: iCal::Parser - or how to iterate through this hash?] Date: Wed, 22 Feb 2006 22:10:42 -0800 From: Brian Wiese To: jay at jays.net Any idea why this didn't go through to the list? Brian -------- Original Message -------- Subject: iCal::Parser - or how to iterate through this hash? Date: Wed, 22 Feb 2006 09:47:23 -0800 From: Brian Wiese To: Perl Mongers of Omaha, Nebraska USA I've been out of touch with perl for some time now, but have remained on the list and now I need some help. =) For a little project, I'd like to parse my iCal files and (eventually) populate a mysql db. (I thought it sounded simple too!) I've been messing with out iCal::Parser (since it sounds good) but am in over my head and am thinking maybe there is an easier route? http://search.cpan.org/~rfrankel/iCal-Parser-1.11/lib/iCal/Parser.pm { calendars=>[\%cal, ...], events=>{yyyy=>{mm=>{dd}=>{UID=>\%event}} todos=>[\%todo, ...] } I'd just like to iterate over each of my events/todo items and then populate a db. First issue is how to access this reference hash? Secondly, to get to each event - can I get an Iterator or do I need to search through every yyyy-mm-dd-uid combination? Also, I used a dumper to see what's inside... and it's ugly, much more complicated than the actual .ics file itself. Am I going in the wrong direction? Easier to just regex each line myself? Thanks, Brian my test.ics file (from Sunbird - still a little buggy at times) bw at freedom:proj $ cat test.ics BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN BEGIN:VEVENT CREATED:20060207T005839Z LAST-MODIFIED:20060207T005839Z DTSTAMP:20060207T005839Z UID:uuid:1139273884656 SUMMARY:title Project Discussion PRIORITY:5 STATUS:CONFIRMED CLASS:PUBLIC DTSTART:20060206T120000 DTEND:20060206T125000 LOCATION:location SP408\, NPS\, Monterey\, CA 93943 (no geo) CATEGORIES:Issues DESCRIPTION:description Plan out project and subprojet ideas for Mobile Alert\nmain topics: profile\, calendar\, \ntesting out vcal format - brian URL:http://sharedonline.com/nps/ BEGIN:VALARM TRIGGER;VALUE=DURATION:-PT30M X-EMAILADDRESS:bwiese at example.com END:VALARM END:VEVENT END:VCALENDAR my ical2sql start... #!/usr/bin/perl -w use strict; use iCal::Parser; # http://www.codecomments.com/showthread.php?postid=2514293 use Data::Dumper; my $icalFile = "test.ics"; open(INFILE,$icalFile) or die "could not open $icalFile: $!"; my $c = 1; while() { print "$c: $_"; $c++; } close INFILE; print "-- using iCal:Parser --\n"; my $parser=iCal::Parser->new(); my $hash=$parser->parse($icalFile); open(DUMPFILE, ">ical.dump.txt"); print DUMPFILE Dumper($parser); # from Data::Dumper close DUMPFILE; print "SUMMARY: "; # http://search.cpan.org/~rfrankel/iCal-Parser-1.11/lib/iCal/Parser.pm print $hash->{events}->{2006}->{2}->{6}->{'uuid:1139273884656'}->{SUMMARY} . "\n"; # Don't know what to do with this stuff here, probably need to READ more. =) #my @hkeys = keys $hash->{\%cal}; #my @hvals = values $hash->{\%cal}; #print @hkeys; #while(@hkeys) { # print pop(@hkeys), '=', pop(@hvals), "\n"; #} -- bwiese[at]cotse.com | brianwiese.net | 402.297.9392 "What we do in life echoes in eternity" - Gladiator From jay at jays.net Fri Feb 24 03:33:21 2006 From: jay at jays.net (Jay Hannah) Date: Fri, 24 Feb 2006 05:33:21 -0600 Subject: [Omaha.pm] Fwd: iCal::Parser - or how to iterate through this hash? In-Reply-To: <43FE6C21.7010302@jays.net> References: <43FE6C21.7010302@jays.net> Message-ID: <43FEEF01.6040007@jays.net> > http://search.cpan.org/~rfrankel/iCal-Parser-1.11/lib/iCal/Parser.pm > > { > calendars=>[\%cal, ...], > events=>{yyyy=>{mm=>{dd}=>{UID=>\%event}} > todos=>[\%todo, ...] > } ( The code above is missing a "}" after "mm". Not Brian's fault -- the author's documentation contains the error. Not encouraging when the SYNOPSIS is unusable? -grin-) Hmmm... I know nothing about this stuff, but my 10m review makes me wonder what the point of iCal::Parser is. Looks to me like it's just turning a big ugly file into a big ugly nested complex data structure, and I'm not sure how that makes your desired task any easier... Perhaps iCal::Parser isn't the right tool for this job? I found Net::iCal on CPAN, which looks like it might help you more? Here's an example that walks through a calendar printing stuff: http://cvs.sourceforge.net/viewcvs.py/reefknot/Net-ICal/examples/showical.perl?rev=1.6&view=auto Looks like Net::iCal turns those files into easier-to-use objects? HTH, j From jbisbee at gmail.com Fri Feb 24 03:42:33 2006 From: jbisbee at gmail.com (Jeff Bisbee) Date: Fri, 24 Feb 2006 06:42:33 -0500 Subject: [Omaha.pm] Fwd: iCal::Parser - or how to iterate through this hash? In-Reply-To: <43FEEF01.6040007@jays.net> References: <43FE6C21.7010302@jays.net> <43FEEF01.6040007@jays.net> Message-ID: <48B23B91-9AC5-4924-BC50-815FC53F8E4E@gmail.com> On Feb 24, 2006, at 6:33 AM, Jay Hannah wrote: > Looks like Net::iCal turns those files into easier-to-use objects? I know from experience that Net::ICal doesn't work on say .ics files generated from Mac ICal. iCal::Parser looks promising (compared to all the other ICal::* stuff I've seen). So is iCal::Parser not working on your ics file or you just can't it working period? Jeff Bisbee / jbisbee at gmail.com / jbisbee.com From jay at jays.net Fri Feb 24 03:55:11 2006 From: jay at jays.net (Jay Hannah) Date: Fri, 24 Feb 2006 05:55:11 -0600 Subject: [Omaha.pm] Fwd: iCal::Parser - or how to iterate through this hash? In-Reply-To: <43FE6C21.7010302@jays.net> References: <43FE6C21.7010302@jays.net> Message-ID: <43FEF41F.2010901@jays.net> > print "SUMMARY: "; > # http://search.cpan.org/~rfrankel/iCal-Parser-1.11/lib/iCal/Parser.pm > print > $hash->{events}->{2006}->{2}->{6}->{'uuid:1139273884656'}->{SUMMARY} . "\n"; > # Don't know what to do with this stuff here, probably need to READ more. =) Not suggesting this is a good idea, but... something like this? Eeek, I feel so dirty... -grin- $ cat j.pl $hash->{events}->{2006}->{2}->{6}->{'uuid:1139273884656'}->{SUMMARY} = "test1"; $hash->{events}->{2006}->{2}->{7}->{'uuid:1139273884656'}->{SUMMARY} = "test2"; $hash->{events}->{2006}->{3}->{7}->{'uuid:1139273884656'}->{SUMMARY} = "test3"; my $events = $hash->{events}; my ($y, $m, $d, $uuid, $summary); foreach $y (keys %{$events}) { foreach $m (keys %{$events->{$y}}) { foreach $d (keys %{$events->{$y}->{$m}}) { foreach $uuid (keys %{$events->{$y}->{$m}->{$d}}) { $summary = $events->{$y}->{$m}->{$d}->{$uuid}->{SUMMARY}; printf("%04d-%02d-%02d %s %s\n", $y, $m, $d, $uuid, $summary); } } } } $ perl j.pl 2006-03-07 uuid:1139273884656 test3 2006-02-06 uuid:1139273884656 test1 2006-02-07 uuid:1139273884656 test2 Sorry about that, -laugh- j ewwwww From dutch at tconl.com Fri Feb 24 06:00:57 2006 From: dutch at tconl.com (Brian Edwards) Date: Fri, 24 Feb 2006 08:00:57 -0600 Subject: [Omaha.pm] Fwd: iCal::Parser - or how to iterate through this hash? In-Reply-To: <43FE6C21.7010302@jays.net> References: <43FE6C21.7010302@jays.net> Message-ID: <200602240800.57429.dutch@tconl.com> I used Tie::iCal - http://search.cpan.org/~bsdz/Tie-iCal-0.13/ Home office users schedule events via web interface or events are generated by system. Remote users sync calendars over vpn using Thunderbird / Calendar extension and webdav. Just showing $event_date retrieval here to point out ics expecting 'YYYYMMDD' + time format for those dates. Note - around "tie %cal" there should be some file locking so multiple instances don't stomp on each other. Tie::iCal can use Tie::File flock (see documentation). Bottom code snippet shows access to internal hash structure. Dutch -------------------------------------------------------- # # yes, there is only one row per cust in the db :-) # my $event_date = $dbh->selectrow_array(" SELECT to_char(schedule_next_date, 'YYYYMMDD') FROM review_schedule WHERE id_cust = $customer_number "); # # Please guarantee unique id # my $event_id = "scheduled-review-$customer_number-$route"; # # Should get object returned so can do file locking, # maybe my $cal_object = tie %cal, -rest of line- # and then $cal_object->{A}->flock or don't proceed # tie %cal, 'Tie::iCal', "/dav/division$div/ics/div$div.ics" or die "Failed to tie file: /dav/division$div/ics/div$div.ics\n"; $cal{$event_id} = [ 'VEVENT', { 'SUMMARY' => "BR $customer_number $cust_name", 'LOCATION' => "$city_state", 'CLASS' => 'PRIVATE', 'STATUS' => 'TENTATIVE', 'DESCRIPTION' => "Route $route Customer $customer_number", # # Not really scheduling time, just want event to show up on that day # 'DTSTAMP' => $event_date . "T080000", 'DTSTART' => $event_date . "T080000", 'DTEND' => $event_date . "T080001" } ]; untie %cal; -------------------------------------------------------- # # Accessing hash event structure: # foreach $key (sort (keys(%cal))) { print "$key\n"; print "$cal{$key}[1]->{SUMMARY}\n"; print "$cal{$key}[1]->{LOCATION}\n"; print "$cal{$key}[1]->{DESCRIPTION}\n"; print "$cal{$key}[1]->{DTSTART}\n"; print "$cal{$key}[1]->{DTEND}\n\n"; } > -------- Original Message -------- > Subject: iCal::Parser - or how to iterate through this hash? > Date: Wed, 22 Feb 2006 09:47:23 -0800 > From: Brian Wiese > To: Perl Mongers of Omaha, Nebraska USA > > > > I've been out of touch with perl for some time now, but have remained on > the list and now I need some help. =) For a little project, I'd like to > parse my iCal files and (eventually) populate a mysql db. (I thought it > sounded simple too!) I've been messing with out iCal::Parser (since it > sounds good) but am in over my head and am thinking maybe there is an > easier route? From jay at jays.net Fri Feb 24 06:44:31 2006 From: jay at jays.net (Jay Hannah) Date: Fri, 24 Feb 2006 08:44:31 -0600 Subject: [Omaha.pm] Next BioPerl lab In-Reply-To: <43fe518c.38893185.4433.2da5@mx.gmail.com> References: <43fe518c.38893185.4433.2da5@mx.gmail.com> Message-ID: <43FF1BCF.7050404@jays.net> Dr. Dhundy R. Bastola wrote: > Sounds good. 10am on Sunday, Oakview Panera. See you there! I wrote this FAQ in case people are wondering what we're up to. Feel free to massively expand it if you want. :) http://omaha.pm.org/kwiki/index.cgi?BioPerl j From hwolfe at inetnebr.com Sat Feb 25 20:48:06 2006 From: hwolfe at inetnebr.com (Herb Wolfe, Jr) Date: Sat, 25 Feb 2006 22:48:06 -0600 Subject: [Omaha.pm] winamp playlists Message-ID: <44013306.5010109@inetnebr.com> Does anyone know offhand, if there's a script that will either convert a .m3u playlist, or the html playlist that winamp generates into something neater and preferably more standards compliant? Even something that strips everything but the list of songs would work. I'm maintaining two playlists for an online radio station I DJ on, and I want to make it as easy as possible to keep them updated. Thanks in advance, Herb From jay at jays.net Sun Feb 26 07:06:08 2006 From: jay at jays.net (Jay Hannah) Date: Sun, 26 Feb 2006 09:06:08 -0600 Subject: [Omaha.pm] winamp playlists In-Reply-To: <44013306.5010109@inetnebr.com> References: <44013306.5010109@inetnebr.com> Message-ID: <4401C3E0.90905@jays.net> Herb Wolfe, Jr wrote: > Does anyone know offhand, if there's a script that will either convert a > .m3u playlist, or the html playlist that winamp generates into something > neater and preferably more standards compliant? Even something that > strips everything but the list of songs would work. Have you looked on search.cpan.org? I searched for "winamp" and got a few hits. You might check those out. j From jay at jays.net Sun Feb 26 12:04:23 2006 From: jay at jays.net (Jay Hannah) Date: Sun, 26 Feb 2006 14:04:23 -0600 Subject: [Omaha.pm] BioPerl lab Message-ID: <440209C7.2050706@jays.net> (1) Kiran, have you seen this? http://www.ncbi.nlm.nih.gov/projects/gbench/ What if we integrated primer group management into Genome Workbench instead of making it server-side and browser based? Would that be better? Worse? I can't seem to get off the ground w/ Genome Workbench on my Mac OSX 10.3.9 (30m of effort). It installed fine, but I can't load any data into it. Maybe I have another reason to upgrade my OSX now? -grin- (2) Here's the flow chart we were kicking around this morning: http://omaha.pm.org/bioperl/bioperl-db-extend.graffle.pdf (3) Some interesting UNO resources: http://www.bioinformatics.unomaha.edu/ The "UNO NCBI Workshop Lecture Slides" are very cool under announcements and events. j Note to self: Check out the clickable bottom section of these web pages: Pre-generated .png's and image maps. http://www.ncbi.nlm.nih.gov/entrez/sutils/ncgraph.fcgi?image=main&key=NCID_01_446894_service3_9005_1140973822&obj=ProtMap_17014&chrgi=17014&start=1&window_length=27771&total_length=29751&iscir=0 From jay at jays.net Sun Feb 26 12:54:08 2006 From: jay at jays.net (Jay Hannah) Date: Sun, 26 Feb 2006 14:54:08 -0600 Subject: [Omaha.pm] Fwd: Newsletter from O'Reilly UG Program, February 24 Message-ID: <44021570.8030500@jays.net> Perl filtered: ***Wicked Cool Perl Scripts Publisher: No Starch Press ISBN: 1593270623 Most Perl programmers have been frustrated at one time or another because the system just wouldn't do what they wanted it to do. There was that one simple and obvious utility that was missing that would make life so much easier. "Wicked Cool Perl Scripts" is about writing those utilities quickly and easily. A collection of handy utilities that solves difficult problems, "Wicked Cool Perl Scripts" is a great resource for the savvy Perl programmer. Perl Hacks Entire newsletter below. Cheers, j -------- Original Message -------- Subject: Newsletter from O'Reilly UG Program, February 24 Date: Fri, 24 Feb 2006 14:58:30 -0800 From: Marsee Henon To: jay at jays.net ================================================================ O'Reilly UG Program News--Just for User Group Leaders February 24, 2006 ================================================================ -Belong to or Know About a Photography, Video, or Design group? -RSS Feed Now Available on ug.oreilly.com -Do You Have Something Newsworthy to Share? -Put Up an O'Reilly ETech Banner, Get a Free Book -Put Up a MySQL Users Conference Banner Get a Free Book -Promotional Material Available ---------------------------------------------------------------- Book Info ---------------------------------------------------------------- ***Review Books are Available Copies of our books are available for your members to review-- send me an email and please include the book's ISBN number on your request. Let me know if you need your book by a certain date. Allow at least four weeks for shipping. ***Please Send Copies of Your Book Reviews Email me a copy of your newsletter or book review. For tips and suggestions on writing book reviews, go to: ***Discount Information Don't forget to remind your members about the 30% discount on O'Reilly, No Starch, Paraglyph, PC Publishing, Pragmatic Bookshelf, SitePoint, and Syngress books. Just use code DSUG. ***Group Purchases with Better Discounts are Available Please let me know if you are interested and I can put you in touch with our sales department. ---------------------------------------------------------------- General News or Inquiries ---------------------------------------------------------------- ***Belong to or Know About a Photography, Video, or Design Group? We are looking for creative groups or associations to join our program. Feel free to pass my name along or send me an email. ***RSS Feed now available on the ug.oreilly.com To sign up, go to: For more information on RSS or Atom Feeds at O'Reilly, go to: ***Do You Have Something Newsworthy to Share? We can include it in the news section of our user group page and RSS Feed. Send me a short description and a URL. ***Put Up an O'Reilly ETech Banner, Get a Free Book We're looking for user groups to display our conference banner on their web sites. If you send me the link to your group's site with our O'Reilly Emerging Technology Conference banner, I will send you the O'Reilly book of your choice. ETech Banners: ***Put Up a MySQL Users Conference Banner Get a Free Book We're looking for user groups to display our conference banner on their web sites. If you send me the link to your group's site with our MySQL Users Conference banner, I will send you the O'Reilly book of your choice. MySQL Users Conference: ***Promotional Material Available: The following items are available for your next meeting. (Let me know the item and the amount you'd like): -Photoshop World Expo Passes, MIami, FL--March 23 (print or PDF available) -MAKE Magazine Volume 5 (limit one copy per group) -30% UG Discount bookmarks -ETech Conference brochures -MySQL Conference brochures -Where 2.0 Conference brochures ================================================================ O'Reilly News for User Group Members February 24, 2006 ================================================================ ---------------------------------------------------------------- Book News ---------------------------------------------------------------- -Adobe InDesign CS2 One-on-On -Analyzing Business Data with Excel -Building Extreme PCs -Degunking Your Home -DJ Handbook, Second Edition -DV Filmmaking: From Start to Finish -Fixing Access Annoyances -Fixing PowerPoint Annoyances -Flickr Hacks -How to Cheat at Configuring ISA Server 2004 -Learning C# 2005, Second Edition -Logic Pro Tips and Tricks -Looking Good in Print, Sixth Edition -The Mac Tiger Server Black Book -MAKE: Technology on Your Time Volume 05 -Photoshop Fine Art Effects Cookbook -Programming SQL Server 2005 -Repairing and Upgrading Your PC -Security Log Management -VB 2005 Black Book -Visual Basic 2005 in a Nutshell, Third Edition -Web Design in a Nutshell, Third Edition -Web Site Cookbook -Wicked Cool Perl Scripts ---------------------------------------------------------------- Upcoming Events ---------------------------------------------------------------- -Julieanne Kost ("Window Seat"), Professional Aerial Photographers Association International, Orlando, FL--February 24 -O'Reilly at the PMA International Convention and Tradeshow, Orlando, FL--February 26-March 1 -O'Reilly at FOSDEM, Brussels, Belgium--February 26-27 -Peter Krogh ("The DAM Book"), ASMP Pixel Cash Seminar, Orlando, FL--March 1 -Fine-Art Digital Printing Workshop: Hands-On with Stephen Johnson, Pacifica, CA--March 9-12 -O'Reilly at SXSW Interactive, Austin,TX--March 10-14 -Julieanne Kost ("Window Seat"), Pro Photo Expo 2006, San Diego, CA--March 15 -RAW Image Processing in Adobe Photoshop with Stephen Johnson, Pacifica, CA--March 18 -Mikkel Aaland ("Photoshop CS2 RAW") at Book Passage, Corte Madera, CA--March 18 -Tim O'Reilly at MIX06, Las Vegas, NV--March 20-22 -Peter Krogh ("The DAM Book"), ASMP PixelCash Seminar, San Francisco, CA--March 21 -Dru Lavigne at UKUUG Spring Conference, Durham, UK--March 21-23 ---------------------------------------------------------------- Conference News ---------------------------------------------------------------- -Where 2.0 Registration is Open -MySQL Registration is Open -ETech Registration is Open ---------------------------------------------------------------- News ---------------------------------------------------------------- -A Secret Tip for Taking Great Digital Shots -Quicken 2006 Missing Manual: Setting Up Your Quicken Environment -Early Access to Cutting-Edge Technology -Latest Titles available on O'Reilly Rough Cuts -Introducing Lua -Building a High-Availability MySQL Cluster -Free Mesh Networking with Metrix Pebble -What's New in iWork '06? -Digitizing VHS Tapes with EyeTV -Inside Look: Internet Explorer 7, Beta 2 -Creating an Application from Scratch, Part 3 -A Penny Saved is a Penny Earned -O'Reilly Learning Lab Offers Updated HTML/CSS Course -Information Architecture: Why the Last Page Comes First -Asynchronous Messaging Made Easy With Spring JMS -Playing Together Nicely: Getting REST and SOAP to Share Each Other's Toys -Attention Streams, Taking Pictures, Java in Brazil, and Presenting Differently -Pioneer Podcasters Share Insider Tips, Part 4: Top-of-the-Line Gear and How to Avoid and Fix Errors -Walking the Talk with Julieanne Kost -O'Reilly Photography Learning Center -Speak Your Mind on Digital Media -Calling All Makers! -Meet Your Fellow Makers ================================================ Book News ================================================ Did you know you can request a free book to review for your group? Ask your group leader for more information. For book review writing tips and suggestions, go to: Don't forget, you can receive 30% off any O'Reilly, No Starch, Paraglyph, PC Publishing, Pragmatic Bookshelf, SitePoint, or Syngress book you purchase directly from O'Reilly. Just use code DSUG when ordering online or by phone 800-998-9938. ***Free ground shipping is available for online orders of at least $29.95 that go to a single address. This offer applies to US delivery addresses in the fifty states and Puerto Rico. For more details, go to: ---------------------------------------------------------------- New Releases ---------------------------------------------------------------- ***Adobe InDesign CS2 One-on-One Publisher: O'Reilly ISBN: 0596100973 This unique, hands-on book comes with two hours of video instruction (hosted by Deke McClelland himself) on DVD to get you working with InDesign right away, building relevant, real-world projects while mastering fundamental and advanced concepts, theory, best practices, and techniques for making the most of InDesign--to make the most of your page designs. ***Analyzing Business Data with Excel Publisher: O'Reilly ISBN: 0596100736 Learn how to apply Excel's advanced data analysis features to solve real-world business problems. This hands-on reference targets specific business situations, then demonstrates how to create spreadsheets for these problem areas. Topics include statistics, pivot tables, workload forecasting, modeling, queuing, data importing, and more. Perfect for professional Excel users working in an office environment. ***Building Extreme PCs The Complete Guide to Modding and Custom PCs Publisher: O'Reilly ISBN: 0596101368 "Building Extreme PCs" is the ultimate guide to the world of PC modification and customization. Both a showcase and a DIY handbook, it goes in-depth into system building, overclocking, cooling, and modification, reveals the secrets of optimization and benchmarking, then moves on to cover some of the most exciting and inspirational custom built systems around. From silent systems to multi-processor monsters, from gaming powerhouses to neon-lit speed machines, this book has it all, complete with guidance from the people who made them. ***Degunking Your Home Publisher: Paraglyph Press January 2006 ISBN: 1933097116 Do you find yourself in one or more of these situations--you're constantly losing your car keys, the "junk" room has threatened to take over your house, or you can't remember the last time you could quickly find something in the garage? Then you need to get organized quickly and degunk! Author Joli Ballew will show you how simple it is to declutter, organize, make your home really work for you, and keep it looking great with her easy and time-saving 12-step program. Even if you have a busy and hectic life, you can keep your home organized and clean. ***DJ Handbook, Second Edition Publisher: PC Publishing ISBN: 1870775996 Written by a working DJ who's been there and done that, "The DJ Handbook" is an essential read for every DJ. You'll find advice on choosing equipment (microphones, decks, cartridges, headphones, speakers, and the rest), as well as setting it all up and getting the best sound out of it--whatever the venue. Plus hands-on advice on transport, setting up your sound system at the gig, dealing with punters, looking after safety, and troubleshooting your equipment. ***DV Filmmaking: From Start to Finish Publisher: O'Reilly ISBN: 0596008481 Written in an engaging, accessible style, "DV Filmmaking" provides a solid foundation of tremendous value to a beginner, while addressing the fine points of filmmaking with a level of sophistication, detail, and insight that even the most worldly director or educator can appreciate. The author draws upon his years of experience teaching at the college and graduate level, his extensive professional background as a media producer, and his unmistakable love of cinema to create a text that's not only easy to learn from, but also fun to read. ***Fixing Access Annoyances Publisher: O'Reilly ISBN: 059600852X Access is one of the easier and more flexible database management solutions for organizing data. You could grab other books for help, but do they solve problems from page one? Meet a book of a different stripe where newcomers start off right and learn valuable methods for building databases while seasoned pros gain efficiency. "Fixing Access Annoyances" saves time and bouts of hair pulling. ***Fixing PowerPoint Annoyances Publisher: O'Reilly ISBN: 0596100043 Microsoft PowerPoint is the most popular presentation software on the planet. Since an estimated 30 million PowerPoint presentations are made every day, no matter how frustrating it gets, you're not about to chuck the program in the recycle bin. If you're vexed and perplexed by PowerPoint, this new guide presents a variety of all-too-familiar, real-world annoyances and smart solutions for every one of them. ***Flickr Hacks ISBN: 0596102453 "Flickr Hacks" expands the fun and the utility of Flickr, Yahoo!'s popular digital photo-sharing service, by customizing this cutting-edge technology to store, sort, and share photos. The book adopts the game-like appeal of the Flickr site, in individual projects ranging from easy to advanced. Quick hacks show you how to post photos directly to blogs and upload photos from a cellphone. Advanced hacks teach you to use the Flickr API, make photo puzzles and collages, and geocode photos to plot on a map. ***How to Cheat at Configuring ISA Server 2004 ISBN: 1597490571 If deploying and managing ISA Server 2004 is just one of a hundred responsibilities you have as a System Administrator, "How to Cheat at Configuring ISA Server 2004" is the perfect book for you. Written by Microsoft MVP Dr. Tom Shinder, this is a concise, accurate, enterprise tested method for the successful deployment of an ISA Server. ***Learning C# 2005, Second Edition Publisher: O'Reilly ISBN: 0596102097 Completely revised to cover C# 2.0 and Visual Basic 2005, this introductory guide offers a thorough introduction to Microsoft's premier .NET language. Discover how to develop various kinds of web services and applications--including those that work with databases. More than 200 questions and programming exercises make mastering the essentials of the C# language easy and fun. ***Logic Pro Tips and Tricks Publisher: PC Publishing ISBN: 1870775333 The tips and tricks in this book are laid out in an easy to use format, and will allow you to get the best from the program when recording, editing, mixing, and mastering. There are sections on setting up, optimizing, and organizing your workflow. You'll discover easy ways to perform many complex tasks, and there's a plethora of other tips and pointers that reveal many of Logic's 'hidden' functions. ***Looking Good in Print, Sixth Edition Publisher: Paraglyph Press ISBN: 193309706X "Looking Good in Print" is celebrating fifteen years in print with the newest edition "Looking Good in Print, Sixth Edition." This book has grown over the years to become the "Bible" for desktop publishers and it is widely used as the leading text for courses on desktop publishing. This new edition is updated and expanded to reflect the growing needs of desktop publishers who need to be proficient at creating documents for both print and electronic publication and distribution. ***The Mac Tiger Server Little Black Book Publisher: Paraglyph Press ISBN: 1933097140 This unique black book guides you through all the aspects of the new Mac Tiger Server including understanding the Apple network, managing network access, and network protocols such as TCP/IP AppleTalk, and the OSI model. It's jam-packed with hundreds of "how-to" tips to ensure that servers are set up correctly and they operate as efficiently as possible. ***MAKE: Technology on Your Time Volume 05 ISBN: 0596523688 Every issue of MAKE is packed with projects to help you make the most of all the technology in your life. Everything from home entertainment systems, to laptops, to a host of PDAs is fair game. If there's a way to hack it, tweak it, bend it, or remix it, you will find out about it here. ***Mind Performance Hacks Publisher: O'Reilly ISBN: 0-596-10153-8 "Mind Performance Hacks" provides real-life tips and tools for overclocking your brain and becoming a better thinker. In the increasingly frenetic pace of today's information economy, managing your life requires hacking your brain. With this book, you'll cut through the clutter and tune up your brain intentionally, safely, and productively. ***Photoshop Fine Art Effects Cookbook Publisher: O'Reilly ISBN: 0596100620 "Photoshop Fine Art Effects Cookbook" tells you all you need to know to turn your digital photographs into images that mimic the styles of great visual artists. From advice on how to choose appropriate subject matter to 62 step-by-step recipes that show you how to create an "original" van Gogh, Vermeer, Edward Weston, or Andy Warhol (among others), this book is an authentic guide to simulating the work of great artists-and a whole lot of fun. ***Programming SQL Server 2005 Publisher: O'Reilly ISBN: 0596004796 Ideal for IT professionals of all stripes, this authoritative guide introduces all facets of SQL Server 2005, Microsoft's next-generation data management and analysis solution. The book explains all of its new features, and shows you how they can help conquer a variety of data challenges. Learn how to reduce the complexity of building, deploying and managing database applications, and much more. ***Repairing and Upgrading Your PC Publisher: O'Reilly ISBN: 059600866X Repairing and Upgrading Your PC delivers start-to-finish instructions, simple enough for even the most inexperienced PC owner, for troubleshooting, repairing, and upgrading your computer. Written by hardware experts Robert Bruce Thompson and Barbara Fritchman Thompson, this book covers it all: how to troubleshoot a troublesome PC, how to identify which components make sense for an upgrade, and how to tear it all down and put it back together. ***Security Log Management Publisher: Syngress ISBN: 1597490423 As a system administrator or security professional, you probably find yourself inundated each day with a deluge of log files from seemingly countless devices, servers, and applications on your network ranging from Windows Server to Snort to your PIX firewall and everything in between. This unique book will show you how to use a combination of open source software such as Tcpdstats, and Snort perfmonitor to create succinct, meaningful reports that give you the big picture of your network's overall health and well being. So, if you need to analyze and prioritize everything from how much of your bandwidth is devoted to browsing ESPN.com, to the most targeted machines in your IDS logs, this is the book for you. ***VB 2005 Little Black Book Publisher: Paraglyph Press ISBN: 1933097086 "Visual Basic 2005 Programming Little Black Book" is one of the first comprehensive books that cover the new version of Visual Basic and the development features of Microsoft's .NET platform in depth. The book explains the major changes to VB and provides numerous tips and practical solutions for developing applications. ***Visual Basic 2005 in a Nutshell, Third Edition Publisher: O'Reilly ISBN: 059610152X Newly updated, this classic detailed reference to the Visual Basic programming language had been reorganized to cover all the ins and outs of Visual Basic 2005, including new features like Generics, My Namespace, and operators. An alphabetical reference to Visual Basic 2005 statements, procedures, functions, and objects makes sure you follow along. Ideal for developers, programmers, and anyone learning VB as a first language. ***Web Design in a Nutshell, Third Edition Publisher: O'Reilly ISBN: 0596009879 Our popular reference, "Web Design in a Nutshell," has been completely rewritten and expanded to reflect the state of the art in web standards. In addition to being an authoritative reference for (X)HTML and Cascading Style Sheets, this book also provides an overview of the unique requirements of designing for the Web and gets to the nitty-gritty of JavaScript and DOM Scripting, web graphics optimization, and multimedia production. It is an indispensable tool for web designers and developers of all levels. ***Web Site Cookbook Publisher: O'Reilly ISBN: 0596101090 This handy guide provides a wide range of solutions to real-life problems that come up regularly when creating and growing a web site. With recipes that teach both routine and advanced setup tasks, the book includes clear and professional instruction on a host of topics. Learn page design, visitor tracking, site promotion, and much more. ***Wicked Cool Perl Scripts Publisher: No Starch Press ISBN: 1593270623 Most Perl programmers have been frustrated at one time or another because the system just wouldn't do what they wanted it to do. There was that one simple and obvious utility that was missing that would make life so much easier. "Wicked Cool Perl Scripts" is about writing those utilities quickly and easily. A collection of handy utilities that solves difficult problems, "Wicked Cool Perl Scripts" is a great resource for the savvy Perl programmer. ***MAKE Magazine Subscriptions Available The annual subscription price for four issues is $34.95. When you subscribe with this link, you'll get a free issue--the first one plus four more for $34.95. So subscribe for yourself or friends with this great offer for charter subscribers: five volumes for the cost of four. Subscribe at: ================================================ Upcoming Events ================================================ ***For more events, please see: http://events.oreilly.com/ ***Julieanne Kost ("Window Seat"), Professional Aerial Photographers Association International, Orlando, FL--February 24 Author Julieanne Kost presents "Photoshop CS2--Tips and Tricks." ***O'Reilly at the PMA International Convention and Tradeshow, Orlando, FL--February 26-March 1 Stop by our booth (#2117) to check out our digital media titles. ***O'Reilly at FOSDEM, Brussels, Belgium--February 26-27 The sixth Free and Open Source Software Developers' European Meeting is organized by volunteers to promote the widespread use of free and open source software. ***Peter Krogh ("The DAM Book"), ASMP Pixel Cash Seminar, Orlando, FL--March 1 Author Peter Krogh gives a three-hour comprehensive overview of Digital Asset Management techniques for the professional photographer. ***Fine-Art Digital Printing Workshop: Hands-On with Stephen Johnson, Pacifica, CA--March 9-12 Photographer and author Stephen Johnson ("Stephen Johnson on Digital Photography") presents a four day workshop focusing exclusively on fine-art digital printing, primarily using Epson inkjet printers. Concentration will be on inkjet printing with color pigments and black/gray ink combinations on coated and rag papers. Learn from the digital pioneer how he obtains his impressive results during four days of lectures, printing, and feedback in the studio. ***O'Reilly at SXSW Interactive, Austin,TX--March 10-14 Authors Kathy Sierra ("Head First Java, Second Edition"), Peter Morville ("Ambient Findability"), and Jennifer Niederst Robbins ("Web Design in a Nutshell, Third Edition") will be there. Make sure you stop by our booth to check out our latest books. ***Julieanne Kost ("Window Seat"), Pro Photo Expo 2006, San Diego, CA--March 15 Author Julieanne Kost presents "Adobe Photoshop CS2--Welcome Aboard." ***RAW Image Processing in Adobe Photoshop with Stephen Johnson, Pacifica, CA--March 18 Photographer and author Stephen Johnson ("Stephen Johnson on Digital Photography") presents this one-day seminar explores this process with Adobe's new Photoshop CS2 Camera Raw processor. ***Mikkel Aaland ("Photoshop CS2 RAW") at Book Passage, Corte Madera, CA--March 18 Photographer and author Mikkel Aaland disscusses and signs his newest book. ***Tim O'Reilly at MIX06, Las Vegas, NV--March 20-22 Microsoft's new MIX conference is for developers, designers, and business professionals who create consumer-oriented web sites. Hear Bill Gates, Tim O'Reilly, and other industry leaders talk about the new and unique experiences that can be delivered over the Web. ***Peter Krogh ("The DAM Book"), ASMP PixelCash Seminar, San Francisco, CA--March 21 Author Peter Krogh gives a three-hour comprehensive overview of Digital Asset Management techniques for the professional photographer. ***Dru Lavigne at UKUUG Spring Conference, Durham, UK--March 21-23 Author Dru Lavigne (BSD Hacks) delivers the keynote as well as a talk on BSD Certification at this year's conference. ================================================ Conference News ================================================ ***Where 2.0 Early Registration is Open The Where 2.0 Conference brings together the people, projects, and issues leading the charge into the location-based technology frontier. Join the developers, innovators, and business people behind the new era of geospatial technology as they come together--because everything happens somewhere, and it's all happening here. Where 2.0 Conference, June 13-14, 2006 Fairmont Hotel, San Jose, CA User Group members who register before April 24, 2006 get a double discount. Use code "whr06dsug" when you register, and receive 15% off the early registration price. To register for the conference, go to: ***MySQL Users Conference Join us at the 2006 edition of the MySQL Users Conference, the largest gathering of MySQL developers, users, and DBAs. It is the only event where you will be able to join the core MySQL development team and over 1000 users, open source innovators, and technology partners under one roof. MySQL Users Conference, April 24-27, 2006 Santa Clara Convention Center, Santa Clara, CA User Group members who register before March 6, 2006 get a double discount. Use code "mys06dusg" when you register, and receive 15% off the early registration price. To register for the conference, go to: ***Register for O'Reilly Emerging Technology Conference We're five years into the O'Reilly Emerging Technology Conference and the stuff of which it is made shows no sign of abating: bandwidth continues to broaden, storage grows ever larger and cheaper, and content keeps spraying from the fire hose. How do we visualize all of this digital data, filter it, remix it, and access it in meaningful ways? The coming technical challenge is not about generating digital content-we have more than enough already. It's time to do something with that data. It's time to build The Attention Economy. O'Reilly Emerging Technology Conference, March 6-9, 2006 Manchester Grand Hyatt, San Diego, CA Use code "et06dsug" when you register, and receive 20% off the registration price. To register for the conference, go to: ================================================ News From O'Reilly & Beyond ================================================ --------------------- General News --------------------- ***A Secret Tip for Taking Great Digital Shots Want to impress friends and family with professional-looking photos? Professional photographer and best-selling author Derrick Story provides his favorite tip--using a flash setting--for taking great shots for better skin tone, reduced texture in the face, and adding a twinkle to the eyes. ***Quicken 2006 Missing Manual: Setting Up Your Quicken Environment After you install Quicken, you're only a few steps away from experiencing the joys of electronic personal finance. Chapter 1 of "Quicken 2006 for Starters: The Missing Manual" gets you out of the gate running, guiding you through launch, set up and the intricate preferences. If you like this chapter, read the whole book (and up to nine others) on Safari with a free trial subscription. ***Early Access to Cutting-Edge Technology O'Reilly's Safari Books Online has just announced a new service called Rough Cuts that gives you early access to content on cutting-edge technologies months before it's published. Rough Cuts allows you to purchase work-in-progress manuscripts of selected titles. For more information, go to: Latest Titles Available: Perl Hacks Ubuntu Hacks Ajax Design Patterns Java and XML, 3rd Edition --------------------- Open Source --------------------- ***Introducing Lua Scripting is highly important to extensible applications. Not only is it easier to write logic in higher-level languages, but it's often safer. It can be effective, too--consider that World of Warcraft and other games embed the Lua language and use it for scripts, AI, configuration, and even user interface management. Why Lua? Keith Fieldhouse introduces the language and explains why it's so appropriate. ***Building a High-Availability MySQL Cluster Serious business services really can't go down, whether due to hardware or software failures. If your necessary services rely on MySQL, clustering and high availability can prevent failures. Kris Buytaert shows how his group recently used MySQL Cluster and Heartbeat to provide redundant, failure-proof replication and availability of their data. ***Free Mesh Networking with Metrix Pebble Metrix Pebble is a variant of the popular Pebble Linux distribution that adds a web-based configuration GUI, support for OLSRD and EVDO, automatic generation of network flows, wireless users, and radio link status graphs using rrdtool, and fits in just under 64MB of flash memory. Rob Flickenger describes how to use Metrix Pebble to set up a wireless mesh network. --------------------- Mac --------------------- ***What's New in iWork '06? iWork's tandem offering of Pages and Keynote provides a useful collection of tools for presentations, word processing, and layout. But how much has changed since last year's debut? Giles Turnbull walks you through Pages 2 and Keynote 3 to help decide if this upgrade is for you. ***Digitizing VHS Tapes with EyeTV By digitizing your old VHS tapes, you can move them from taking up precious shelf space to more readily available disk space. In this article, Joe McMahon shows you a hack that lets you archive full-quality digital recordings from EyeTV to offline media, but still play them back easily in EyeTV. --------------------- Windows/.NET --------------------- ***Inside Look: Internet Explorer 7, Beta 2 The long-awaited Beta 2 of IE 7 is finally here. What's new, good, and better? Wei-Meng Lee gives you a guided tour and an inside look. ***Creating an Application from Scratch, Part 3 Jesse Liberty is creating an application from scratch in ASP.NET 2.0 while you watch over his shoulder. In part 3, he builds the engine and implements it. --------------------- Web --------------------- ***A Penny Saved is a Penny Earned Think ecommerce web sites on the cheap are impossible? Find out how to get a site off the ground for less than $2000. ***O'Reilly Learning Lab Offers Updated HTML/CSS Course Keep on the cutting edge of web programming with our newly updated HTML/CSS course, part of our hugely popular Web Programming Certificate series through the University of Illinois Office of Continuing Education. Keep your free O'Reilly books for reference, and your Learning Lab account as an online portfolio. Pre-enroll in all six Web Programming courses and get HTML/CSS free. Offer good through February 28th. ***Information Architecture: Why the Last Page Comes First When designing a site, are you still creating the frontpage first? Find out why this is a mistake, and a better way to approach it. --------------------- Java --------------------- ***Asynchronous Messaging Made Easy With Spring JMS Java Messaging Service (JMS) requires a lot of work to set up sessions and manage messages, work that can distract you from your application-specific logic. The Spring framework's SpringJMS offers a simpler solution that keeps the JMS administration out of your face. Srini Penchikala takes a look. ***Playing Together Nicely: Getting REST and SOAP to Share Each Other's Toys Convincing your colleagues and clients to consider a RESTful approach to SOAP is difficult when the accepted standard is SOAP-style services. In this article, Jason R. Briggs introduces a SOAP interface that can be used to deliver SOAP messages from REST resources. --------------------- Podcasts --------------------- ***Attention Streams, Taking Pictures, Java in Brazil, and Presenting Differently Rael Dornfest and Tim O'Reilly continue their preview of next month's Emerging Technology conference, Bruno Souza talks to us about Java in Brazil, conference photographer James Duncan Davidson discusses his art, and "Why the Lucky Stiff" shows us that conference presentations can be much more creative than they tend to be. (DTF 02-17-2006: 28 minutes 37 seconds) ***Pioneer Podcasters Share Insider Tips, Part 4: Top-of-the-Line Gear and How to Avoid and Fix Errors Listen in as Jack Herrington, the author of "Podcasting Hacks," chats with pioneer podcasters Doug Kaye and James Polanco. Doug is the founder of IT Conversations, the influential site that features podcasts covering important events, programs, and interviews with industry luminaries. James is the founder of "Fake Science," the popular podcast radio show covering all things digital music--news, reviews, and profiles of digital artists. --------------------- Digital Media --------------------- ***Walking the Talk with Julieanne Kost In addition to over 150 full-color images, Julieanne Kost's new book, "Window Seat: The Art of Digital Photography and Creative Thinking" includes details on such topics as how to make great-looking images of clouds, mountains, farmland, and water, while photographing through airplane windows. This excerpt from Kost's book explains how to do just that. Kost details some of the techniques she used to transform images captured from the skies above into the final images that appear in the book. ***O'Reilly Photography Learning Center The O'Reilly Photography Learning Center is an evolving resource of tips, tricks, and techniques for photographers, both professional and amateur alike. Each month, we highlight a featured author, provide tips and techniques, and offer special discounts. Right now, check out Deke McClelland's tried and true teaching method for learning Photoshop CS2. ***Speak Your Mind on Digital Media Fill out a short survey (less than 10 minutes) and help us bring you the most accessible, best-written, cost-effective, and useful digital media resources on Earth. And don't forget to give us your email address at the end of the survey for a chance to win several great prizes! --------------------- MAKE --------------------- ***Calling All Makers! On April 22nd and 23rd at the San Mateo Fairgrounds, MAKE magazine, the first magazine devoted entirely to DIY technology projects, is hosting Maker Faire. This event is the first ever public gathering of tech DIY enthusiasts, educators, tinkerers, hobbyists, science clubs, students, authors, and exhibitors. Maker Faire will include 6 exposition & workshop pavilions, a 5-acre outdoor midway, over 100 exhibiting Makers, hands-on workshops, demonstrations, DIY competitions, and the latest in tools, kits and DIY resources. The Maker Faire will also be featuring The Ultimate Garage (automative meets tech DIY), Robotics, Digital Entertainment/Gaming, Green Tech & Electronics Recycling, Ultimate Workshop, Weird Science, and the MAKE: Remix video film festival. More info: The Call for Proposals is now open. If you have an interesting project that you are bursting to share with your fellow Makers, here's your chance! You will have the opportunity to explain how the project works and to demonstrate it to an inquisitive and appreciative audience. Plus, you will have the opportunity to roam the Faire and spend some downtime with fellow Makers. Each Maker will be assigned to a half-day time slot on Saturday or Sunday. Your proposal should include a short description of your project and a brief profile describing yourself. This information will appear in the Maker Faire program and on makezine.com. Also, please state any special requirements (power, connectivity, ventilation, etc.) you may have. Submit a proposal today: Important Dates: Maker Proposal Due: Midnight (PST) Feb. 27, 2006 Speaker Notification: March 15, 2006 Workshop and Presentations Files Due: April 10, 2006 Faire: April 22-23, 2006 ***Meet Your Fellow Makers Find and post events, exhibits, and more with Maker events listings: ***Try a Sample Project from MAKE: Until next time-- Marsee Henon ================================================================ O'Reilly 1005 Gravenstein Highway North Sebastopol, CA 95472 http://ug.oreilly.com/ http://www.oreilly.com ================================================================ From kiranbina at gmail.com Sun Feb 26 18:01:34 2006 From: kiranbina at gmail.com (Dr. Dhundy R. Bastola) Date: Sun, 26 Feb 2006 20:01:34 -0600 Subject: [Omaha.pm] BioPerl lab In-Reply-To: <440209C7.2050706@jays.net> Message-ID: <44025d97.5346e154.3813.fffff555@mx.gmail.com> J The genome workbench is interesting. I did not know about it. I think having it under the bioperl umbrella is still a good choice. It will give more flexibility. I got the workbench loaded in my laptop. I will share with you as I learn more about the program and if it is some thing we discussed? kiran -----Original Message----- From: omaha-pm-bounces+kiranbina=gmail.com at pm.org [mailto:omaha-pm-bounces+kiranbina=gmail.com at pm.org] On Behalf Of Jay Hannah Sent: Sunday, February 26, 2006 2:04 PM To: Perl Mongers of Omaha, Nebraska USA Subject: [Omaha.pm] BioPerl lab (1) Kiran, have you seen this? http://www.ncbi.nlm.nih.gov/projects/gbench/ What if we integrated primer group management into Genome Workbench instead of making it server-side and browser based? Would that be better? Worse? I can't seem to get off the ground w/ Genome Workbench on my Mac OSX 10.3.9 (30m of effort). It installed fine, but I can't load any data into it. Maybe I have another reason to upgrade my OSX now? -grin- (2) Here's the flow chart we were kicking around this morning: http://omaha.pm.org/bioperl/bioperl-db-extend.graffle.pdf (3) Some interesting UNO resources: http://www.bioinformatics.unomaha.edu/ The "UNO NCBI Workshop Lecture Slides" are very cool under announcements and events. j Note to self: Check out the clickable bottom section of these web pages: Pre-generated .png's and image maps. http://www.ncbi.nlm.nih.gov/entrez/sutils/ncgraph.fcgi?image=main&key=NCID_0 1_446894_service3_9005_1140973822&obj=ProtMap_17014&chrgi=17014&start=1&wind ow_length=27771&total_length=29751&iscir=0 _______________________________________________ Omaha-pm mailing list Omaha-pm at pm.org http://mail.pm.org/mailman/listinfo/omaha-pm From jay at jays.net Tue Feb 28 03:53:03 2006 From: jay at jays.net (Jay Hannah) Date: Tue, 28 Feb 2006 05:53:03 -0600 Subject: [Omaha.pm] BioPerl lab: Unnamed project spec Message-ID: <4404399F.5000700@jays.net> Hey Kiran -- Can you flush this out? http://omaha.pm.org/kwiki/index.cgi?BioPerl Just click "Edit" and have at it. :) Thanks, j From jay at jays.net Tue Feb 28 04:02:38 2006 From: jay at jays.net (Jay Hannah) Date: Tue, 28 Feb 2006 06:02:38 -0600 Subject: [Omaha.pm] BioPerl lab In-Reply-To: <44025d97.5346e154.3813.fffff555@mx.gmail.com> References: <44025d97.5346e154.3813.fffff555@mx.gmail.com> Message-ID: <44043BDE.7020904@jays.net> Dr. Dhundy R. Bastola wrote: > The genome workbench is interesting. I did not know about it. I think having > it under the bioperl umbrella is still a good choice. It will give more > flexibility. I got the workbench loaded in my laptop. I will share with you > as I learn more about the program and if it is some thing we discussed? I think the root question is: Would the user of our project be better served by a web interface or a fat client? Both have advantages and disadvantages. Or perhaps they use their web browser to set up/manage their databases then they can click somewhere to "Import my project into Genome WorkBench"? Web client: Run from anywhere w/ no special software. Lightweight and accessible. Awesome. Fat client: Graphing, plotting, charting, drag-and-drop data manip. Awesome. j