viernes, 22 de abril de 2011

Libreria Jpgraph con Mysql en PHP

Desarrollando una aplicacion Web me tope con una librería capaz de graficar los puntos que le demos con diferentes formas de mostrar estadísticas.
la librería se llama jpgraph
la puedes obtener desde


bueno vamos al grano, la idea que quiero presentar es : obtener datos desde una BD Mysql

y poder realizar una estadística

las variables donde se guarda los puntos son :

$datay1,$datay2,$datay3, $datayN, etc ...

bueno para que me entiendan coloco el code de uno de los ejemplos que trae la librería:

SetScale("textlin");

$graph->SetMargin(200,200,200,200);

$theme_class=new VividTheme;




$graph->yaxis->HideZeroLabel();

$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');

$graph->xgrid->Show();

$graph->SetTheme($theme_class);

$graph->img->SetMargin(80,30,30,40);

$graph->title->Set('Mensajes BPServer');

$graph->yaxis->title->SetFont(FF_FONT2,FS_BOLD);

$graph->xaxis->title->Set('Hora');

$graph->yaxis->title->Set('Mensajes'); // nombre del eje Y plano cartesiano

$graph->SetBox(false);




$graph->yaxis->title->SetFont( FF_FONT1 , FS_BOLD );

$graph->xaxis->title->SetFont( FF_FONT1 , FS_BOLD );

$graph->img->SetAntiAliasing(true);




$graph->yaxis->HideZeroLabel(true);

$graph->yaxis->HideLine(false);

$graph->yaxis->HideTicks(false,false);




$graph->xgrid->Show();

$graph->xgrid->SetLineStyle("solid");

$graph->xaxis->SetTickLabels(array('06:00','','08:00','','10:00','','12:00','','14:00','','16:00','','18:00','','20:00','','22:00'));

$graph->xgrid->SetColor('#E3E3E3');




// Create the first line

$p1 = new LinePlot($datay1);

$graph->Add($p1);

$p1->SetColor("#9495ED");

$p1->SetLegend('READ');







// Create the second line

$p2 = new LinePlot($datay2);

$graph->Add($p2);

$p2->SetColor("#B25522");

$p2->SetLegend('SENT');




// Create the third line

$p3 = new LinePlot($datay3);

$graph->Add($p3);

$p3->SetColor("#FF1493");

$p3->SetLegend('T001');




// Create the fourth line

$p4 = new LinePlot($datay4);

$graph->Add($p4);

$p4->SetColor("#FF1441");

$p4->SetLegend('T002');



$graph->legend->SetFrameWeight(3);



// Output line

$graph->Stroke();
?>

un ejemplo sencillo y completo.

ahora veremos un ejemplo mas practico y de un nivel un poco mas elevado

la idea sera:
- Obtener la cantidad de ocurrencias para los registros de SENT,READ,TO01 yTO02 que esten entre los rangos 60000 y 220000 dentro de la base de datos, cabe destacar que 60000 y 220000 corresponde horas, es decir 60000 es igual a 6:00 como 220000 es a 22:00 Hrs (para mayor comodidad del lector).

cod3:

require('jpgraph/jpgraph.php');
require('jpgraph/jpgraph_line.php');

$matriz[1]="\"READ\"";
$matriz[2]="\"SENT\"";
$matriz[3]="\"TO01\"";
$matriz[4]="\"TO02\"";
$table=$_SESSION['table'];
$conexion=mysql_connect($server, $user, $pass) or
die("Error en conexion con motor".mysql_error());
mysql_select_db($bbdd,$conexion) or
die("Fallo al selecionar la BBDD");
//array para read sent TO01 y TO02
$i=0;

foreach($matriz as $key => $value){
$x=1;
for($i=60000;$i<=220000;$i=$i+10000){
$aux=$i+10000;
$x++;
$consulta=mysql_query("Select count(*) as total from ".$table." where hora >".$i." and hora < ".$aux." and status =".$value,$conexion); // sumatoria de las ocurrencias

if ($file = mysql_fetch_array($consulta)){
// asignando resultados
if($key==1)
$datay1[$x] = $file["total"];
if($key==2)
$datay2[$x] = $file["total"];
if($key==3)
$datay3[$x] = $file["total"];
if($key==4)
$datay4[$x] = $file["total"];
}
}
}
...setup graph ...

de esta manera obtenemos podemos obtener lo siguiente:



domingo, 9 de enero de 2011

start wars episodio IV en ascii

el episodio IV de start wars en ascii
solo abren una terminal yle dan

telnet towel.blinkenlights.nl

y para los niños de winbugs(windows)

abren inicio->ejecutar y escriben

cmd /k telnet towel.blinkenlights.nl

listo :B

SPAM desde ip validas

este es un pequeño script creado para poder enviar correos masivos desde cuentas se servidores smtp validos ; por ejemplo el siguiente es de gmail.com usando el comando sendEmail

debes tener un archivo llamado usuarios.txt con la estructura mail@gmail.com clave
donde pondras todas las cuentas reales de gmail que tienes .. es decir

tuusuario1@gmail.com clave1
tuusuario2@gmail.com clave2


la lista de correos se pasa como primer argumento del comando
tiene que ser un texto plano y nada mas (el script se encarga de sacar los correos de cualquer texto que le entreges creando un archivo lista.txt )

como prerequisito se debe tener el script sendEmail (ojo no es el smtp sendmail)
desde debian u deribados

sudo aptitude install sendemail

desde opensuse

zypper in sendemail

ejemplos de utilizacion del script

$ sh spam.sh /home/tuuser/listadecorreos /home/tuuser/mensaje.html

el mensaje puede ser un html, recalco que el mail nosera enviado a spam ya que estamos usando una cuenta gmail .

uno de los inconvenientes de este script es que como el server gmail permite enviar 500 mails cada 24 hrs . tendriamos que tener varias cuentas para enviar 5000. pero se viene spam.sh
version 2 donde aprovechamos un server publico para enviar correos ilimitados sin problemas con envios a spam :B
les dejo la descarga de script y el codigo

http://goo.gl/Umzkj



#!/bin/bash
# MailSpam V 0.1
# Autor: Francisco Cespedes
# Script mandar mails masivos con cuentas reales
# server usado gmail
# --argumentos --
# el primer argumento es la direccion de un archivo que contiene correos en un texto plano
# version beta .. configurar archivos usuarios. separados por cantraseña y password
# ejemplo usuario@gmail.com clave
#-------------------
SERVER="smtp.gmail.com:587"
MENSAJE=$(cat -s $2) # para incluir mensaje agregar -m a sedemail
ASUNTO="el asunto"
ADJUNTO="" # adjuntar con -a y direccion completa del archivo

# separa los correos que existan de cualquer texto plano.
grep -Eio '[a-z0-9._-]+@[a-z0-9.-]+[a-z]{2,4}' $1 |sort |uniq > lista.txt
# bucle que envia los correos separados por mail.
# -- deben ser 2 bucles uno para el correo del cual se van a enviar los correos
# -- y otro con los correos destinarios
CONTADOR=0
while read line
do
CORREO=$(echo $line | gawk '{print $1}')
PASSWORD=$(echo $line | gawk '{print $2}' )
USUARIO=$(echo $CORREO |gawk '{print $1}' FS="@" )

while read line2
do
let CONTADOR+=1
sendEmail -f $CORREO -t $line2 -s $SERVER -o tls=yes -xu $USUARIO -u $ASUNTO -xp $PASSWORD -m $MENSAJE
if [ $CONTADOR -eq 499 ]; then
break
fi
done < lista.txt
echo "siguiente usuario: " $CORREO
let CONTADOR=0
done < usuarios.txt
done < usuarios.txt

viernes, 17 de diciembre de 2010

Instalacion correcta de OpenShot en Opensuse 11.3

Intalacion openshot en opensuse

para no tener problemas con el editor de vídeos, ya que se queda pegado ,si es que les uscedio el caso , hay que agregar una librería .

primero descargamos el openshot
zypper in openshot

luego la librera.

zypper in frei0r-plugins

quedaríamos listos ;)

martes, 14 de diciembre de 2010

Instalacion de VirtualBox en Opensuse 11.3

Instalación de VirtualBox en openSuse 11.3.

para comenzar descargamos los paquetes correspondientes para la instalación:

zypper in kernel-source make gcc gcc-c++ pam-devel kernel-syms

luego descargamos el virtualbox dependiendo de la arquitectura :)

http://www.virtualbox.org/wiki/Linux_Downloads

y para finalizar la instalación en sí:

zypper ./VirtualBox-3.2-3.2.12_68302_openSUSE113-1.x86_64.rpm

* mi arquitectura es de 64 bits por ende el paquete 86_64 es el mio.

VirtualBox-3.2-3.2.12_68302_openSUSE113-1.x86_64.rpm esto varia segun tu arquitectura

* recuerda alojarte en el directorio donde descargaste virtualbox para ejecutar zypper .
:)
____________
NcW

martes, 16 de noviembre de 2010

Multiusuario phpmyadmin

la idea principal de esta ayuda es poder crear una petición de usuario y contraseña , o comúnmente llamado login en phpmyadmin.
lo primero es buscar el archivo config.inc.php que generalmente esta ubicado en la carpeta de phpmyadmin.
luego modificar las siguientes variables:

$cfg['Servers'][$i]['auth_type'] = 'config';

remplazas config por cookies ,si ya esta en cookies en vez de config no lo modifiques.
te quedara de esta forma:
$cfg['Servers'][$i]['auth_type'] = 'cookie';

luego deben crear una variable o modificar si es que ya existe de esta forma:
$cfg['blowfish_secret'] ='tu_frase';

esta frase es usada para la encriptacion, debes cambiarla por la que mas te acomode a ti.

por ultimo guardas las modificaciones y reinicias el servidor.


by NcW|@

miércoles, 13 de octubre de 2010

flash player slackware 13.1

me cambie de Debian Squezze a Slackware esperando algun reto nuevo o algo mas xd.
bueno y lo primero que realize fue la intalacion de flashplayer para el mozilla y los pasos son:

lo primero vamos a la pagina de adobe:http://labs.adobe.com/downloads/flashplayer10.html
y buscamos 64-bit Release Players y descargamos el que dice:Download plug-in for 64-bit Linux
luego:
#tar xvf flashplayer_square_p2_64bit_linux_092710.tar.gz

#cp libflashplayer.so /usr/lib64/firefox-3.6/plugins/

y reiniciamos el navegador :). ahora si tienes la version de 32 bits

te vas a "32-bit Release Players" y descargas "Download plug-in for 32-bit Linux "
descomprimes el archivo y te vas a :

#cp libflashplayer.so /usr/lib/firefox-3.6/plugins/

ahora solo reinicias :) y listo .

un detalle : para subir el volumen general de sonido basta con :
$kamix
y subes el volumen o lo bajas como quieras :)