From Peter at PSDT.com Thu Dec 13 17:50:06 2007 From: Peter at PSDT.com (Peter Scott) Date: Thu, 13 Dec 2007 17:50:06 -0800 Subject: [VPM] Web sessions Message-ID: <6.2.3.4.2.20071213174853.02213708@mail.webquarry.com> What (modules) do people like these days for session creation in a non-mod-perl environment? I'm still partial to Apache::Session myself, but it's been a while since I evaluated competitors. /me waits for Mock to reveal how insecure Apache::Session is... -- Peter Scott Pacific Systems Design Technologies http://www.perldebugged.com/ http://www.perlmedic.com/ From darren at DarrenDuncan.net Thu Dec 13 18:30:55 2007 From: darren at DarrenDuncan.net (Darren Duncan) Date: Thu, 13 Dec 2007 18:30:55 -0800 Subject: [VPM] Web sessions In-Reply-To: <6.2.3.4.2.20071213174853.02213708@mail.webquarry.com> References: <6.2.3.4.2.20071213174853.02213708@mail.webquarry.com> Message-ID: At 5:50 PM -0800 12/13/07, Peter Scott wrote: >What (modules) do people like these days for session creation in a >non-mod-perl environment? I'm still partial to Apache::Session myself, >but it's been a while since I evaluated competitors. > >/me waits for Mock to reveal how insecure Apache::Session is... Back in 2003, I rolled my own application-specific one, and might again, but not now. Currently in my job for Travellers' Inn, I use CGI::Session in its default configuration, which I think uses files in the system temp dir to store session data (not a database or anything), and I use a cookie to persist the session name+id. It seems to work well enough and is fairly simple. Though I created an application-specific wrapper around it, that also wraps http request/response, in the form of a utility library, which is what I actually use in the applications proper. I have never tried any other generic session handling modules. I seem to recall from bringing it up at the Nov meeting that Mock thought CGI::Session was fine security wise. -- Darren Duncan From Peter at PSDT.com Tue Dec 18 10:23:09 2007 From: Peter at PSDT.com (Peter Scott) Date: Tue, 18 Dec 2007 10:23:09 -0800 Subject: [VPM] Happy Birthday Perl Message-ID: <6.2.3.4.2.20071218093931.021b3208@mail.webquarry.com> Today Perl is 20 years old. This is also the day we would be having our regular meeting if it weren't the holiday season - let's plan on something in January. On a seasonal note, the Catalyst Advent Calendar is up at http://catalyst.perl.org/calendar . -- Peter Scott Pacific Systems Design Technologies http://www.perldebugged.com/ http://www.perlmedic.com/ From darren at DarrenDuncan.net Wed Dec 19 02:47:17 2007 From: darren at DarrenDuncan.net (Darren Duncan) Date: Wed, 19 Dec 2007 02:47:17 -0800 Subject: [VPM] ANNOUNCE - Language::MuldisD v0.14.0 released Message-ID: All, -------- Happy 20th Birthday to Perl! Larry Wall released Perl 1 to the public on 1987 December 18th. Also, today is the general/stable release of Perl 5.10, its best version yet that can be used in production now. -------- I am pleased to announce the release of Language::MuldisD official/unembraced version 0.14.0 on CPAN. You can see it now, with nicely HTMLized documentation, at: http://search.cpan.org/dist/Language-MuldisD/ -------- All the important changes since release 0.11.0 were in the file Core.pod: 1. Added new generic range-checking functions for any Ordered subtype. These correspond to things like "is foo between bar and baz". 2. Large improvements to how rules for rounding numbers are specified, the rules naming a target radix (2,10,etc), precision, and rounding method (floor,half_up,etc). These are applied both when coercing irrational results of functions as rational values, as well as when explicitly rounding rationals to a different precision or to integers. The point being to have very precise determinism for semantics when working with numbers, which are portable. 3. Renamed a bunch of operators, most of them being relational operators, for better consistency and understanding. Also added some complement functions for various existing functions, like an "is not foo" to go with a "is foo", or a "all but bar" to go with "bar". 4. Added a few integer functions, including '(inc|dec)rease' (meaning ++|-- or next|previous). Note however that no other ordinal types have been given next/previous operators besides integers since they are more continuous rather than discrete (eg rationals), or there is no reasonable deterministic definition of what would come before/after a given value (eg, character strings). 5. Added 4 new generic tuple operators: 'attr_from_Tuple', 'Tuple_from_attr', 'attr', 'update_attr'. Those allow reading or writing tuple attribute values, and are fundamentals for moving component values in and out of collections. 6. Fleshed out the signatures and descriptions of all remaining listed generic relational operators: 'group', 'ungroup', 'substitution', 'summary'. Also added these: 'cmpl_(wrap|group)', 'substitution_in_(restriction|semijoin)', 'map', plus a few more. Also added an initial complement of 6 set-specific operators and 17 bag-specific operators (both sets and bags are specialized relation subtypes and can use relation operators too, sets more reliably than bags). Between these additions, the Muldis D equivalents of the following additional tasks in SQL are now fully documented: SELECT (remainder), GROUP BY, summary reports / per-group aggregate operations (AVG, etc), whole-relation aggregate operations, UPDATE, ?MERGE/?REPLACE. (Note that the equivalents of these SQL tasks were already documented in previous releases: SELECT (partial), FROM, inner joins, cross products, self-joins, WHERE/HAVING, IN/NOT IN, UNION, INTERSECT, MINUS, INSERT, DELETE, TRUNCATE, sub-selects anywhere, some hierarchical queries, scalar expressions, partial aggregate operations, invoking user-defined functions, more.) 7. Added Maybe-specific operators 'attr_or_default', 'attr_or_value' which are like Perl's defined-or, or like SQL's 2-argument COALESCE or NVL or IF_NULL. See the "Changes" file ( http://search.cpan.org/src/DUNCAND/Language-MuldisD-0.14.0/Changes ) for more details of what changed for this release. -------- Still to do: 1. Add relational operators for simplifying half-outer joins, which are short-hand for what you can already do with a restrict+join+extend|group+union. 2. Add relational operators for sorting, quota queries, and sequence operations; that is, analogues to SQL's ORDER BY and LIMIT tasks, as well as order-significant aggregate operations on relation attributes (eg, catenate). 3. Define more flow control operators like IF/ELSE, GIVEN/WHEN, etc. 4. Flesh out and add catalog types for user-defined types, operators, value expressions, statements. Flesh out the system catalog schema at the same time. 5. Define short-hand data definition operators analagous to CREATE, ALTER, DROP etc. 6. Flesh out and add system service operators like random numbers or current dates or simple generic I/O. -------- Separately, an update 0.6.0 to Muldis::DB was released: http://search.cpan.org/dist/Muldis-DB/ Its main change was that the ::DBMS role/interface/object has been renamed and split into two, ::Machine and ::Process. A Machine represents a whole virtual machine (such as a typical DBMS server), and a Process represents an autonomous thread of execution in it (such as a handler for one DBMS client connection). To use Muldis DB now, you first create a Machine object like you used to create a DBMS object, then make a child Process object of that, and then subsequently you invoke in-DBMS routines, or make bind vars etc, with the Process. Note that you can still use multiple storage depots in a single Process, such as for cross-database queries, but any transactions will commit or rollback them all as one; if you want autonomous transactions, that is what you use multiple Process for. Its changes file has details. The Muldis DB Example implementation is still not executing yet, sorry. -------- Thank you. -- Darren Duncan