Rodrigo Fuentealba escribió:

> >--
> >Alvaro Herrera       Valdivia, Chile   ICBM: S 39º 49' 18.1", W 73º 13' 
> >56.4"
> >"You knock on that door or the sun will be shining on places inside you
> >that the sun doesn't usually shine" (en Death: "The High Cost of Living")
> >
> 
> OT: ¿cómo haces para poner un fortune/frase distinta en tu mail?

Con este programa, que escribi hace varios an~os, y un par de archivos
de datos.  Por ej. el "headers" es asi:

1       Alvaro Herrera       Valdivia, Chile   ICBM: S 39º 49' 18.1", W 73º 13' 
56.4"
2       Alvaro Herrera                           Developer, 
http://www.PostgreSQL.org
3       Alvaro Herrera                  
http://www.amazon.com/gp/registry/5ZYLFMCVHXC
4       Alvaro Herrera                        
http://www.advogato.org/person/alvherre
5       Alvaro Herrera                                
http://www.PlanetPostgreSQL.org
6       Alvaro Herrera                 
http://www.amazon.com/gp/registry/CTMLCN8V17R4
7       Alvaro Herrera                 
http://www.amazon.com/gp/registry/DXLWNGRJD34J


y el archivo "sigs" es asi:

51      "Use it up, wear it out, make it do, or do without"
52      Hi! I'm a .signature virus!
52      cp me into your .signature file to help me spread!
53      "La gente vulgar solo piensa en pasar el tiempo;
53      el que tiene talento, en aprovecharlo"
54      "Puedes vivir solo una vez, pero si lo haces bien, una vez es 
suficiente"

Los numeros deben ser correlativos, sin agujeros en la numeracion, y
deben ir seguidos de un tab.  El programa permite escoger distintos
"sigs" y "headers" dependiendo del "rol" que escoges.  Es bien low-tech
:-)  Una vez quise hacer un reemplazo en C pero al final me dio lata :-)

Cuando quiero agregar una nueva frase (cosa que pasa de vez en cuando)
uso este otro programa:

#!/usr/bin/perl -w
$HOME = $ENV{"HOME"};

$SIGS = "$HOME/FIRMAS/sigs";

$index = 0;
$index = `tail -1 $SIGS 2>/dev/null | awk '{ print \$1}' ` + 1;

print STDERR "Agregando signature numero $index\n";

while (<STDIN>)
  { push @A, $_;  }
open(SIG, ">> $SIGS");
foreach (@A)
  { print SIG "$index\t$_";  }
close(SIG);


Este creo que lo escribio Aldrin Martoq, no me acuerdo.

-- 
Alvaro Herrera                 http://www.amazon.com/gp/registry/DXLWNGRJD34J
"El número de instalaciones de UNIX se ha elevado a 10,
y se espera que este número aumente" (UPM, 1972)
------------ próxima parte ------------
#!/usr/bin/perl -w

$HOME = $ENV{HOME};

$role = $ARGV[0] if defined $ARGV[0];

if (!defined $role || $role eq 'default') {
        $SIGFILE = "$HOME/FIRMAS/sigs";
        $HEADERS = "$HOME/FIRMAS/headers";
} elsif ($role eq 'cmd') {
        $HEADERS = "$HOME/FIRMAS/cmd-headers";
} else {
        die "Unrecognized role";
}

print "\n\n-- \n";

print leeAleatoria("$HEADERS") if defined $HEADERS;
print leeAleatoria("$SIGFILE") if defined $SIGFILE;

exit;

sub leeAleatoria {
        my $file = shift;
        my $index;
        my $rnd;
        my $str = "";

        $index = `tail -1 $file 2>/dev/null| awk '{print \$1}'` + 0;
        $rnd = int($index * rand) + 1;
        open(A, "grep '^$rnd    ' $file |");
        while (my $line = <A>) {
                if ($line =~ /^(\d+)\t(.*)$/) {
                        $str .= $2."\n"; 
                }
        }
        return $str;
}
From [EMAIL PROTECTED]  Mon Oct 23 13:44:47 2006
From: [EMAIL PROTECTED] (Horst H. von Brand)
Date: Mon Oct 23 14:22:37 2006
Subject: problemas con tarjeta de red inalambrica y con el sonido
        enubuntu (Module-Assistant). 
In-Reply-To: Your message of "Mon, 23 Oct 2006 08:56:41 -0300."
        <[EMAIL PROTECTED]> 
Message-ID: <[EMAIL PROTECTED]>

Alvaro Herrera <[EMAIL PROTECTED]> wrote:
> Héctor Mansilla escribió:
> > Por esas casualidades de la vida, entre los módulos estará disponible
> > Dazuko?
> 
> $ apt-cache search dazuko
> dazuko-source - source for the Dazuko driver

En <http://lwn.net/Articles/205505/> encontraras mas de una razon para
abstenerte...

[Quien &%$#d@ quiere copiar los estupidos errores de Hasefroch para "parar
 virus"? Una distro de Linux razonablemente moderna tiene mecanismos
 robustos para impedir que "algo" haga cosas indebidas, no trata de
 discriminar (a alto costo!) /cada vez que se usa/ si ese "algo" esta en
 alguna (desactualizada) lista de "sospechosos"...
 Para remate, usa la "tecnica" Hasefrochiana de modificar las llamadas al
 sistema para interceptar accesos a archivos, lo que es un crimen en Linux.]
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
From [EMAIL PROTECTED]  Mon Oct 23 14:00:20 2006
From: [EMAIL PROTECTED] (Horst H. von Brand)
Date: Mon Oct 23 14:22:42 2006
Subject: Programar en Linux 
In-Reply-To: Your message of "Mon, 23 Oct 2006 09:26:39 +0200."
        <[EMAIL PROTECTED]> 
Message-ID: <[EMAIL PROTECTED]>

Juan Martínez <[EMAIL PROTECTED]> wrote:

[...]

> Un lenguaje compilado, en general, siempre (o casi siempre) sera la
> mejor alternativa a usar.

Depende un poquitin de tu vara de medida... y hoy por hoy, es /muy lejos/
mas importante el tiempo de desarrollo que el rendimiento. Por eso todo el
cardumen de lenguajes (semi)compilados en extenso uso, desde el venerable
Perl pasando por Python, Ruby, Java, C#; sin olvidar cosillas como SQL o el
uso de planillas de calculo para toda clase de aplicaciones en serio (no
solo "veamos que pasa si..." con una columna de numeritos, o calculo de
promedios del curso). Y toda la estampida hacia "metodos agiles de
desarrollo" y yerbas similares viene de donde mismo.

>                           Sobre todo si es para un sistema complejo
> (un SIA por ejemplo), dado que será mas rapido que un lenguaje
> interpretado.

Lo cual es totalmente irrelevante. Que el SIA se demore 0,5s o 0,01s en
responder, si el perejil en la pagina web al otro lado de Chile luego pasa
5s pensando que hacer a continuacion no hace particular diferencia. Si, si
tienes decenas de miles de usuarios simultaneos es vital, pero eso se da
solo cuando muestran los resultados de las elecciones ;-)

[Si, /hay/ casos en los cuales el rendimiento realmente es crucial, pero
 son muchisisimos menos de lo que uno cree. Ve y mira la carga en tu
 "servidor" vecino, rara vez pasa del 40% en mi experiencia, tipicamente
 mucho menos...]
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
From [EMAIL PROTECTED]  Mon Oct 23 14:30:45 2006
From: [EMAIL PROTECTED] (Franco Catrin)
Date: Mon Oct 23 14:29:46 2006
Subject: Programar en Linux
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

El lun, 23-10-2006 a las 12:09 -0300, Alvaro Herrera escribió:
> Rodrigo Fuentealba escribió:
> 
> > Es más lento desde el punto de vista de ser interpretado en vez de
> > compilado, pero definitivamente prefiero tener un programa de 10 Kb
> > interpretado en memoria que uno de 10 Mb compilado...
> 
> <sarcasmo>
> Obvio ... es mucho mas conveniente interpretar N veces por segundo un
> script de 10 kB que requiere un interprete de 10 MB, que ejecutar un
> programa de 10 MB.
> </>

Y llevandolo a numeros reales, un codigo en java de 11Mb, compilado
queda en 1.9MB, por lo tanto uno de 10KB queda en mucho menos que 1.9MB

(tome un ejemplo al azar)

-- 
Franco Catrin L.       TUXPAN
http://www.tuxpan.com/fcatrin

Responder a