Greetings Perlfolk,
** What is this?
Term::Sample (version 0.25) - Finger printing of your keyboard typing
** Huh?
Term::Sample implements simple typing analysis to find the "personality"
in your typing. It uses Timer::HiRes and Win32::Console for best results.
If it is not run on a Win32 system, it defaults to Term::ReadKey instead
of Win32::Console. I'm not sure how well it works with ReadKey, as I have
not had a chance to test it out yet.
In this module we deal with three basic items: samples, analysis', and
sets. Samples are what you get from the sample() function and are raw
keyboard data. Samples can be averaged together to produce master
samples, or analyzed to produce unique sample analysis'. Analysis' are
produced by alanlyze()-ing samples from sample() or samples averaged
together(). You can store samples (averaged or analyzed) and analysis'
in sets according to unique, user-defined keys. You can then match new
samples against the samples in the set and find out which key it matched
in the set, as well as the percentage of error.
This module uses Timer::HiRes to time both the key-press time (time
between the key-down signal and the key-up signal) and the key-interveal
(time between key-up of previous key and key-down of next key). This
creates what I call a keyboard sample, or just a "sample." This is created
by a custom prompt function, sample() which returns an array ref. This is
the raw keyboard sample data. It can be averaged together with multiple
sample to create a master sample to be used as a signiture, or it can be
individually saved with save().
This creates a unique 'print', or analysis from a sample, or samples
averaged together with analyze(). analyze() uses several factors to
make the unique analysis. First, it calculates average ASCII key codes,
as well as the average total key-press and inter-key times. Then it loops
through the sample and picks out the fastest key-press times and inter-key
times, and taking a three-key average around that high-point to create a
sample highlight. It creats highlights from every key in the sample,
fastest to slowest, and then sorts the hightlights by key-press times
and inter-key times, storing both lists in a final "analysis" object, along
with the averaged times created at the start. This gives a final,
hopefully unique, sample analysis.
As always, included is a cleaned, CSS-ed, HTML-format of the POD docs.
Regards,
~ Josiah Bryan,
Latest Version:
http://www.josiah.countystart.com/modules/get.pl?term-sample:README