use strict;
use warnings;
my %codons;
my %aas;
my $previous_file = '';
while (<>) {
if ( $previous_file ne $ARGV ) {
open OUTPUT, '>', "$ARGV.aa"
or die "Can't open $ARGV.aa for writing: $!";
$previous_file = $ARGV;
}
tr/t/u/;
if ( exists $codons{$_} ) {
my $codon = $codons{$_};
if ( exists $aas{$codon} ) {
print OUTPUT $aas{$codon};
print $aas{$codon};
}
}
}
####
#!/opt/perl-5.10.0/bin/perl
use strict;
use warnings;
use feature ':5.10';
use Text::Table;
for ( my $width = 15; $width == 15; ++$width ) {
my $table = Text::Table->new;
my $nth = 0;
my $total = ( $width**2 - $width ) / 2;
for my $III ( 1 .. $width ) {
my @row = ('.') x $III;
for my $JJJ ( $III + 1 .. $width ) {
my $aha = $width + .5 - sqrt( 2 * ( $total - $nth ) );
my $row = int $aha;
my $col = $row + 1 + int( ( $aha - $row ) * ( $width - $row ) );
push @row, "${row}x$col";
++$nth;
}
$table->load( \@row );
}
say "${width}x$width\n$table";
}
##
##
. 1x2 1x3 1x4 1x5 1x6 1x7 1x8 1x9 1x10 1x11 1x12 1x13 1x14 1x15
. . 2x3 2x4 2x5 2x6 2x7 2x8 2x9 2x10 2x11 2x12 2x13 2x14 2x15
. . . 3x4 3x5 3x6 3x7 3x8 3x9 3x10 3x11 3x12 3x13 3x14 3x15
. . . . 4x5 4x6 4x7 4x8 4x9 4x10 4x11 4x12 4x13 4x14 4x15
. . . . . 5x6 5x7 5x8 5x9 5x10 5x11 5x12 5x13 5x14 5x15
. . . . . . 6x7 6x8 6x9 6x10 6x11 6x12 6x13 6x14 6x15
. . . . . . . 7x8 7x9 7x10 7x11 7x12 7x13 7x14 7x15
. . . . . . . . 8x9 8x10 8x11 8x12 8x13 8x14 8x15
. . . . . . . . . 9x10 9x11 9x12 9x13 9x14 9x15
. . . . . . . . . . 10x11 10x12 10x13 10x14 10x15
. . . . . . . . . . . 11x12 11x13 11x14 11x15
. . . . . . . . . . . . 12x13 12x14 12x15
. . . . . . . . . . . . . 13x14 13x15
. . . . . . . . . . . . . . 14x15
. . . . . . . . . . . . . . .
##
##
sub EVAL {
my ( $try, $catch ) = @_;
my( $ok, $e );
$ok = eval { $try->(); 1 };
$e = $@;
return 1 if $ok and not( defined( blessed( $e ) ) and $e );
return unless $catch;
$catch->( $e );
}
##
##
Welcome to SWI-Prolog (Multi-threaded, Version 5.6.14)
Copyright (c) 1990-2006 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?- The_Question.
% ... 1,000,000 ............ 10,000,000 years later
%
% >> 42 << (last release gives the question)
##
##
package pragma;
use strict;
use warnings;
sub import {
my $pragma = shift @_;
$pragma = shift @_ if $pragma eq __PACKAGE__;
my $value = shift @_;
$^H{$pragma} = $value;
return;
}
sub unimport {
my $pragma = shift @_;
$pragma = shift @_ if $pragma eq __PACKAGE__;
delete $^H{$pragma} if exists $^H{$pragma};
return;
}
sub in_effect {
my $pragma = shift @_;
$pragma = shift @_ if $pragma eq __PACKAGE__;
return $^H{$pragma};
}
1;
##
##
use strict;
use warnings;
use constant CHROMOSOMES => 30;
use constant TARGET => scalar <>;
use constant TARGET_BITS => 8 * length TARGET;
use constant P_MUTATION => 0.5;
use constant OK_ENOUGH => 1; # Too much is just enough
sub say {
my $say = join '', @_;
$say =~ s/([^[:print:]])/sprintf '\x%02x', ord $1/ge;
print "$say\n";
}
# Birth.
my @population = map { random_chromosome() } 1 .. CHROMOSOMES;
my $result;
while ( not defined $result ) {
# Test the fitness of every chromosome.
my @fitness;
CHROMOSOME:
for my $chromosome ( @population ) {
my $fitness = fitness( $chromosome );
if ( $fitness >= OK_ENOUGH ) {
$result = $chromosome;
last CHROMOSOME;
}
push @fitness, $fitness;
}
my @order
= sort { $fitness[$b] <=> $fitness[$a] }
0 .. $#fitness;
say "$fitness[$order[0]]: $population[$order[0]]";
# Trial by foxes.
splice @order, @order / 3;
@population = @population[ @order ];
# Sex.
my @children
= map {
sex( @population ) }
1 .. CHROMOSOMES - @population;
push @population, @children;
}
say $result;
sub sex {
my @parents = @_;
my $child = '';
for ( 0 .. TARGET_BITS - 1 ) {
vec( $child, $_, 1 ) = vec( $parents[ rand @parents ], $_, 1 );
}
if ( P_MUTATION < rand ) {
my $bit = int rand TARGET_BITS;
vec( $child, $bit, 1 ) = not vec( $child, $bit, 1 );
}
return $child;
}
sub fitness {
my $chromosome = shift @_;
my $matches = 0;
for ( 0 .. TARGET_BITS - 1 ) {
$matches++ if vec( TARGET, $_, 1 ) == vec( $chromosome, $_, 1 );
}
my $fitness = $matches / TARGET_BITS;
return $fitness;
}
sub random_chromosome {
my $chromosome = '';
for ( 0 .. TARGET_BITS - 1 ) {
vec( $chromosome, $_, 1 ) = rand 2;
}
return $chromosome;
}
##
##
INIT {
# Print the code before __DATA__ and pretend nothing happened...
if ( defined fileno *main::DATA ) {
# Fetch code or abort...
eval {
my $pos = tell *main::DATA;
seek *main::DATA, 0, 0 or return;
my $code;
read *main::DATA, $code, $pos or return;
print $code or return;
};
}
}
##
##
while() {
print lc;
}
__DATA__
server database ADD_DT ENT_ID PMT_ID PMT_AM
KERMIT MISS_PIGGY Dec 22 2004 9:30AM 1304 21190 -30.81
KERMIT MISS_PIGGY Dec 22 2004 9:30AM 1314 21189 -358.46
KERMIT MISS_PIGGY Jan 12 2005 3:07PM 1096 21585 -495.72
KERMIT MISS_PIGGY Jan 12 2005 3:07PM 1096 21933 495.72
KERMIT MISS_PIGGY Jan 12 2005 3:07PM 1098 21586 -16.65
KERMIT MISS_PIGGY Mar 3 2005 6:34AM 985 22546 -496.36
KERMIT MISS_PIGGY Mar 3 2005 6:34AM 1003 22547 -841.17
KERMIT MISS_PIGGY Mar 9 2005 9:56AM 1005 22745 -110.53
##
##
(defun perl-other-buffer (script)
(interactive "bProgram:")
(let ((script-file (make-temp-file "perl-other-buffer")))
(save-excursion
(set-buffer (get-buffer script))
(write-region (point-min) (point-max) script-file))
(let ((ok (zerop
(shell-command-on-region
(point-min) (point-max)
(concat "perl -x " (shell-quote-argument script-file))))))
(delete-file script-file)
ok)))
##
##
use strict;
use WWW::Mechanize;
>> my $agent = WWW::Mechanize->new( autocheck => 1 );
> > $agent->get('http://cgi.darwinawards.com/cgi/random.pl');
> >> my $content = $agent->content( format => "text" );
| >my $cr = chr 169;
> |$content =~ s/.*\d\d\s+Urban Legend//s;
> |$content =~ s/.*\d\d\s+Personal Account//s;
> |$content =~ s/.*Reader Submission\s+Pending Acceptance//s;
> >$content =~ s/\s*DarwinAwards\.com\s*$cr.*//s;
> $content =~ s/.*?\([^\)]*?\d{2}[^\)]*\) //s;
> $content =~ s/.*Darwin\s?Award\s?Nominee//si;
> $content =~ s/.*Confirmed \S+\s?by Darwin//si;
> $content =~ s/.*Honorable Mentions//s;
> $content =~ s/submitted by.*//si;
> $content =~ s/109876543210.*//s;
> $content =~ s/^\s+//;
|
> print $content;
##
##
(defun b-xref ()
(interactive)
(fundamental-mode)
(save-excursion
(save-restriction
(widen)
(mapcar
'b-xref-do-jots
(b-xref-buffer (current-buffer)))))
nil)
(defvar b-xref-bin "perl")
(defvar b-xref-jot ">")
(defvar b-xref-fill "|")
(defvar b-xref-fill-space " ")
(require 'cl)
(defsubst min-list (list) (reduce 'min list))
(defsubst max-list (list) (reduce 'max list))
(defsubst line->point (line)
(goto-line line)
(point))
(defun b-xref-do-jots (pair)
"Make space for jots and call `b-xref-jot-line' to place them."
(string-rectangle (point-min)
(progn (goto-char (point-max))
(beginning-of-line)
(point))
b-xref-fill-space)
(let ((lines (cdr pair)))
(let ((min-line (min-list lines))
(max-line (max-list lines)))
(delete-rectangle (line->point min-line)
(+ 1 (line->point max-line)))
(string-rectangle (line->point min-line)
(line->point max-line)
b-xref-fill)
(mapcar 'b-xref-jot-line lines))))
(defun b-xref-jot-line (line)
"Jot a note on LINE."
(goto-char (line->point line))
(delete-char 1)
(insert b-xref-jot))
(defun b-xref-buffer (buffer)
"Runs a buffer through 'perl -MO=Xref,-raw' and returns the parsed data."
(save-excursion
(save-restriction
(set-buffer buffer)
(widen)
(goto-char (point-min))
(let ((perl (if (looking-at auto-mode-interpreter-regexp)
(match-string 2)
(or b-xref-bin "perl")))
(infile (if (buffer-modified-p)
(error "TODO: Copy modified buffer to temp file.")
(buffer-file-name)))
(buffer (generate-new-buffer "*b-xref-raw*")))
(let ((rc (call-process perl infile buffer nil "-MO=Xref,-raw")))
(or (zerop rc)
(error "%s exited with %d" perl rc)))
(let ((xref-output (b-xref-read-raw buffer "-")))
(kill-buffer buffer)
xref-output)))))
(defun b-xref-list-> (a b)
"Sorts a list so larger numbers go first, then shorter lists."
(if (and (numberp (car a))
(numberp (car b)))
(or (> (car a) (car b))
(and (= (car a) (car b))
(b-xref-list-> (cdr a) (cdr b))))
(and (null a)
(not (null b)))))
(defun b-xref-alist-> (a b)
"Sorts the elements of an alist with `b-xref-list->'"
(b-xref-list-> (cdr a) (cdr b)))
(defun trim (str) (rtrim (ltrim str)))
(defun ltrim (str) (replace-regexp-in-string "^ +" "" str))
(defun rtrim (str) (replace-regexp-in-string " +$" "" str))
(defun b-xref-read-raw (buffer filename)
"Reads the output from 'perl -MO=Xref,-raw'."
(save-excursion
(save-restriction
(set-buffer buffer)
(widen)
(goto-char (point-min))
(let ((xref-regexp (concat "^"
(regexp-quote filename)
(let ((pad (- 16 (length filename))))
(if (> pad 0)
(make-string pad ? )
""))
" ............[^ \n]*"
" \\(.....[^ \n]*\\)"
" \\(............[^ \n]*\\)"
" ....[^ \n]*"
" \\(................[^ \n]*\\)"
" \\([^\n]+\\)\n"))
(xref-output ()))
(while (re-search-forward xref-regexp nil t)
(or (bolp) (forward-line))
(let ((line (string-to-number (trim (match-string 1))))
(pack (trim (match-string 2)))
(name (trim (match-string 3))))
(if (zerop line)
nil
(let ((key (list pack name)))
(let ((pair (assoc key xref-output)))
(if pair
(let ((lines (cdr pair)))
(or (member line lines)
(nconc lines (list line))))
(push (cons key (list line)) xref-output)))))))
(sort xref-output 'b-xref-alist->)))))
##
##
use Regexp::Common 'number';
my $NUMBER = "(?x:
\\( \\$? (?: $RE{num}{real}
| $RE{num}{int}
| $RE{num}{real}{-sep => ','}{-group => 3}
| $RE{num}{int} {-sep => ','}{-group => 3} ) \\)
| \\$? -? (?: $RE{num}{real}
| $RE{num}{int}
| $RE{num}{real}{-sep => ','}{-group => 3}
| $RE{num}{int} {-sep => ','}{-group => 3} )
)";
##
##
### Installing the multi-method hook.
*$method_name = sub {
my ($self) = shift;
if (wantarray) {
return map $self->$_(@_), @$methods_to_call;
}
elsif ( defined wantarray ) {
return join( ' ', map $_->$_(@_), @$methods_to_call );
}
else {
$self->$_(@_) for @$methods_to_call;
return;
}
};
### Installing the multi-method hook.
eval 'sub $method_name {
my ($self) = shift;
my @results;
if (wantarray) {
' . join( '', map "#line $_->{line} \"$_->{filename}\"
push \@results, \$self->\$methods_to_call[$_->{index}]( \@_ );
" ) . '#line ' . __LINE__ . ' "' . __FILE__ . '"
return @results;
}
elsif ( defined wantarray ) {
' . join( '', map "#line $_->{line} \"$_->{filename}\"
push \@results, \$self->\$methods_to_call[$_->{index}]( \@_ );
" ) . '#line ' . __LINE__ . ' "' . __FILE__ .'"
return join( " ", @results );
}
else {
' . join( '', map "#line $_->{line} \"$_->{filename}\"
\$self->\$methods_to_call[$_->{index}]( \@_ );
" ) . '#line ' . __LINE__ . ' "' . __FILE__ .'"
return join( " ", @results );
}
}';
##
##
sub ideal
# Everything must be declared before use or at definition
while INPUT
$accumulator .= $obj->do_something( $_ )
return $result
sub reality
# Allow the use of things prior to declaring or defining them: one pass
# looks for all declarations and the next pass proceeds as normal.
@input = INPUT
$obj->examine( @input )
while @input
$accumulator .= $obj->do_something( $_ )
return $result
sub surreality
# Just like reality() except that post-facto declarations might change
# how previous results in $accumulator occurred.
while INPUT
$accumulator .= $obj->do_something( $_ )
return $result
##
##
use IO::Socket;
my $ticker = IO::Socket::INET->new( PeerAddr => 'web6...',
PeerPort => 8081 );
while ( my $msg = read_record( $ticker ) ) {
print "$msg->{msgtext}\n";
}
sub read_record {
# Reads a single record from the streaming ticker
my $sock = shift;
local $/ = "";
my %record =
map( /^([^=]+)=?([^\r\n]*)/
? ( $1, $2 )
: (),
readline( $sock ) =~ /([^\r\n]+)/g );
for ( values %record ) {
s/\\\\/\\/g;
s/\\\r/\r/g;
s/\\\n/\n/g;
}
}
##
##
CX=0
package=BAR
filename=aaa.pl
line=2
subroutine=(eval)
hasargs=0
wantarray=0
evaltext=bbb.pm
is_require=1
hints=0
bitmask=\000\000\000\000\000\000\000\000\000\000\000\000
CX=1
package=main
filename=bbb.pm
line=0
subroutine=BAR::BEGIN
hasargs=1
wantarray=0
evaltext=undef
is_require=undef
hints=0
bitmask=\000\000\000\000\000\000\000\000\000\000\000\000
ARGS=
CX=2
package=main
filename=bbb.pm
line=0
subroutine=(eval)
hasargs=0
wantarray=0
evaltext=undef
is_require=undef
hints=0
bitmask=\000\000\000\000\000\000\000\000\000\000\000\000
##
##
package BAR;
use bbb;
##
##
package bbb;
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Indent = 0;
my @params = qw( package filename line subroutine hasargs
wantarray evaltext is_require hints bitmask );
for ( my $cx = 0;
caller $cx;
++ $cx ) {
my %caller;
@caller{@params}
= map +( defined() ? $_ : 'undef' ),
do { package DB; # see perldebguts for this magic.
caller $cx };
print( "CX=$cx\n",
join( '',
map " $_=$caller{$_}\n",
@params ),
$caller{hasargs} ? " ARGS=" . Dumper( @DB::args ) . "\n" : () );
}
1;
##
##
package Text::Table::Squish;
use strict;
use warnings;
use Exporter;
use vars qw( @EXPORT_OK %EXPORT_TAGS );
use subs qw( transpose squishtable );
BEGIN {
*import = \&Exporter::import;
@EXPORT_OK = qw( squishtable squishtable_emacs squishtable_sql squishtable_spaces squishtable_dwim );
%EXPORT_TAGS = ( all => \ @EXPORT_OK );
}
use Algorithm::Loops qw( MapCarU Filter );
sub squishtable_dwim {
# Attempts to squish on anything potentially reasonable.
# 1 |22 |333 |4444
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
squishtable $_[0],
"^([^\\w\r\n])\\1+[\r\n]+",
"^ +[\r\n]+";
}
sub squishtable_emacs {
# Squishes emacs tables.
# +---+---+---+
# | | | |
# +---+---+---+
# | | | |
# +---+---+---+
squishtable $_[0],
"^\\+(?:\\|\\+)+[\r\n]+",
"^-(?: -)+[\r\n]+";
}
sub squishtable_sql {
# 1 |22 |333 |4444
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
# . |.. |... |....
squishtable $_[0],
"^\\|+[\r\n]+",
"^ +[\r\n]+";
}
sub squishtable_spaces {
# Squishes to space delimited columns. Stuff that was printed in fixed width columns is also handled here.
# 1 22 333 4444
# . .. ... ....
# . .. ... ....
# . .. ... ....
# . .. ... ....
# . .. ... ....
# . .. ... ....
squishtable $_[0],
"^ +[\r\n]+",
"^ +[\r\n]+",
}
my %CompiledPatterns;
sub squishtable {
# Removes extra trailing space at the end of columns in a
# table.
my ( $table, $column_separator, $empty_column ) = @_;
if ( not( defined $column_separator
and defined $empty_column ) ) {
# If I was not given a spec to squish by, use dwimmery to get what I want.
$column_separator = "^([^\\w\r\n])\\1+[\r\n]+";
$empty_column = "^ +[\r\n]+";
}
# Compile and cache this pattern.
my $pattern = "(?m)(?:$empty_column)+(?=$column_separator)";
$pattern = $CompiledPatterns{$pattern} || qr/$pattern/m;
return
transpose
Filter { s/$pattern//mg }
transpose
$table;
}
sub transpose {
my ( $table ) = @_;
return join( '',
map join( '', @$_ ) . "\n",
MapCarU( sub { [@_] },
map( [ split // ],
split( /[\r\n]+/, $table ) ) ) );
}
1;
__END__
=head1 NAME
=head1 DESCRIPTION
=head1 SYNOPSIS
=head1 FUNCTIONS
=over 4
=item $table = squishtable( $table )
=item $table = squishtable_dwim( $table )
=item $table = squishtable_spaces( $table )
=item $table = squishtable_sql( $table )
=item $table = squishtable_emacs( $table )
=item $table = squishtable( $table, $column_separator, $empty_column )
=back
=cut
##
##
/* Comfortable editing regions */
textarea { width: 100%; height: 25em; }
/* Form-fit everything to even-more dark than darktheme */
* {
color: white !important;
background-color: black !important;
FONT-FAMILY: sans-serif;
FONT-SIZE: 13px;
FONT-WEIGHT: normal;
}
a { text-decoration: underline; }
a:link { background-color: #000; }
a:visited { background-color: #131; }
form { display: inline; }
pre { font-family: monospace; }
tt * {
font-family: monospace;
color: green !important;
}
/* NodeReaper in small caps */
.chatfrom_52855 { font-variant: small-caps; }
.borgism { font-variant: small-caps; }
/* Hide all signatures - ugly things */
.pmsig { display: none; }
/* Anonymize all notes */
.attribution { display: none; }
/* Shun Anonymous Monk */
/* .pmnote-961 { display: none; } */
/* Shun Wassercrats */
.pmnote-152520 { display: none; }
/* pmdev code */
nodelet.new-patch { font-weight: twinkling; }
.diff_inserted {
font-family: monospace;
color: green !important;
}
.diff_deleted {
font-family: monospace;
color: green !important ;
text-decoration: strikethrough !important;
}
.diff_match {
font-family: monospace;
}
##
##
#!/usr/bin/perl
main( @ARGV );
exit;
sub main {
$DEBUG = grep /-d/, @ARGV;
my $user = ( scalar grep !/^-/,
@ARGV )
? ( ( grep !/^-/, @ARGV )[0] )
: $ENV{'USER'};
my $ps = user_ps( $user );
unlink "/home/$user/.gnome/session";
my @to_kill;
do {
for ( [ zombies => sub { grep $_->{'status'} =~ /Z/, @_ } ],
[ firefox => sub { grep $_->{'command'} =~ /firefox/, @_ } ] ) {
my ( $name, $filter ) = @$_;
@to_kill = $filter->( @$ps );
killall( \ @to_kill, $ps );
}
} until not @to_kill;
1;
}
sub killall {
my @to_find = @{ shift() };
my @ps = @{ shift() };
my %pids;
my %rel;
for ( @ps ) {
$pids{$->{'pid'}} = 1;
$rel{$_->{'pid' }}{$_->{'ppid'}} = 1;
$rel{$_->{'ppid'}}{$_->{'pid' }} = 1;
}
my %seen;
my @to_kill = map $_->{pid}, @to_find;
{
my $changed = 0;
do {
my @n = grep !$seen{$_}++,
grep $pids{$_},
map keys(%$_),
grep ref(),
delete @rel{ @to_kill };
push @to_kill, @n;
$changed = scalar @n;
} while $changed;
}
for my $sig ( qw[ INT TERM KILL ] ) {
if ( @to_kill ) {
my $cmd = "kill -$sig @to_kill";
if ( $DEBUG ) {
print STDERR "$cmd\n";
}
system $cmd;
@to_kill = grep kill(0,$_), @to_kill;
}
if ( @to_kill ) {
sleep 5;
}
}
return 1;
}
sub all_user_ps {
[ map { ! /(\S+)\s+(\S+)\s+(\S+)\s+(.+)/
? ()
: +{ pid => $1,
ppid => $2,
status => $3,
command => $4 } }
split /[\r\n]+/,
`ps a
}
sub user_ps {
my $user = shift;
[ map { ! /(\S+)\s+(\S+)\s+(\S+)\s+(.+)/
? ()
: +{ pid => $1,
ppid => $2,
status => $3,
command => $4 } }
split /[\r\n]+/,
`ps -U $user -o pid=,ppid=,s=,comm= --sort=pid,ppid` ];
}
##
##
#!/home/josh/perl5.8.3/bin/perl use strict;
use warnings;
use DBI;
use MatchDB qw(add_source match);
# Cam Gordon's city council campaign db
add_source( name => 'camgordon',
dbh => DBI->connect('DBI:CSV:'),
table => 'camgordon.csv',
id => sub { join( ' ',
@{$_[0]}{qw( id
no_sos )} ) },
map => [ [ qw[FIRST_NAME first_name] ],
[ qw[LAST_NAME last_name] ],
[ qw[HOUSE_NUMBER house_number] ],
[ STREET_NAME =>
sub { join( ' ',
@{$_[0]}{qw( street_name
street_type
street_direction )} ) } ],
[ qw[CITY city] ] ] );
# Green Party of Minnesota
add_source( name => 'gpm',
dbh => DBI->connect('dbi:Pg:dbname=gpm'),
table => 'contacts',
id => 'contact_id',
map => [ [ qw[FIRST_NAME first_name] ],
[ qw[LAST_NAME last_name] ],
[ qw[HOUSE_NUMBER house_number] ],
[ qw[STREET_NAME address] ],
[ qw[CITY city] ] ] );
# ACORN member roster
add_source( name => 'acorn',
dbh => DBI->connect('dbi:Pg:dbname=acorn'),
table => 'acorn',
id => 'id',
map => [ [ qw[FIRST_NAME first_name] ],
[ qw[LAST_NAME last_name] ],
[ qw[HOUSE_NUMBER house_number] ],
[ qw[STREET_NAME street_name] ],
[ qw[CITY city] ] ] );
# State of Minnesota voter roster
add_source( name => 'sosvr',
dbh => DBI->connect('dbi:Pg:dbname=sosvr'),
table => 'roster',
id => 'id_gnumber',
map => [ [ qw[FIRST_NAME first_gname] ],
[ qw[LAST_NAME last_gname] ],
[ qw[HOUSE_NUMBER house_g] ],
[ qw[STREET_NAME street_gname] ],
[ qw[CITY city] ] ] );
match( qw[HOUSE_NUMBER ==] );
##
##
my $keys = '('
. join( '|',
map quotemata(),
( 'R&R Part',
'In Process',
'On Hand (05)',
'Loan Qty',
'Back Order Qty (14)',
'Ord Resvd',
'Min Qty' ) )
. ')';
my %matches = $input =~
/$keys.+?\e\[[\d;]*m\s*(\d+)/sig;
##
##
library(RODBC)
pm <- odbcConnect("perlmonks")
nodes.all <- list(Su00=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 0 AND EXTRACT('year'
FROM createtime) = 2000 GROUP BY createtime::date) AS o"),
Su01=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 0 AND EXTRACT('year'
FROM createtime) = 2001 GROUP BY createtime::date) AS o"),
Su02=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 0 AND EXTRACT('year'
FROM createtime) = 2002 GROUP BY createtime::date) AS o"),
Su03=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 0 AND EXTRACT('year'
FROM createtime) = 2003 GROUP BY createtime::date) AS o"),
Su04=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 0 AND EXTRACT('year'
FROM createtime) = 2004 GROUP BY createtime::date) AS o"),
Mo00=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 1 AND EXTRACT('year'
FROM createtime) = 2000 GROUP BY createtime::date) AS o"),
Mo01=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 1 AND EXTRACT('year'
FROM createtime) = 2001 GROUP BY createtime::date) AS o"),
Mo02=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 1 AND EXTRACT('year'
FROM createtime) = 2002 GROUP BY createtime::date) AS o"),
Mo03=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 1 AND EXTRACT('year'
FROM createtime) = 2003 GROUP BY createtime::date) AS o"),
Mo04=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 1 AND EXTRACT('year'
FROM createtime) = 2004 GROUP BY createtime::date) AS o"),
Tu00=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 2 AND EXTRACT('year'
FROM createtime) = 2000 GROUP BY createtime::date) AS o"),
Tu01=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 2 AND EXTRACT('year'
FROM createtime) = 2001 GROUP BY createtime::date) AS o"),
Tu02=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 2 AND EXTRACT('year'
FROM createtime) = 2002 GROUP BY createtime::date) AS o"),
Tu03=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 2 AND EXTRACT('year'
FROM createtime) = 2003 GROUP BY createtime::date) AS o"),
Tu04=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 2 AND EXTRACT('year'
FROM createtime) = 2004 GROUP BY createtime::date) AS o"),
We00=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 3 AND EXTRACT('year'
FROM createtime) = 2000 GROUP BY createtime::date) AS o"),
We01=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 3 AND EXTRACT('year'
FROM createtime) = 2001 GROUP BY createtime::date) AS o"),
We02=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 3 AND EXTRACT('year'
FROM createtime) = 2002 GROUP BY createtime::date) AS o"),
We03=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 3 AND EXTRACT('year'
FROM createtime) = 2003 GROUP BY createtime::date) AS o"),
We04=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 3 AND EXTRACT('year'
FROM createtime) = 2004 GROUP BY createtime::date) AS o"),
Th00=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 4 AND EXTRACT('year'
FROM createtime) = 2000 GROUP BY createtime::date) AS o"),
Th01=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 4 AND EXTRACT('year'
FROM createtime) = 2001 GROUP BY createtime::date) AS o"),
Th02=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 4 AND EXTRACT('year'
FROM createtime) = 2002 GROUP BY createtime::date) AS o"),
Th03=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 4 AND EXTRACT('year'
FROM createtime) = 2003 GROUP BY createtime::date) AS o"),
Th04=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 4 AND EXTRACT('year'
FROM createtime) = 2004 GROUP BY createtime::date) AS o"),
Fr00=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 5 AND EXTRACT('year'
FROM createtime) = 2000 GROUP BY createtime::date) AS o"),
Fr01=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 5 AND EXTRACT('year'
FROM createtime) = 2001 GROUP BY createtime::date) AS o"),
Fr02=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 5 AND EXTRACT('year'
FROM createtime) = 2002 GROUP BY createtime::date) AS o"),
Fr03=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 5 AND EXTRACT('year'
FROM createtime) = 2003 GROUP BY createtime::date) AS o"),
Fr04=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 5 AND EXTRACT('year'
FROM createtime) = 2004 GROUP BY createtime::date) AS o"),
Sa00=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 6 AND EXTRACT('year'
FROM createtime) = 2000 GROUP BY createtime::date) AS o"),
Sa01=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 6 AND EXTRACT('year'
FROM createtime) = 2001 GROUP BY createtime::date) AS o"),
Sa02=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 6 AND EXTRACT('year'
FROM createtime) = 2002 GROUP BY createtime::date) AS o"),
Sa03=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 6 AND EXTRACT('year'
FROM createtime) = 2003 GROUP BY createtime::date) AS o"),
Sa04=sqlQuery(pm,"SELECT count FROM
(SELECT createtime::date, count(*) FROM node_times WHERE
EXTRACT('dow' FROM createtime::date) = 6 AND EXTRACT('year'
FROM createtime) = 2004 GROUP BY createtime::date) AS o"))
boxplot(nodes_all)