Generar codigo QR desde postgreSQL con Perl

perl_frase

qr-leninmhsComo practica para probar y conocer como generar códigos QR en Perl, realizaremos el siguiente ejercicio: conectarnos a una base de datos, consultar el identificador único de cada producto en una tabla de nuestra base de datos postgres, generar el código QR de cada uno de los productos. Cada QR direccionara a un url compuesto por una pagina web + el identificador, con lo cual suponemos que en ese url hubiera la información con mas detalle del producto. La practica sera realizada en Debian GNU/Linux

Usaremos el modulo de CPAN Imager::QRCode para generar nuestros QR. Mas información: http://search.cpan.org/~kurihara/Imager-QRCode/lib/Imager/QRCode.pm

Para conectarnos y consultar la base de datos, usaremos la extensión para postgres de Class::DBI. Mas información: http://search.cpan.org/~rudy/DBD-Pg/Pg.pm

Ambos módulos los tendremos disponibles en nuestro Debian con: #aptitude install libimager-qrcode-perl libclass-dbi-pg-perl

Crearemos un archivo de texto con extensión .pl colocaremos y adaptaremos lo siguiente:

Código Fuente

#!/usr/bin/perl -w
use Imager::QRCode;
use DBI;

my $bd = DBI->connect("DBI:Pg:dbname=bd_ventas;host=192.168.0.1", "usuario_bd", "clave_bd", {'RaiseError' => 1});
my (@consulta, $sth);

$sth=$bd->prepare("SELECT id_producto FROM productos");
$sth->execute();

my $qrcode = Imager::QRCode->new(
size          => 8,
margin        => 1,
version       => 4,
level         => 'L',
casesensitive => 1,
lightcolor    => Imager::Color->new(255, 255, 255),
darkcolor     => Imager::Color->new(0, 0, 0),
);

while(@consulta = $sth->fetchrow_array() ){
$img = $qrcode->plot("http://paginaweb.com.ve/$consulta[0]", \%params);
$img->write(file => "$consulta[0].gif");
}#fin while

Explicación del código fuente

Nota: La numeración presentada a continuación corresponde a las lineas de código presentadas anteriormente.

Sigue leyendo

pgFouine – Análisis de logs PostgreSQL en Debian

analisis-log-postgres-pgfouine

PgFouine, analiza las bitácoras (logs) de la base de datos PostgreSQL para generar informes detallados sobre el uso y abuso de consultas SQL que bien sabemos tienen una gran incidencia en el rendimiento y la carga que tendrá el manejador de base de datos y el servidor que lo aloje, con fin de optimizar y realizar los ajustes necesarios para mejorar el desempeño del mismo. Esta escrito en el lenguaje de programación PHP y se distribuye como software libre por lo que podrían generar los informes con logo personalizado, agregar particularidades, funcionalidades, mejorarlo, etc…

¿Como funciona pgFouine?

PgFouine realiza un análisis al archivo de log generado por PostgreSQL con el cual genera informes, que nos indicara que consultas SQL son las que mas tardan, cuales son mas frecuentes, cuantas consultas DML están presentes en ese archivo log, inclusive generando gráficos los cuales nos facilitara mucho la tarea de determinar o hacer seguimiento al comportamiento de nuestras bases de datos.

En un sistema operativo Debian GNU/Linux ó alguno de sus derivados(Canaima, Mint, Ubuntu) lo instalamos con un sencillo:

#aptitude install pgfouine

También pueden descargar el código fuente y luego de descomprimir el .tar.gz ejecutar con php el archivo pgfouine.php

pgFouine puede ser usado de dos maneras. Configurando los logs que genera PostgreSQL para usar las facilidades de syslog del sistema operativo, o mediante salida estándar stderr que es como viene por defecto la configuración del log generado por el manejador de base de datos. El propio equipo de pgFouine recomienda usar la vía del syslog por que resulta mas eficiente para su software ya que mediante la via stderr se pudieran encontrar inconsistencias en el informe generado. Nosotros usaremos la via del syslog.

1.- Configurar correctamente los log de PostgreSQL

Abrir con el editor preferido (nano, vi, vim, emacs, edit, etc… ) el archivo de configuración de postgresql: /etc/postgresql/8.4/main/postgresql.conf

ubicar la sección:

#——————————————————————————

# ERROR REPORTING AND LOGGING

#——————————————————————————

descomentar la siguiente linea:

#log_destination = 'stderr'

y dejarla asi:

log_destination = 'syslog'

Sigue leyendo

Alta Disponibilidad en PostgreSQL

En el marco de la I Jornada de Computación Aplicada Utilizando Herramientas de Software Libre se realizo ponencia de Alta Disponibilidad en PostgreSQL a estudiantes de la carrera de ingeniería de la Universidad Nacional Experimental Romulo Gallegos (UNERG) en San Juan de los Morros, Estado Guarico.

Descargar presentación: alta-disponibilidad-postgres

Sigue leyendo

Alta Disponibilidad con PgPool-II

esquema-pgpool-postgres

Aunque el común denominador suele referirse a estas soluciones de base de datos como cluster o clusterización por el hecho de que normalmente implica varios servidores, varias instancias o instalaciones de bases de datos distribuidas tal vez hasta geográficamente, lo correcto es referirse a “Alta Disponibilidad” del ingles High Availability (en muchos textos se abrevia HA) por que nos indica que la prioridad es “Mantener la Continuidad Operativa” de nuestro servicio, de nuestras operaciones, de la infraestructura tecnológica que soporta un negocio que simplemente no se puede dar el lujo de detenerse, o en caso de falla tiene que recuperarse y restaurarse bajo unas reglas definidas previamente, es por ello que hablamos de Alta Disponibilidad y no de cluster. Pgpool-II es una de las mejores y mas completa herramienta para brindar soluciones de alta disponibilidad en el manejador de bases de datos libres PostgreSQL. PgPool-II es software libre que trabaja como intermediario (middleware) entre clientes que se conecten contra postgres (psql, pgadmin, DBA’s, software, aplicativos, etc..) y otras instancias de bases de datos (nodos) para distribuir el trabajo o la carga entre los distintos nodos con los que cuente nuestro diseño o implementación de alta disponibilidad. Los clientes ven y se conectan a PgPool a través de una cadena de conexión común y silvestre como si fuera una base de datos mas, y a su vez cada uno de los nodos ven a PgPool como si fuera un cliente mas, de ahí que PgPool podría ser considerado desde este punto de vista como cliente y servidor al mismo tiempo. Sigue leyendo

V Jornastec – Taller Yii Framework

En el marco de las V Jornadas Nacionales de Soberanía Tecnológica (Jornastec ) realizada en Caracas  el 16-10-2011, se realizo un taller teórico-practico donde se aparte del intercambio de conocimientos relacionados a los framework’s de desarrollo, también se realizo un sistema sencillo con Yii Framework de PHP, el cual es un sistema demostrativo tipo registro donde aparte del CRUD, alcanzo el tiempo para generar PDF con la librería  MPDF , se realizo la carga de imágenes y se mejoraron los formularios agregando las relaciones, campo de fecha y otros detalles. Todo esto usando Yii contra postgreSQL como base de datos, en Canaima GNU/Linux (Basado en Debian).

Sigue leyendo

Tora con PostgreSQL y MySQL en Debian Squeeze

Tora es una excelente herramienta gráfica para interactuar con nuestras bases de datos, tirar consultas sql, analizar data y demás que nos da ventajas a nosotros los administradores y programadores que algunas otras herramientas gráficas no nos dan o no soportan. Muy buena para las personas que comienzan a trabajar con bases de datos en sistemas operativos libres como Debian. Para trabajar con Tora y lograr el soporte de PostgreSQL y hasta el de MySQL para los que aun la siguen usando en Debian y sus derivados es muy sencillo, Tora usa librerías QT por lo cual hay que instalar el Driver para cada caso para que logre hablar con PostgreSQL o MySQL,  actualmente Tora usa QT4 por ende hay que instalar libqt4-sql-psqllibqt4-sql-mysql según requieran, de lo contrario les dará este error: “not available connection provider” apenas abran el Tora recién instalado.

Sigue leyendo