Pensando en Red nada es tan fácil como parece serlo

15sep/100

Instalando php 5.2.x en Ubuntu 10.04 Lucid + APT::Cache-Limit Error

Si trabajas en entornos de desarrollo LAMP puede que ya hayas pasado por esto, pero para los "novatos" será una chuleta de utilidad si das con este sitio a tiempo.

La versión de Ubuntu 10.04 Lucid, como sabéis utiliza php 5.3 pero no todos trabajamos con esta versión de php, aunque todo llegará, y claro es cuando nos llevamos las manos a la cabeza cuando hacemos el update/instalación de Ubuntu 10.04.

Bien para hacer la instalación de php5.2 es muy sencillo, con seguir los pasos del enlace de este blog lo tenemos solucionado.

Pero luego, como nuestro repositorio tendrá más información disponible tienes que aumentar el valor de la variable APT::Cache-Limit para evitar el error al refrescar nuestros repositorios.

Crea el fichero 00apt en:

/etc/apt/apt.conf.d/00apt

Y le asignamos un valor elevado al APT::Cache-Limit:

APT::Cache-Limit 99999999;

Bien, ahora ya podemos actualizar los repositorios sin errores y estaremos trabajando con la versión php5.2 en Ubuntu 10.04.

16jul/081

Mi primer programa: Hola Mundo!

De todos es sabido que cuando comienzas a programar un lenguaje el primer programa que se realiza es el "Hola Mundo!" para comprobar como compilar y como funciona más o menos el interfaz de desarrollo. Me he encontrado en Wikipedia un Hola Mundo en muchisimos por no decir casi todos los lenguajes de programación.

http://es.wikipedia.org/wiki/Hola_mundo

Así podréis comprobar si está el lenguaje que vosotors utilizais o comprobar la sintaxis de lenguajes a los que os gustaría echarles el guante ^_^

Hola Mundo!

Etiquetado con: 1 Comentario
24ene/080

Programando un Spider en Perl

Últimamente cuando dispongo de tiempo (algo raro últimamente) me he aficionado por indagar en Perl. Es un lenguaje que siempre me ha gustado y aunque mucho opinen que está obsoleto sigo creyendo que este lenguaje tiene mucho potencial que ofrecer, la comunidad que se mueve entorno a él es muy grande.

Hace ya unos meses me surgió la idea de hacer un programa para utilizarlo como tester de carga de usuarios simultáneos para una web, para testear su comportamiento/rendimiento y lo que en un principio pretendía ser un programa malicioso... ya que se podría usar para fines no muy éticos, dio un giro según iba investigando.

Perl lo he utilizado a nivel profesional para ocasiones muy puntuales y no he tenido la oportunidad de hacer un "programa" en condiciones.

El código que abajo os dejo tampoco es una maravilla, pero es algo que hice probando "el año pasado" el intento de hacer un Spider. Está muy verde y no se cuando volveré a disponer del tiempo y las ganas suficientes como para investigar después de la jornada de trabajo. Pero aquí os dejo un fragmeto que puede iniciar a los no muy decididos o principiantes sobre este lenguaje.

#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use HTTP::Request;
my $url = "http://www.google.com";
&webFlood($url);
sub webFlood {
my ($url) = @_;
my $html = &leerUrl($url);
my @enlaces = &buscarLink($html);
my $contador = @enlaces;
if($contador > 0){
foreach(@enlaces){
my $link = $_;
print ("n[ Url ] ".$link);
&webFlood($link);
}
}else{
return(0);
}
}
print("n");
sub leerLinks {
#my ($url) = @_;
#my $html = &leerUrl($url);
my (@links) = @_;
my $html;
my @enlaces;
my $i = 0;
foreach (@links) {
print "n url: " . $_;
my $link = $_;
#print( "   [Link] " . $link . "n" );
$html = &leerUrl($link);
$enlaces[$i] = &buscarLink($html);
$i++;
}
return @enlaces;
}
sub leerUrl {
my ($url) = @_;
my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000; DigExt)");
my $req = HTTP::Request->new( GET => $url );
my $response = $ua->request($req);
return $response->content;
}
sub buscarLink {
my ($html) = @_;
my @links;
my $i = 0;
while ( $html =~ /href="(.*?)".*?>/isg ) {
$links[$i] = ($1);
$i++;
}
return @links;
}

Lo que haces es leer una URL y del HTML que recoge coge solo el contenido de los href. Obviamente como ya sabréis, no todos los href son enlaces. Falta mucho que depurar pero es un buen pasatiempo cuando se tiene la mente descansada. Cuando le haga algún cambio os lo publico.

Si os surge alguna duda sobre algo del código siempre podéis comentar :-)

16dic/072

Envío de correo electrónico con Perl

Función para enviar un correo electrónico con Perl:

#!/usr/bin/perl -w
sub smtp {
use Email::MIME::Creator;
my ( $To, $FromName, $FromMail, $Bcc, $Subject, $msg_html ) = @_;
my @html = $msg_html;
# mensaje multipart
my @parts = (
Email::MIME->create(
attributes => {
content_type => "text/html; charset=iso-8859-1",
encoding => "quoted-printable",
},
body => "@html",
),
);
# Declaramos al sender y adjuntamos los archivos a enviar
my $email = Email::MIME->create(
header => [ From => "$FromName < $FromMail >" ],
parts => [ @parts ],
);
# modificamos nuestro encabezado
$email->header_set( "MIME-Version: 1.0rn" );
$email->header_set("Content-type: text/html; charset=iso-8859-1rn");
$email->header_set( 'X-PoweredBy' => 'v3.0' );
$email->header_set( To => "$To" );
$email->header_set( Bcc => "$Bcc" );
$email->header_set( Subject => "$Subject" );
# modificaciones avanzadas, elegimos base64 o bien 7bit para aceptar multipart
#$_->encoding_set( 'base64' ) for $email->parts;
# Accesamos al binario de sendmail y enviamos los mensajes
open (MAIL, "|/usr/sbin/sendmail -t") || die "No hay acceso al binario sendmailn";
#open (MAIL, "|/usr/sbin/postfix") || die "No hay acceso al binario sendmailn";
print MAIL $email->as_string;
}

Para usar la función:

&smtp($vTo, $vFromName, $vFromMail, $vBcc, $vSubject, $vmsg_html );
Archivado en: Linux, Perl 2 Comentarios
13dic/070

Módulo de Perl para usar Festival

Entre que ando probando Perl e indagando sobre Festival me he encontrado un módulo de Perl para usar Festival.

Podéis encontrar más información aquí.

Descargar módulo speech festival para perl.

13dic/072

Editor para Perl

eclipse_home_header.jpgGracias a nuestro amigo Eclipse un editor que tiene plugins para todo podemos instalar otro plugin que nos es de gran utilidad para trabajar con este lenguaje, Perl.

Así nos dejamos de utilizar editores de consola que aunque rápidos, no nos ofrecen el interface de desarrollo que nos puede llegar a ofrecer este programa.

Descargar Eclipse

Plugin Perl para Eclipse

12dic/070

Web Flood básico en Perl

#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
use LWP::UserAgent;
use HTTP::Request;
my $i;
for($i=0;$i<10;$i++){
	print("n============== [ ".($i+1)." ] Resultado ========================n");
	&leerUrl;
}
print("n");
sub leerUrl{
	my $ua = LWP::UserAgent->new;
	$ua->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000; DigExt)");
	my $url = "http://google.com/";
	my $req = HTTP::Request->new(GET => $url);
	my $i;
	my $ahora = time();
	for($i=0;$i<10;$i++){
		my $response = $ua->request($req);
		if($response){
			my $demora = time() - $ahora;
			print( "n [ ".($i+1)." ] Respuesta recibida  ".$url." en ".$demora." sec." );
			$ahora = time();
		}
	}
	print("n");
}
12dic/070

Lenguaje Perl, ese gran desconocido

Perl es un lenguaje de programación que actualmente está algo "obsoleto" por "las nuevas generaciones" de programadores. Yo lo conocí en la época de las páginas dinámicas con cgi's en donde crear una web con base de datos era un esfuerzo horrendo. Se podía programar con Perl o con C un cgi (por lo menos lo que yo conocí) y ahora años más tarde intento rescatar y mejorar conocimientos sobre un lenguaje que aunque no parece ser puntero, tiene fama de tener buen rendimiento.

Archivado en: Perl No hay comentarios
   

Page optimized by WP Minify WordPress Plugin