Presentation proposal: Type of talk (tutorial, long, short, or lightning): Short (25 min) But I think I could also easily fill 40 minutes ("Long") if you'd let me... :-) Category: Module guts and usage of any particular module Title: "Bit::Vector - more than the name suggests" 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: ------------------------------------------------------------ "Bit::Vector - more than the name suggests" The Bit::Vector module implements bit vectors of arbitrary size. Not very sexy, you may think. But actually bit vectors are the base of most, if not all, computations performed by a computer! The numbers and strings and other types of data a computer processes are all represented internally as vectors of bits. You usually call them bytes, ints, longs, floats, etcetera. But computers cannot have registers in their central processing units with an unlimited number of bits. They have to have a fixed width. Can you still remember the days of 4 bit processors (example: TI-59), then came the 8 bit processors (6502, Z80, for instance), then 16 bit processors, 32 bit processors - and right now, we are entering the realm of 64 bit processors? There you are. Now what the Bit::Vector module does is to provide you with registers of unlimited (but fixed) size. And you can also grow and shrink your registers at will. It does so by using your computer's registers, whatever size these are, and your CPU's built-in operations for processing them, for maximum efficiency. Moreover, the module provides methods (and overloaded operators, for maximum ease of use) for various common applications, i.e., things you frequently do with registers in a computer, and some more. There are methods for performing arithmetic operations (addition, subtraction, multiplication, division, modulo, greatest common divisor, exponentiation), logic operations (shift left, shift right, bitwise and, or, xor etc.), methods for accessing individual or chunks of bits, methods for inserting, deleting, copying and reversing bits, search functions, matrix functions, functions for dealing with sets - almost anything you usually do with registers in a computer (but no floating point arithmetic - yet?), except with unlimited precision! The talk will try to show various applications for this module. ------------------------------------------------------------