Me lo contaron y lo olvidé, lo leí y lo entendí, lo hice y lo aprendí.





domingo, 13 de octubre de 2013

Configurar una conexión en MySQL WorkBench

MySQL WorkBech es una herramienta visual que sirve para el diseño, manutención y administración de bases de datos en MySQL (aunque se puede usar con otros manejadores) y, algo muy importante, es de código abierto.

Crear una conexión es el primer paso para cualquier trabajo que se pretenda realizar con esta herramienta: diseñar y crear una base de datos, hacer consultas, hacer respaldos, usar las herramientas administrativas y un largo etcétera.

Antes de iniciar la configuración de la conexión se debe tener corriendo el servicio de MySQL (a mí me gusta usar el XAMPP para los trabajos en mi computadora personal):


Ya estando en la interfaz del WorkBench, inicialmente tenemos 3 paneles (de izquierda a derecha):

  • Desarrollo SQL (realizar las consultas, transacciones y cambios en una base de datos existente)
  • Diseño de la base de datos
  • Administración de servidores


Para crear una conexión es en el panel de la izquierda (Desarrollo SQL / SQL Development), en la opción "new connection".


Se abrirá la siguiente ventana:


Los campos a rellenar son:

  • Connetion name: un nombre para identificar la conexión.
  • Connection method: el método (o protocolo) de conexión a la base de datos; por defecto es una el TCP/IP al menos que el servidor esté configurado para aceptar otro tipo de conexiones.
  • Hostname: el nombre del host o dirección IP, puede ser el nombre del dominio (www.servidorsql.net) o la dirección IP (135.23.2.1)
  • Port: puerto de conexión, por defecto se usa el 3306.
  • username: el usuario de la base de datos.
  • Password (Opcional): la contraseña a la base de datos, se puede omitir este dato sólo que cada vez que se quiera usar esa conexión se pedirá que se introduzca la contraseña.
  • Default Schema (Opcional): Base de datos por defecto, cada que se utilice esa conexión se empezará a usar una base de datos por defecto, si no se llena este campo entonces se usará la última base de datos usada (No hay problema, abierta la conexión se puede elegir la base de datos que se usará en ese momento).
Un ejemplo de cómo llenarla:


Se puede hacer clic en el botón "Test Connection" para comprobar si los parámetros introducidos son correctos (funcionará aunque no se haya introducido contraseña debido a que sólo comprueba la existencia de la Base de Datos y si permite conexiones con el método y el puerto indicado).


Se guarda la configuración (OK) y se visualizará la nueva conexión en el panel de "Desarrollo SQL" (Izquierda) de la ventana inicial.


Siendo ésto todo lo necesario para configurar la nueva conexión; inmediatamente podemos empezar a usarla haciendo doble clic sobre el nombre de la conexión, se abrirá una pestaña con la consola para hacer consulta a nuestra(s) base(s) de datos:


martes, 24 de septiembre de 2013

[Vídeo] Presentación de "Les Twins"

Les Twins es un Dúo del baile moderno "Raindance" compuesto por los gemelos idénticos Laurent y Larry Bourgeois. Sus espectáculos rebasan las simples coreografías dando pequeñas interpretaciones y actuaciones desde cómicas hasta actuar una pelea.

Les Twins tiene poco tiempo de darse a conocer fuera de su país (Francia), aún así se les ha visto ya en varios espectáculos y concursos internacionales; lo que le ha dado cabida en vídeos como el de "Play Hard" de David Guetta.
Les presento una de sus primeras actuaciones en el Tour "World Of Dance" en San Diego 2012:




Para ver su aparición en "Play Hard": http://youtu.be/5dbEhBKGOtY?t=2m53s

domingo, 18 de agosto de 2013

Unidad de CD - Portavasos

Debido al cada vez menor uso de las unidades lectoras de CD, se ha bromeado en que su uso ya sólo radica que ser usadas como porta-vasos. Sin embargo hay quienes se han tomado muy enserio esta cuestión, de allí el siguiente vídeo:

La vida de los programadores informáticos [Vídeo]

Aunque exagerado, un vídeo que tampoco se aleja de la realidad para la vida de un programador informático; casi parece que genéticamente estamos destinados para hacer cosas absurdas con tal de reducir el estrés, ser ignorados por la mayoría de los departamentos y hasta hacer un festejo por que (por fin) nuestro programa compiló.
Disfruten del cómico e ilustrativo vídeo:

Monólogo informático [Humor]

Les muestro un vídeo corto pero muy gracioso que tiene de tema principal: La informática. Sinceramente me causó mucha risa y a mi parecer no es necesario ser informático para entender los chistes que el comediante, Nacho García, nos cuenta en estos breves 2:26 minutos:

martes, 2 de abril de 2013

DEMO II: AQuilesVania

Considerando que ya está terminada la mecánica del juego y sólo hace falta aumentarle "historia", libero una segunda DEMO funcional del AQuilesVania.

Sinopsis:
AquilesVania es un juego del género de plataformas ambientado en el clásico de konami Castlevania, pero le quita seriedad a la historia y el drama para darle énfasis a un aspecto cómico haciendo uso de frases “típicas” y elementos de la electrónica.
Aquiles es un electrónico psicópata con creencia en los vampiros; para él, cualquier cosa viviente (y no viviente) es un vampiro: personas, fantasmas, perros, esqueletos... ¿candelabros?.Ésta es una de las alucinaciones nocturnas en la cual él se introduce al castillo de Drácula tratando de erradicar la maldad del planeta; cosa no tan sencilla considerando su obsesión con la comida que le da por ingerir cualquier cosa que se encuentre...

Capturas:







En la DEMO anterior, el personaje iniciaba con varias armas secundarias, ahora sólo inicia con dos: las cruces y la ohm (Búmeran) que son suficientes para pasar la DEMO, posteriormente daré la posibilidad de obtener los frascos de agua bendita (se usaban como bombas) y fuego para el lanzallamas.

Se puede poner el juego en "FullScreen" apretando 'F4' aunque la resolución disminuye.

Enlace de Descarga:
DEMO II
(Es necesario descomprimir el juego para jugarlo correctamente.)

viernes, 22 de marzo de 2013

Crear PDF con PHP [Dompdf]

Dompdf es una librería de PHP que permite tomar una página HTML y renderizarla (convertirla) a un PDF; aunque realmente no se crea un archivo PDF pero para el usuario de la página web se verá un auténtico archivo de éste tipo y podrá imprimirlo, guardarlo y tratarlo en su totalidad como uno.

Su uso es muy sencillo, pondré un sencillo ejemplo de su uso básico:

Tenemos una página HTML con éste código:


<html>
<head>
<title>Archivo pdf</title>
</head>
<body>
<center>
<h1>P&aacute;gina renderizada a PDF</h1>
</center>
</body>
</html>


La página se llama "pagina1.html". (Se ve así: http://unrinconenlaweb.webcindario.com/programas/pdf/pagina1.html)
Ahora, para renderizarla a un PDF es necesario crear una página php con el siguiente código:


<?php
require_once("dompdf/dompdf_config.inc.php"); //Aquí se incluye la librería php del Dompdf
$file = file_get_contents("pagina1.html"); //Se "extrae" la página que se convertirá a PDF

$dompdf = new DOMPDF(); //Se crea un objeto del tipo DOMPDF
    $dompdf->load_html($file); //Se le "carga" la página que convertiremos
    $dompdf->render(); //Se manda a llamar el método para renderizar
        
    header('Content-type: application/pdf'); //Ésta es simplemente la cabecera para que el navegador interprete todo como un PDF
    echo $dompdf->output(); //Y con ésto se manda a imprimir el contenido del pdf
?>


El resultado será éste: http://unrinconenlaweb.webcindario.com/programas/pdf/ejemplo1.php
Como se nota, hay que abrir la página .php en lugar de la .html

Ahora, en más de la mitad de las ocasiones se requerirá que la información a mostrar en el PDF varíe, como puede ser una fecha, el nombre del usuario o cualquier otro dato.
Para eso, hay que poner en la página .html palabras "claves" que después serán reemplazadas por los valores dinámicos a la hora de renderizar.
Es éste ejemplo voy a poner 3 valores numéricos aleatorios en el PDF.
Para empezar, aquí está la página html (Se llama "pagina2.html")

<html>
<head>
<title>Archivo pdf</title>
</head>
<body>
<center>
<h1>P&aacute;gina renderizada a PDF</h1>
</center>
<br />
<br />
<li><b>Dato 1:</b> {#dato1}</li>
<li><b>Dato 2:</b> {#dato2}</li>
<li><b>Dato 3:</b> {#dato3}</li>
</body>
</html>


Se ve así: http://unrinconenlaweb.webcindario.com/programas/pdf/pagina2.html
Como se puede notar, están escritas "{#dato1}" "{#dato2}" y "{#dato3}" que en éste caso servirán de "palabras clave" que reemplazaré por número generados aleatoriamente.
La página php contiene lo siguiente:


<?php
require_once("dompdf/dompdf_config.inc.php"); //Se incluye la librería Dompdf
$file = file_get_contents("pagina2.html"); //Se "extrae" la página a renderizar

$dato1=rand(1,100); //guardo en una variable un número random entre 1 y 100
$dato2=rand(101,200); //guardo en otra variable un número aleatorio entre 101 y 200
$dato3=rand(300,10000); // y guardo en una tercera variable un número aleatorio entre 300 y 10000
$dompdf = new DOMPDF(); //creo un objeto de la clase DOMPDF
                                                              
         /*En la siguiente función reemplazo las "palabras clave" por los valores aleatorios de las variables que creé arriba*/
$html = str_replace( //a la variable $html guardo lo que me arroja la función str_replace
        array(
"{#dato1}","{#dato2}","{#dato3}" //éstas son las palabras claves a reemplazar
        ), 
        array(
$dato1,$dato2,$dato3 //éstos son los datos que sustituirán las palabras claves
        ), 
        $file //y se reemplazará de la página cargada en ésta variable, lo que hice más arriba
    );
    $dompdf->load_html($html); //Se carga la página que convertiremos ya con los reemplazos
    $dompdf->render(); //mandamos a llamar el método para renderizar
        
    header('Content-type: application/pdf'); //ponemos la cabecera para PDF
    echo $dompdf->output(); //se imprime el documento PDF
?>


El resultado será así: http://unrinconenlaweb.webcindario.com/programas/pdf/ejemplo2.php
Cada vez que se recarga la página, se muestran 3 valores diferentes en los campos.

Para descargar los ejemplos y la librería, aquí está el enlace:
https://dl.dropbox.com/u/46960544/pdf.rar