[VPM] Tue, 2009 Feb 3rd, 7pm - February RCSS+VPM meeting

Darren Duncan darren at darrenduncan.net
Mon Feb 2 15:22:19 PST 2009


Greetings,

This message is to announce the February meeting of the Recreational Computer 
Science Society, which this month is being held joint with the Victoria Perl 
Mongers.

It is being held Tuesday, February 3, 7pm, at UVIC in the ECS (Engineering 
Computer Science) building, exact room TBD but should be on the ground floor.

Darren Duncan is giving the talk, a summary of which follows the dashed line.

After the meeting, we will quite likely adjourn to Maude Hunter's for the usual 
drinks and late dinner/snacks.

Hope to see you there.

-- Darren Duncan

----------------------------------------

Darren Duncan will give a talk on a personal project, the new Perl module
Set::Relation, which implements a standalone portion of the new programming
language Muldis D that Darren created.  See
http://search.cpan.org/dist/Set-Relation/ to see said module with documentation
or to download it.  It is functional and can be used right now; though some
features are missing, the most important ones are present, and the rest should
be implemented within a few days of the talk, if not beforehand.

Set::Relation provides a simple Perl-native facility for an application to
organize and process information using the relational model of data, without
having to employ a separate DBMS, and without having to employ a whole separate
sub-language (such as Muldis Rosetta does).  Rather, it is integrated a lot more
into the Perl way of doing things, and you use it much like a Perl array or
hash, or like some other third-party Set:: modules available for Perl.  This is
a standalone Perl 5 object class that represents a Muldis D quasi-relation
value, and its methods implement all the Muldis D relational operators.

A simple working example:

     use Set::Relation;

     my $r1 = Set::Relation->new( members => [ [ 'x', 'y' ], [
         [ 4, 7 ],
         [ 3, 2 ],
     ] ] );

     my $r2 = Set::Relation->new( members => [
         { 'y' => 5, 'z' => 6 },
         { 'y' => 2, 'z' => 1 },
         { 'y' => 2, 'z' => 4 },
     ] );

     my $r3 = $r1->join( $r2 );

     my $r3_as_nfmt_perl = $r3->members();
     my $r3_as_ofmt_perl = $r3->members( 1 );

     # Then $r3_as_nfmt_perl contains:
     # [
     #     { 'x' => 3, 'y' => 2, 'z' => 1 },
     #     { 'x' => 3, 'y' => 2, 'z' => 4 },
     # ]
     # And $r3_as_ofmt_perl contains:
     # [ [ 'x', 'y', 'z' ], [
     #     [ 3, 2, 1 ],
     #     [ 3, 2, 4 ],
     # ] ]

This talk will focus on describing the features of Set::Relation, discussing
what the module does, how you could use it, such as to accomplish tasks directly
in your program that you might otherwise offload to a SQL DBMS or other tool,
and will go into detail on how the module is designed and works, including a
source code walk through.  The talk will also shed some light on other larger
projects of Darren and others.  This talk has no prepared slide show or
handouts, and any visuals will be the module source as well as white/chalk-board
diagrams.  Questions are encouraged at any time, and can so time can be focused
on the areas you are most interested in.


More information about the Victoria-pm mailing list