Monday, January 22, 2007

LOSERS


Secondo me non conviene indicizzare gli array con perl.

In molti libri si legge che perl e' lento perche' i programmatori per testarlo lo usano come fosse il C.

Il perl e' un linguaggio per gente che ha bisogno di trovare una scorciatoia nella vita, che non si assume responsabilita', un malato della sindrome di Peter Pan che rifiuta le regole ferree di un qualsiasi C++ o JAVA.

Tra loro troverete, ubriaconi, prositute e biologi cacciati a pedate dall'albo mentre cercavano di trovare uno script genomico di 1000 righe senza mai sospettare il perl di una qualche caratteristica ad oggetti.

Si aggirano per la rete cercando uno script che non riescono a creare sperando che qualcun'altro lo abbia fatto per loro.

Sono i cosiddetti perdenti... non vanno al cinema, non leggono, raramente vanno in palestra e solo durante il Thanks Giving si lavano.

Sono i cosiddetti mentecatti... alle volte cercano di penetrare qualche sistema e regolarmente vengono scoperti come i piu' vili dei lamers.

Come ha descritto bene quel tale che veniva da non ricordo bene dove: "Sarebbe stato meglio per loro se non fossero mai nati, per loro saranno solo pianti e stridori di denti".

#$stringa=join "\t", @MENTECATTO;
#$stringa=~ s/Query=/!Query=/g;
#$stringa=~ s/Identities/!Identities/g;
#@LOSER= split(/!/,$stringa);

use strict;

my @text;
my $sleeptime;
my $max;
my $min;
my $lines = 0;
my $factor;
my $use_substr = 0;
my $single_step;

my $exit_now = 0;

$SIG{INT} = 'int_handler';

while (my $arg = shift) {
if ($arg =~ /^(-f|--fps)$/) {
$_ = shift;
$sleeptime = 1/$_;
}
elsif ($arg =~ /^(-t|--text)$/) {
$text[0] = shift;
}
elsif ($arg =~ /^(-x|--max-indent)$/) {
$max = shift;
}
elsif ($arg =~ /^(-n|--min-indent)$/) {
$min = shift;
}
elsif ($arg =~ /^(-l|--lines)$/) {
$lines = shift;
}
elsif ($arg =~ /^(-r|--random-factor)$/) {
$factor = shift;
}
elsif ($arg =~ /^(-s|--substring)$/) {
$use_substr = 1;
}
elsif ($arg =~ /^(-m|--multiline)$/) {
while () {
chomp;
@text = (@text, $_);
}
}
elsif ($arg =~ /^(-M|--Multiline)$/) {
while () {
$single_step = 1;
chomp;
@text = (@text, $_);
}
}
elsif ($arg =~ /^(-h|--help)$/) {
&print_help_text;
exit 0;
}
else {
die "unknown option $arg\n";
}
}

unless (defined($text[0])) {
$text[0] = '_,-=\'`=-._,-=\'`=-._,-=\'`=-._,-=\'`=-._';
}
$use_substr = 0 if (defined($text[1]));
unless (defined($sleeptime)) {$sleeptime = 1/20;}
unless (defined($max)) {$max = 30;}
unless (defined($min)) {$min = 0;}
if ($min >= $max) {die "max indent must be greater than min indent\n";}
unless (defined($factor)) {$factor = ($max - $min) * .66;}

srand;


my $indent = int(rand($max - $min)) + $min;
my $step = 1;
my $count = 0;


my $length = length($text[0]);
my $left = 0;
my $right = $length;
my $mid = int($length/2);
my $left_step = 1;
my $right_step = -1;
my $left_factor = int($mid/4);
my $right_factor = int($mid/4);

while (1) {

exit 0 if ($exit_now);

my $out = '';

if ($step == 1) {
if ($indent + rand($factor) >= $max) {$step = -1;}
}
else {
if ($indent - rand($factor) <= $min) {$step = 1;}
}
$indent += $step;

for (0..$indent) {$out .= ' ';}

if ($use_substr) {
if ($left_step == 1) {
if ($left + rand($left_factor) >= $mid) {$left_step = -1}
}
else {
if ($left - rand($left_factor) <= 0) {$left_step = 1}
}
if ($right_step == 1) {
if ($right + rand($right_factor) >= $length) {$right_step = -1}
}
else {
if ($right - rand($right_factor) <= $mid) {$right_step = 1}
}
$left += $left_step;

$right = $length - $left;

print $out, substr($text[0], $left, $right-$left), "\n";
}
else {
foreach (@text) {
print $out, $_, "\n";
select(undef, undef, undef, $sleeptime) if ($single_step);
}
}

select(undef, undef, undef, $sleeptime) unless ($single_step);
if ($lines) {
exit 0 if ($count >= $lines);
$count++;
}
}

sub int_handler {
if ($exit_now > 1) {
print STDERR "exiting on 2nd interrupt signal\n";
exit 0;
}
$exit_now++;
}

sub print_help_text {
print
}

4 comments:

Anonymous said...

t'avevo detto o no che il perl se vuole sa essere ostico nei riguardi degli umani? il perl si nasconde per nasconderti la verità. "La Verità è che tu sei uno schiavo. Come tutti gli altri sei nato in catene. Sei nato in una prigione che non ha sbarre, che non ha muri, che non ha odore. Una prigione, per la tua mente."
AH AH AH AH AH

Romagnolo said...

Ah morpheus... ma che ce l'hai messe le formiche ner cubo?

Anonymous said...

non ancora... mi risulta difficile trovare una regina... ieri sono entrato in un negozio e ho chiesto se avevano una regina, ma non hanno capito ed hanno chiamato la sorveglianza... ritenterò nel pomeriggio.

Romagnolo said...

prova a chiedere almeno una principessa... non fare il passo piu' lungo della gamba!