From linux at alteeve.com Tue May 6 05:53:13 2008 From: linux at alteeve.com (Madison Kelly) Date: Tue, 06 May 2008 08:53:13 -0400 Subject: [tpm] event loop Message-ID: <482054B9.1070104@alteeve.com> Hi all, I am looking for a good starting point to learn about event loops. I've written a simple server and client program, but it's not very smart or intelligent. I've since been learning about Net::DBus and I love how it's reactor loop works, and would like to create something similar for my program. Specifically, I want to have the server program have an event loop that triggers when a remote client connects, disconnects or sends data. Any tips on where I might start looking? Thanks, as always! Madi From rdice at pobox.com Tue May 6 06:37:39 2008 From: rdice at pobox.com (Richard Dice) Date: Tue, 6 May 2008 09:37:39 -0400 Subject: [tpm] event loop In-Reply-To: <482054B9.1070104@alteeve.com> References: <482054B9.1070104@alteeve.com> Message-ID: <5bef4baf0805060637j6218339drbcc67b961c23330a@mail.gmail.com> http://search.cpan.org/~rcaputo/POE-1.0001/lib/POE.pm This might be too all-singing, all-dancing for your tastes and/or needs, but man, does this ever look like fun. Cheers, - Richard On Tue, May 6, 2008 at 8:53 AM, Madison Kelly wrote: > Hi all, > > I am looking for a good starting point to learn about event loops. > I've written a simple server and client program, but it's not very smart > or intelligent. I've since been learning about Net::DBus and I love how > it's reactor loop works, and would like to create something similar for > my program. > > Specifically, I want to have the server program have an event loop > that triggers when a remote client connects, disconnects or sends data. > Any tips on where I might start looking? > > Thanks, as always! > > Madi > _______________________________________________ > toronto-pm mailing list > toronto-pm at pm.org > http://mail.pm.org/mailman/listinfo/toronto-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/toronto-pm/attachments/20080506/07b3b037/attachment.html From arocker at vex.net Tue May 6 07:43:03 2008 From: arocker at vex.net (arocker at vex.net) Date: Tue, 6 May 2008 10:43:03 -0400 (EDT) Subject: [tpm] event loop In-Reply-To: <5bef4baf0805060637j6218339drbcc67b961c23330a@mail.gmail.com> References: <482054B9.1070104@alteeve.com> <5bef4baf0805060637j6218339drbcc67b961c23330a@mail.gmail.com> Message-ID: <39918.199.43.183.133.1210084983.squirrel@webmail.vex.net> > http://search.cpan.org/~rcaputo/POE-1.0001/lib/POE.pm > > This might be too all-singing, all-dancing for your tastes and/or needs, > but man, does this ever look like fun. It had to happen. Somebody's written an OS in Perl. From carmenc1 at staffingsuccess.com Thu May 8 11:37:02 2008 From: carmenc1 at staffingsuccess.com (Carmen Cholette) Date: Thu, 8 May 2008 14:37:02 -0400 Subject: [tpm] Question from recruiter Message-ID: <006a01c8b13a$81ee8090$b000a8c0@owner81d846bef> We have a full time opportunity below. The salary range is 70-80K and it is downtown. Carmen TITLE - UNIX/PERL Developer > > ---------------------------------- > > Seeking a motivated candidate to maintain and support the most critical > aspects of our prime brokerage back end systems. The candidate should be > a fluid and quick problem solver and perform well with some levels of > pressure. > > > > The ideal candidate should also have experience supporting, maintaining > and developing daily batch jobs, data feeds and must have previously > worked with critical financial systems. > > > > Required Skills > > ----------------- > > *Expert Knowledge in Perl and Shell scripting > > *Expert Knowledge in working with Unix (HP and Solaris) environment > *Expert knowledge working with database including > > - Creating tables, indexes, triggers > > - Creating and debugging the stored procedures > > *Excellent problem solving skills and communication skills *Experience > handling external data feeds, batch processing, file uploads > > > > Nice to have Skills > > ------------------- > > *Prior experience in Java, J2EE > > *Prior experience in C++ > > *Prior experience in migrating system from one flavor of UNIX > environment to another *Prior experience working with third party > financial data providers *Prior experience working as support staff > *Solaris System Admin Certification, Linux Red Hat Certification or DBA > Certifications are preferred. > > > > > > Carmen Cholette Senior Recruiter Compu-Source Staffing Inc. 2200 Yonge St, Suite 1004 416-482-4009 ext 227 1-877-213-3301 ext 227 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/toronto-pm/attachments/20080508/f81c5c84/attachment.html From arocker at vex.net Fri May 9 07:51:50 2008 From: arocker at vex.net (arocker at vex.net) Date: Fri, 9 May 2008 10:51:50 -0400 (EDT) Subject: [tpm] Forthcoming attractions for the rest of the year Message-ID: <18049.199.43.183.133.1210344710.squirrel@webmail.vex.net> This month, (May), we have Adam Prime booked. Next month, (June), will somebody volunteer to debrief on YAPC, for we little piggies who have to stay home? September is traditionally "Lightning Talks". December is given over to Saturnalian revels. That leaves July, August, October, and November to fill. Any volunteers? From linux at alteeve.com Fri May 9 08:43:55 2008 From: linux at alteeve.com (Madison Kelly) Date: Fri, 09 May 2008 11:43:55 -0400 Subject: [tpm] Populating an unfixed number of hash elements Message-ID: <4824713B.5060202@alteeve.com> I am not sure that the subject makes a lot of sense, sorry. :) In a few places I take a string that can have an arbitrary number of elements in it that I use as hash keys. I split up this string and feed in a passed value to a hash reference using the given hash elements. So far, I've not found an effective way to do this, so I've resorted to a frighteningly dumb solution "that works". However, it's not at all flexible and frankly, I am ashamed of it. So please, TPM, help me regain some dignity! :) I need a way to /intelligently/ create a hash entry. I've tried 'eval'ing it into existence but that never seems to work for some reason... Thanks!! Madi -=-=-=-=-=-=-=- Here is an example of what I am trying to do: my %hash=(); $string1="some::string::of::elements"; $string2="some::string"; $string3="some::string::of::other::elements"; $string4="another::set::of::keys"; $self->_to_hash(\%hash, $string1, "a value"); $self->_to_hash(\%hash, $string2, 12); $self->_to_hash(\%hash, $string3, "a really long string that takes up pages"); $self->_to_hash(\%hash, $string4, "something else again."); sub _to_hash { my $self=shift; my $hashref=shift; my $keystring=shift; my $value=shift; my @key=split /::/, $hashref; # Here is where it gets... undignified... if (@key==5) { $$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}{$key[4]}=$value; } elsif (@key==4) { $$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}=$value; } elsif (@key==3) { $$hashref{$key[0]}{$key[1]}{$key[2]}=$value; } elsif (@key==2) { $$hashref{$key[0]}{$key[1]}=$value; } elsif (@key==1) { $$hashref{$key[0]}=$value; } else { croak "Unsupported number of kash keys.\n"; } return(); } From rdice at pobox.com Fri May 9 09:44:36 2008 From: rdice at pobox.com (Richard Dice) Date: Fri, 9 May 2008 12:44:36 -0400 Subject: [tpm] Populating an unfixed number of hash elements In-Reply-To: <4824713B.5060202@alteeve.com> References: <4824713B.5060202@alteeve.com> Message-ID: <5bef4baf0805090944i58d013baucd18a5ab0eb7a689@mail.gmail.com> Hi Madison, Could you re-iterate (in a cleaner fashion) what your input is and what your desired output is? As for the output, you can provide Data::Dumper dumps of the data structures you want. Could I consider your data to be: some::string::of::elements > some::string > some::string::of::other::elements > another::set::of::keys > ? (I will loop through this using a while (<>) loop in whatever programming I cook up.) Cheers, - Richard On Fri, May 9, 2008 at 11:43 AM, Madison Kelly wrote: > I am not sure that the subject makes a lot of sense, sorry. :) > > In a few places I take a string that can have an arbitrary number of > elements in it that I use as hash keys. I split up this string and feed > in a passed value to a hash reference using the given hash elements. > > So far, I've not found an effective way to do this, so I've resorted to > a frighteningly dumb solution "that works". However, it's not at all > flexible and frankly, I am ashamed of it. So please, TPM, help me regain > some dignity! :) > > I need a way to /intelligently/ create a hash entry. I've tried > 'eval'ing it into existence but that never seems to work for some reason... > > Thanks!! > > Madi > > -=-=-=-=-=-=-=- > Here is an example of what I am trying to do: > > my %hash=(); > > $string1="some::string::of::elements"; > $string2="some::string"; > $string3="some::string::of::other::elements"; > $string4="another::set::of::keys"; > > $self->_to_hash(\%hash, $string1, "a value"); > $self->_to_hash(\%hash, $string2, 12); > $self->_to_hash(\%hash, $string3, "a really long string that takes up > pages"); > $self->_to_hash(\%hash, $string4, "something else again."); > > sub _to_hash > { > my $self=shift; > my $hashref=shift; > my $keystring=shift; > my $value=shift; > > my @key=split /::/, $hashref; > > # Here is where it gets... undignified... > if (@key==5) > { > $$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}{$key[4]}=$value; > } > elsif (@key==4) > { > $$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}=$value; > } > elsif (@key==3) > { > $$hashref{$key[0]}{$key[1]}{$key[2]}=$value; > } > elsif (@key==2) > { > $$hashref{$key[0]}{$key[1]}=$value; > } > elsif (@key==1) > { > $$hashref{$key[0]}=$value; > } > else > { > croak "Unsupported number of kash keys.\n"; > } > > return(); > } > _______________________________________________ > toronto-pm mailing list > toronto-pm at pm.org > http://mail.pm.org/mailman/listinfo/toronto-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/toronto-pm/attachments/20080509/674b163b/attachment.html From sfryer at sourcery.ca Fri May 9 09:58:49 2008 From: sfryer at sourcery.ca (Shaun Fryer) Date: Fri, 9 May 2008 12:58:49 -0400 Subject: [tpm] Populating an unfixed number of hash elements In-Reply-To: <4824713B.5060202@alteeve.com> References: <4824713B.5060202@alteeve.com> Message-ID: <20080509165848.GB10094@sourcery.ca> Hey Madi, This works. I had to modify how the sub was called slightly, but hopefully it's still workable for you. ################################################################################ use strict; use warnings; use Data::Dumper; my $string1="some::string::of::elements"; my $string2="some::string"; my $string3="some::string::of::other::elements"; my $string4="another::set::of::keys"; my $href={}; $href = mk_href($string1, "a value"); print Dumper $href; $href = mk_href($string2, 12); print Dumper $href; $href = mk_href($string3, "a really long string that takes up pages"); print Dumper $href; $href = mk_href($string4, "something else again."); print Dumper $href; sub mk_href { my ($keystr, $value) = @_; my @keys = split /::/, $keystr; my $last_key = pop @keys; my $href = {}; $href->{$last_key} = $value; while (my $key = pop @keys) { my $elem = {}; $elem->{$key} = $href; $href = $elem; } return $href; } ################################################################################ Cheers, -- Shaun Fryer On Fri, May 09, 2008 at 11:43:55AM -0400, Madison Kelly wrote: > I am not sure that the subject makes a lot of sense, sorry. :) > > In a few places I take a string that can have an arbitrary number of > elements in it that I use as hash keys. I split up this string and feed > in a passed value to a hash reference using the given hash elements. > > So far, I've not found an effective way to do this, so I've resorted to > a frighteningly dumb solution "that works". However, it's not at all > flexible and frankly, I am ashamed of it. So please, TPM, help me regain > some dignity! :) > > I need a way to /intelligently/ create a hash entry. I've tried > 'eval'ing it into existence but that never seems to work for some reason... > > Thanks!! > > Madi > > -=-=-=-=-=-=-=- > Here is an example of what I am trying to do: > > my %hash=(); > > $string1="some::string::of::elements"; > $string2="some::string"; > $string3="some::string::of::other::elements"; > $string4="another::set::of::keys"; > > $self->_to_hash(\%hash, $string1, "a value"); > $self->_to_hash(\%hash, $string2, 12); > $self->_to_hash(\%hash, $string3, "a really long string that takes up > pages"); > $self->_to_hash(\%hash, $string4, "something else again."); > > sub _to_hash > { > my $self=shift; > my $hashref=shift; > my $keystring=shift; > my $value=shift; > > my @key=split /::/, $hashref; > > # Here is where it gets... undignified... > if (@key==5) > { > $$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}{$key[4]}=$value; > } > elsif (@key==4) > { > $$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}=$value; > } > elsif (@key==3) > { > $$hashref{$key[0]}{$key[1]}{$key[2]}=$value; > } > elsif (@key==2) > { > $$hashref{$key[0]}{$key[1]}=$value; > } > elsif (@key==1) > { > $$hashref{$key[0]}=$value; > } > else > { > croak "Unsupported number of kash keys.\n"; > } > > return(); > } > _______________________________________________ > toronto-pm mailing list > toronto-pm at pm.org > http://mail.pm.org/mailman/listinfo/toronto-pm > From sfryer at sourcery.ca Fri May 9 10:08:19 2008 From: sfryer at sourcery.ca (Shaun Fryer) Date: Fri, 9 May 2008 13:08:19 -0400 Subject: [tpm] Populating an unfixed number of hash elements In-Reply-To: <20080509165848.GB10094@sourcery.ca> References: <4824713B.5060202@alteeve.com> <20080509165848.GB10094@sourcery.ca> Message-ID: <20080509170819.GC10094@sourcery.ca> Actually, this may be more what you intended. However, notice that the key/value may get over-ridden in case of collisions. For instance $string1 will produce { some => { string => { or => { elements => 'a value' } } } } But the value of the key "string" will get overwritten by $string2 to form the following. { some => { string => 12 } } Not sure how you'd work around this except to suggest that your proposed values are in fact keys with a value of 1. (ie. { some => { string => { 12 => 1 } } }). ################################################################################ use strict; use warnings; use Data::Dumper; my $string1="some::string::of::elements"; my $string2="some::string"; my $string3="some::string::of::other::elements"; my $string4="another::set::of::keys"; my %hash = (); mk_href(\%hash, $string1, "a value"); print Dumper \%hash; mk_href(\%hash, $string2, 12); print Dumper \%hash; mk_href(\%hash, $string3, "a really long string that takes up pages"); print Dumper \%hash; mk_href(\%hash, $string4, "something else again."); print Dumper \%hash; sub mk_href { my ($href, $keystr, $value) = @_; my @keys = split /::/, $keystr; my $last_key = pop @keys; my $_href = {}; $_href->{$last_key} = $value; while (my $key = pop @keys) { my $elem = {}; $elem->{$key} = $_href; $_href = $elem; } $href->{$_} = $_href->{$_} for keys %$_href; } ################################################################################ -- Shaun Fryer On Fri, May 09, 2008 at 12:58:49PM -0400, Shaun Fryer wrote: > ################################################################################ > use strict; > use warnings; > use Data::Dumper; > > my $string1="some::string::of::elements"; > my $string2="some::string"; > my $string3="some::string::of::other::elements"; > my $string4="another::set::of::keys"; > > my $href={}; > > $href = mk_href($string1, "a value"); > print Dumper $href; > > $href = mk_href($string2, 12); > print Dumper $href; > > $href = mk_href($string3, "a really long string that takes up pages"); > print Dumper $href; > > $href = mk_href($string4, "something else again."); > print Dumper $href; > > sub mk_href { > my ($keystr, $value) = @_; > my @keys = split /::/, $keystr; > my $last_key = pop @keys; > my $href = {}; > $href->{$last_key} = $value; > while (my $key = pop @keys) { > my $elem = {}; > $elem->{$key} = $href; > $href = $elem; > } > return $href; > } > ################################################################################ From vvp at cogeco.ca Fri May 9 11:00:39 2008 From: vvp at cogeco.ca (Viktor Pavlenko) Date: Fri, 9 May 2008 14:00:39 -0400 Subject: [tpm] Populating an unfixed number of hash elements In-Reply-To: <20080509170819.GC10094@sourcery.ca> References: <4824713B.5060202@alteeve.com> <20080509165848.GB10094@sourcery.ca> <20080509170819.GC10094@sourcery.ca> Message-ID: <18468.37191.279335.360264@hetman.ua> >>>>> "SF" == Shaun Fryer writes: SF> Actually, this may be more what you intended. However, notice SF> that the key/value may get over-ridden in case of SF> collisions. If she avoids global hash, there will be no problem ... SF> sub mk_href { SF> my ($href, $keystr, $value) = @_; SF> my @keys = split /::/, $keystr; SF> my $last_key = pop @keys; SF> my $_href = {}; SF> $_href->{$last_key} = $value; SF> while (my $key = pop @keys) { SF> my $elem = {}; SF> $elem->{$key} = $_href; SF> $_href = $elem; SF> } SF> $href->{$_} = $_href->{$_} for keys %$_href; SF> } ... and then this: -------------------------------------------------------------------->8 sub mk_href { my ($keystr, $value) = @_; my @keys = reverse split /::/, $keystr; helper($value, @keys); } sub helper { my ($val, @keys) = @_; my $k = pop @keys; my $hr = {}; $hr->{$k} = ($#keys == -1) ? $val : helper($val, @keys); return $hr; } -------------------------------------------------------------------->8 -- Viktor From sfryer at sourcery.ca Fri May 9 10:46:07 2008 From: sfryer at sourcery.ca (Shaun Fryer) Date: Fri, 9 May 2008 13:46:07 -0400 Subject: [tpm] Populating an unfixed number of hash elements In-Reply-To: <18468.37191.279335.360264@hetman.ua> References: <4824713B.5060202@alteeve.com> <20080509165848.GB10094@sourcery.ca> <20080509170819.GC10094@sourcery.ca> <18468.37191.279335.360264@hetman.ua> Message-ID: <20080509174607.GD10094@sourcery.ca> Nice and small. I like it. Here's the alternate solution I just came up with. Like yours, uses a recursive helper function, but also works with a global hash. ################################################################################ use strict; use warnings; use Data::Dumper; my $string1="some::string::of::elements"; my $string2="some::string"; my $string3="some::string::of::other::elements"; my $string4="another::set::of::keys"; my %hash = (); mk_href(\%hash, $string1, "a value"); mk_href(\%hash, $string2, 12); mk_href(\%hash, $string3, "a really long string that takes up pages"); mk_href(\%hash, $string4, "something else again."); print Dumper \%hash; sub mk_href { my ($href, $keystr, $value) = @_; my @keys = split /::/, $keystr; my $last_key = pop @keys; my $_href = {}; $_href->{$last_key} = { $value => 1 }; while (my $key = pop @keys) { my $elem = {}; $elem->{$key} = $_href; $_href = $elem; } add_href($href, $_href); } sub add_href { my ($href1, $href2) = @_; for my $key (keys %$href2) { if (ref $href1->{$key} eq 'HASH') { add_href( $href1->{$key}, $href2->{$key} ); } else { $href1->{$key} = $href2->{$key}; } } } ################################################################################ -- Shaun Fryer cl: 905-920-9209 On Fri, May 09, 2008 at 02:00:39PM -0400, Viktor Pavlenko wrote: > >>>>> "SF" == Shaun Fryer writes: > > SF> Actually, this may be more what you intended. However, notice > SF> that the key/value may get over-ridden in case of > SF> collisions. > > If she avoids global hash, there will be no problem ... > > SF> sub mk_href { > SF> my ($href, $keystr, $value) = @_; > SF> my @keys = split /::/, $keystr; > SF> my $last_key = pop @keys; > SF> my $_href = {}; > SF> $_href->{$last_key} = $value; > SF> while (my $key = pop @keys) { > SF> my $elem = {}; > SF> $elem->{$key} = $_href; > SF> $_href = $elem; > SF> } > SF> $href->{$_} = $_href->{$_} for keys %$_href; > SF> } > > ... and then this: > > -------------------------------------------------------------------->8 > sub mk_href > { > my ($keystr, $value) = @_; > my @keys = reverse split /::/, $keystr; > helper($value, @keys); > } > > sub helper > { > my ($val, @keys) = @_; > my $k = pop @keys; > my $hr = {}; > $hr->{$k} = ($#keys == -1) ? $val : helper($val, @keys); > return $hr; > } > -------------------------------------------------------------------->8 > > -- > Viktor > From magog at the-wire.com Sat May 10 17:39:05 2008 From: magog at the-wire.com (Michael Graham) Date: Sat, 10 May 2008 20:39:05 -0400 Subject: [tpm] Subject: May Meeting - Thu 29 May, 2008 - An interpretation of an introduction to mod_perl 2 Message-ID: <20080510203905.6fbff182@caliope> (These details are also on the TPM web site: http://to.pm.org/) The next meeting is this Thursday, 29 May. Date: Thursday 29 May 2008 Time: 6:45pm Where: 2 Bloor Street West (NW corner of Yonge/Bloor, skyscraper with the CIBC logo on top) Classroom TBA =================================================================== Description: Adam is going to go through Phillipe Chaisson's "From CGI to mod_perl 2.0, Fast!" slides, then follow that up with some of detail about mod_perl beyond the ResponseHandler phase touching on some useful, and powerful things that mod_perl can enable you to do. Note: The elevators in the building are "locked down" after 5:30pm to people without building access cards. Leading up to the meeting someone will come down to the main floor lobby every few minutes to ferry people upstairs. After 19:00, you can reach the access-card-carrying guy via a cell phone number that we'll leave with security in the front lobby. The room and floor numbers will be left with security too. -- Michael Graham From linux at alteeve.com Sat May 10 17:43:43 2008 From: linux at alteeve.com (Madison Kelly) Date: Sat, 10 May 2008 20:43:43 -0400 Subject: [tpm] Forthcoming attractions for the rest of the year In-Reply-To: <18049.199.43.183.133.1210344710.squirrel@webmail.vex.net> References: <18049.199.43.183.133.1210344710.squirrel@webmail.vex.net> Message-ID: <4826413F.6070801@alteeve.com> arocker at vex.net wrote: > This month, (May), we have Adam Prime booked. > Next month, (June), will somebody volunteer to debrief on YAPC, for we > little piggies who have to stay home? > September is traditionally "Lightning Talks". > December is given over to Saturnalian revels. > > That leaves July, August, October, and November to fill. Any volunteers? I am planning to give a talk on DBus to [GTA]TLUG in August... Though I am using the Perl Net::DBus bindings are my template for demos and such. I could do a more perl/Net::DBus oriented talk in August for TPM, if you would like. Madi From rdice at pobox.com Tue May 13 17:41:46 2008 From: rdice at pobox.com (Richard Dice) Date: Tue, 13 May 2008 20:41:46 -0400 Subject: [tpm] Damian Conway gives free public talk in Toronto, Wed July 16 Message-ID: <5bef4baf0805131741r530e3211re0637abeba609e60@mail.gmail.com> Hi everyone, Save the date! The evening of Wed 16 July 2008, Damian Conway, Perl Monger extraordinaire and long-time friend of Toronto.pm, will deliver -- free and to the public -- one of his signature tour-de-force completely insane talks that is 1/3 high-end IT, 1/3 showmanship and 1/3 peyote-fuelled hallucination. Its title is: "Temporally Quaquaversal Virtual Nanomachine Programming in > Multiple Topologically Connected Quantum-Relativistic > Parallel Timespaces... Made Easy" > This will be the world premiere of the talk. Precise location and time details to follow. As I've done the past 4 times Damian has come to give us talks I will take up a collection. This is to help defray expenses and to provide Damian with an honorarium for the talk. Donations are completely voluntary. If you feel motivated and/or in the right place financially to make a donation please get in touch with me. Toronto.pm has always been incredibly generous in supporting Damian whenever he has visited in the past and both he and I thank everyone for all the support he has received over the years. Cheers, - Richard -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/toronto-pm/attachments/20080513/0c480361/attachment.html From jkeen at verizon.net Sat May 17 09:21:14 2008 From: jkeen at verizon.net (James E Keenan) Date: Sat, 17 May 2008 12:21:14 -0400 Subject: [tpm] Please help with the Perl Monger Group Census Message-ID: <619C0C84-4F71-4B4A-AF30-1B76DE71B407@verizon.net> Toronto.pm has apparently not completed the PM Group Census conducted biannually by Dave Cross (census at pm.org). http://mag-sol.com/census2008/missing.cgi Michael, are you still the contact person for this? jimk