Presentation proposal: Type of talk (tutorial, long, short, or lightning): Short (25 min) Category: Module guts and usage of any particular module Title: "What on earth are Data::Locations about?!" A 200-300 word abstract: (See below) One or two sentences on you and your affiliation: I am programming in Perl since 1995, and also submitted my first modules (Set::IntegerFast, Date::DateCalc) to CPAN in that year. I work for a 700 people software company which specializes in tailor-made individual software for all sorts of large companies and public entities (see www.sdm.de for more details). My web site and download page with my Perl modules is at http://sb.fluomedia.org/download/. More details about me can be found under the URL http://sb.fluomedia.org/whoami/. Whether you will have course notes or other materials (if you are proposing a tutorial): No, just slides. I suppose separate handouts wouldn't be a good idea given the great number of participants. Are you planning to make a brochure of all talks or to put the talks online before or after the event? (Please tell me if you want the slides ahead of time) Any special presentation needs: A computer or laptop and a beamer would be great, an overhead projector would do. The computer should preferably have Perl installed, and my modules if possible. Please tell me if I can user PowerPoint (PerlPoint doesn't seem to be out of alpha state, is it?) Abstract: ------------------------------------------------------------ "What on earth are Data::Locations about?!" The Data::Locations module implements a very useful but widely unknown concept. One could even say a paradigm. Because it is so widely unknown, it is somewhat hard to explain (therefore I think a talk could improve matters in that respect), also because it is difficult to find a good real-world equivalent for illustration. This happens with other great paradigms, too - just think of regular expressions, for instance. For people unfamiliar with the concept, it's like a book with seven seals... And try to find a real-world equivalent in order to illustrate it - almost impossible! (Cars with different types of engines are a little far-fetched, IMHO :-) ) You can regard the module as a virtual file manager which allows you a quasi-random access to sequential files (which reside in memory for greater efficiency). Every such virtual file is a container for data with an inherent sequential order, or an object, in OO parlance. (In practice it's basically a Perl array blessed into the object class implemented by the module.) Moreover, the module offers the possibility to put placeholders into any such virtual sequential file, where you can later insert additional data. Imagine writing a book and putting a bookmark where you intend to insert some chapter later, after you finished writing the rest of the book, or at least some of the chapters immediately following the bookmark. You can even put more of these bookmarks into that bookmarked chapter while you are writing it, i.e., you can nest the corresponding containers. And just like in writing a real book, you can work in many places in parallel in this way: Adding something here, something there, or throwing away something somewhere else. Think of soap bubbles and how you can create bubbles inside of existing bubbles by using a straw: Each bubble is a container (the object), and the straw is the object's handle (a blessed reference in Perl). You can also get at the contents of any bubble and even deflate it with that straw. Note that (in contrast to soap bubbles), you can insert any amount of data you wish into any such container, there is no size limit (your machine will actually swap parts of its memory to disk if your data structures grow too large). Thus this module allows you to create and store data in a different order than the order in which the data is to reside on disk (or in memory) later - without the need for temporary files, which is the commonest strategy to achive this. By recursively traversing the "bubbles" or nested data structures, it is possible to "flatten out" the data contained in the various containers. Just like sorting all the loose parts of your book into the right order and then printing it out in its final form and order. ------------------------------------------------------------