viernes, 3 de abril de 2015

Instalación de Java 8 en CentOS 6.5

A continuación les mostrare unos pasos sencillos para instalar Java 8 en CentOS 6.5.  Esta guía a su vez será el inicio de una serie de tutoriales que estaré presentando para la manipulación de BigData usando la base de datos HBase.

Esta instalación fue probada en un equipo con las siguientes características:
-Memoria RAM de 4GB
-Disco Duro de 160GB
-Sistema Operativo CentOS 6.5 de 64 Bits

Proceso de instalación:

1.- En la carpeta Documentos hay que crear una carpeta con el nombre Java.



2.- Descargar la última versión de Java disponible desde la página de Oracle accediendo a la siguiente liga: 

Aceptar términos y condiciones y dar clic en  la versión de Java que se desea descargar por ejemplo: 
jdk-8u40-linux-x64.tar.gz

Nota: en mi caso he descargado una versión anterior jdk-8u31-linux-x64.tar.gz pero el proceso de instalación es similar para todas las versiones.



3.- Al seleccionar la versión a descargar, aparecerá un cuadro de dialogo emergente, seleccionar la opción Guardar archivo y dar clic en Aceptar; el archivo descargado es enviado por default a la carpeta Descargas.


4.- Dirigirse a la carpeta Descargas  y copiar el archivo tar.gz recientemente descargado.



5.- Dirigirse a la carpeta Java creada previamente en la carpeta Documentos y pegar el archivo tar.gz copiado.


  
6.- Dar clic con el botón secundario del mouse en el archivo tar.gz recientemente pegado, y seleccionar la opción Extraer aquí; con esto se descomprimirá el archivo en la carpeta jdk1.8.0_31.



7.- Abrir una nueva terminal; ir a Aplicaciones>Herramientas del sistema y seleccionar la opción Terminal, con esto se nos abrirá una nueva terminal de línea de comandos.


  
8.- Acceder a la cuenta de administrador root; para ello teclear en la terminal #su root, y oprimir la tecla Entrar.



9.- La terminal nos pedirá proporcionar la clave de acceso de la cuenta root, tecleamos la clave y oprimir la tecla Entrar; con esto hemos accedido a la cuenta de administrador root.



10.- Cambiar de directorio e ir a la carpeta Java creada anteriormente en la carpeta Documentos con el siguiente comando: 
#cd /home/hilario/Documentos/java 

Donde hilario es el nombre de usuario de la cuenta.



11.- Copiar la carpeta jdk1.8.0_31 al directorio /opt con el siguiente comando:
#cp -r  jdk1.8.0_31 /opt



12.- Ir al directorio /opt/jdk1.8.0_31 con el siguiente comando: 
#cd /opt/jdk1.8.0_31



13.- Instalar Java usando alternatives para evitar desinstalar versiones anteriormente instaladas de Java, usando el siguiente comando:
#alternatives –install /usr/bin/java java /opt/jdk1.8.0_31/bin/java 2



14.- Configurar las alternativas de java y seleccionar la versión de java recién instalada con el número correspondiente. En mi caso se trata de la versión número:
4 /opt/jdk1.8.0_31/bin/java



15.- Instalar las herramientas jar y javac usando los siguientes comandos:
#alternatives –install /usr/bin/jar jar /opt/jdk1.8.0_31/bin/jar 2
#alternatives –install /usr/bin/javac javac /opt/jdk1.8.0_31/bin/javac 2
#alternatives –set jar /opt/jdk1.8.0_31/bin/jar
#alternatives –set javac /opt/jdk1.8.0_31/bin/javac



16.- Ver la versión actual de Java instalada y verificar que sea la que se ha instalado recientemente.
Usando el comando: 
#java –version



17.- Por ultimo solo queda definir las variables de entorno globales de java JAVA_HOME y JRE_HOME usando los siguientes comandos:
#export JAVA_HOME=/opt/jdk1.8.0_31
#export JRE_HOME=/opt/jdk1.8.0_31/jre
#export PATH=$PATH:/opt/jdk1.8.0_31/bin:/opt/jdk1.8.0_31/jre/bin




Con estos simples pasos se contará con la última versión de Java instalada en Centos6.5.

sábado, 7 de junio de 2014

Evitar caracteres raros al consultar en Oracle y MySQL desde PHP

En esta ocacion les ofresco una solucion a los molestos caracteres raros que aparecen de repente al realizar una consulta desde PHP a MySQL ó Oracle, Hace poco me sucedio algo similar; al consultar campos que contenian caracteres latinos como ñ, á, é, etc. El resultado de esas consultas me reemplazaba esos caracteres con un "?". Al principio crei que se trataba de la codificacion que se define en la cabecera del documento HTML . Pero despues de varios intentos simplemente no conseguia solucionarlo; hasta que encontre en un post que al realizar una conexion con algun cliente de base de datos a un servidor de base de datos, es necesario establecer la codificacion de caracteres con las que este recibiria la informacion.

Asi que buscando en Google encontre la solucion tanto para MySQL como para Oracle.

Para MySQL la solucion es colocar el metodo:
mysqli_set_charset( mysqli $link , string $charset)
Justo despues de realizar la conexion.

Ejemplo de conexion a MySQL con codificacion de caracteres:

/*
Conexion a una base de datos con el cliente de mysql
usando la codificacion de caracteres UTF-8
para evitar la aparicion de caracteres raros al
realizar una consulta.
*/
//Variables de conexion
$host="ip";
$user="usuario";
$password="password";

$conexion = mysqli_connect($host, $user, $password);

//Se verifica si hubo algun error al conectarse
if (mysqli_connect_errno()) {
    echo("Error al conectarse: \n".mysqli_connect_error());
    exit();
}

//Se establece la codificacion de caracteres UTF-8
if (!mysqli_set_charset($conexion, "utf8")) {
    echo("Error al estableces la codificacion utf8: \n".mysqli_error($conexion));
} else {
    echo("Se ha establecido el conjunto de caracteres: \n".mysqli_character_set_name($conexion));
}

mysqli_close($conexion);
?>


Para Oracle la solucion es establecer la codificacion de caracteres al realizar la conexion con el metodo:
oci_connect( string $username , string $password [, string $connection_string [,string $character_set [, int $session_mode ]]] )

Ejemplo de conexion a Oracle con codificacion de caracteres:
/*
Conexion a una base de datos con el cliente de oracle
usando la codificacion de caracteres de Windows
para evitar la aparicion de caracteres raros al
realizar una consulta.
*/
//Variables de conexion
$host="ip";
$user="usuario";
$password="password";
$conexion = oci_connect($user, $password=, $host.'/XE', 'WE8MSWIN1252');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['mensage'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM empleados');
oci_execute($stid);

while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    foreach ($row as $item) {
        echo ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "
";
    }
}

?>

sábado, 6 de abril de 2013

Juego de Memoria en Python

Les comparto otro clásico juego hecho en Python "El juego de memoria"; Originalmente consiste en encontrar parejas de cartas, pero en esta versión consistirá en encontrar parejas de números;  el objetivo es encontrar todas las parejas de números con el menor numero de intentos posibles, para eso habrá un contador que llevara el conteo de los intentos, al hacer clic en una carta, esta se volteara para mostrar el numero que esconde posteriormente se esperará a que el jugador haga clic en otra carta; si la segunda carta volteada es idéntica a la primera estas quedaran volteadas, de lo contrario las dos cartas se voltearan nuevamente para ocultar su contenido. Este programa también lo hice en el curso "An Introduction to Interactive Programming in Python" impartido por RICE UNIVERSITY en la página de Coursera.

Podrán descargar el programa en la siguiente liga: Memory
Para poder jugar con el programa, copien el código en este interprete de Python: http://www.codeskulptor.org/ 
Si les interesa ir directamente a la aplicación  simplemente accedan a la siguiente liga sin necesidad de copiar y pegar el código: memory_to_code_skulptor




Espero que este juego sea de su agrado y se diviertan con él.

Nota: el interprete no es soportado por Internet Explorer

domingo, 11 de noviembre de 2012

Juego de Ping-Pong en Python

Les comparto el clásico juego de Ping-Pong hecho en Python, Este juego lo hice en un curso de Coursera llamado "An Introduction to Interactive Programming in Python" el cual es impartido por RICE UNIVERSITY. Este juego contiene las nociones básicas del juego de Ping-Pong; contiene la dificultad de incrementar la velocidad de la pelota cada vez que rebote en una de las paletas.



Podrán descargar el programa en la siguiente liga: ping_pong
Para poder jugar con el programa, copien el código en este interprete de Python: http://www.codeskulptor.org/ 
Si les interesa ir directamente a la aplicación  simplemente accedan a la siguiente liga sin necesidad de copiar y pegar el código: ping_pong_to_code_skulptor




  • Para mover la paleta izquierda oprimir: w(Arriba) y s(Abajo)
  • Para mover la paleta derecha oprimir: Flecha Arriba(Arriba) y Flecha Abajo(Abajo)
  • Oprimir el boton Restart para reiniciar el juego.






Bueno espero que les guste el juego y que se diviertan con él. Posteriormente subiré las mejoras del juego.

Nota: el interprete no es soportado por Internet Explorer

#----MEJORAS---
#Se le agregaron los siguientes sonidos al juego:
#--Sonido de colisión en la parte arriba y abajo del tablero
#--Sonido de colisión con las paletas
#--Sonido de balón fuera de la zona de juego

miércoles, 28 de marzo de 2012

Mover Leds con el Puerto Serie y Paralelo en Java

Este Programa es similar al programa de la publicación anterior Mover Leds con el Puerto Paralelo en Java, Utiliza el mismo circuito para el puerto paralelo y de igual manera sirve para mover la posición de un led activo con las teclas direccionales del teclado.

La diferencia con el anterior programa se encuentra en que este utiliza también el Puerto Serie. En este caso se envía una señal por el puerto serie y esa misma señal es recibida por el puerto serie para posteriormente pasarla al puerto paralelo.

Aparte del circuito anterior se debe utilizar también el siguiente circuito para el puerto serie:











Se enviara una señal al puerto serie a travéz del pin 3 y esa misma señal se recibirá a travéz del pin 2.

Les dejo el link del programa: Mover Leds con el Puerto Serie y Paralelo en Java

martes, 21 de febrero de 2012

Mover Leds con el Puerto Paralelo en Java

El siguiente programa trata sobre la manipulación del puerto paralelo desde java, usando la librería RXTXcomm.jar; en resumen lo que hace es mover la posición de un led activo usando las teclas direccionales del teclado.
Para poder probarlo necesitaran:
-1 cable del puerto paralelo
-1 tablilla
-8 resistencias de 330 homs
-8 leds

y crear el siguiente circuito:
Los pines 2 al 9 son pines de datos y es donde se conectaran los leds.

Una vez hecho el circuito, lo conectan al puerto paralelo y ejecutan el programa(Nota: es importante que conecten los pines 10,11 y 12 a tierra o al pin 25 ya que de lo contrario el programa se ciclara).

Una vez ejecutado el programa verán la siguiente ventana:

posteriormente darle clic en abrir puerto:

Seleccionar Activar:

Y al mover las teclas direccionales izquierda y derecha podrán observar como el led prendido ira cambiando de posición:

Por ultimo podrán cerrar el puerto:

El programa lo podrán descargar desde aquí: MoverLeds


domingo, 12 de febrero de 2012

Convertir Numero a Letra

Bueno esta vez les traigo un programa hecho en java que convierte una cantidad a su respectivo nombre en letra; el cual lo pueden descargar desde la siguiente liga: ImporteLetra.java

domingo, 8 de mayo de 2011

COPIAR UNA BASE DE DATOS DE FORMA REMOTA CON MYSQL

En la publicación anterior presenté como configurar MySQL para que pueda ser accedida de forma remota y mostré los comandos necesarios para acceder remotamente a una base de datos. Bueno en esta publicación mostraré como copiar una base de datos de forma remota, utilizando la misma configuración y base de datos de la publicación anterior.

Para poder copiar una base de datos, hay tres formas principales de hacerlo:
  1. Copiar una BD desde nuestra maquina local a una maquina remota.
  2. Copiar una BD de una maquina remota a nuestra maquina local.
  3. Migrar la BD a un fichero, transportarla manualmente a la otra máquina y cargarla en la otra máquina.
En este caso solo mostrare la opción numero 2, copiar una BD de una maquina remota a nuestra maquina local.

Para conseguir esto se tienen que seguir los siguientes pasos:

Nota: debido a que todas las configuraciones y las bases de datos ya se han realizado en la publicación anterior, en este me iré directamente a la línea de comandos para que no sea tan largo, al igual que omitiré algunas instrucciones que ya se han mencionado. Sugiero que se tomen en cuenta los comandos subrayados en rojo.

1.-Primero hay que abrir el símbolo de sistema de la maquina 1(maquina local) y acceder al manejador MySQL de la maquina 2(maquina remota).


2.-Una vez dentro, escoger la base de datos que se desea copiar, en este caso se escogió la base de datos “basex” que ya se había creado anteriormente.


3.-Abrir la consola de MySQL en la maquina 1 y crear una base de datos con el mismo nombre que la base de datos que se escogió en la maquina 2.


Nota: el nombre de la BD puede ser diferente.

4.-Regresarse al símbolo de sistema y salir de la entrada remota anterior que se había hecho en la maquina 2, usando el comando \q.


5.-Para poder copiar la BD de forma remota se utiliza el comando “mysqldump” con la siguiente estructura:  mysqldump –h ‘maquina2’ --opt --compress nombre_BD|mysql nombreBD. Para ello se introduce la siguiente instrucción.


Nótese que en la parte de –h que es el host o la dirección IP también se introduce el nombre del usuario y –p para la contraseña, esto de la misma forma se hace también después de la barra. En la primera parte se da la dirección IP, usuario, contraseña de la maquina 2 y en la segunda parte, después de la barra se introduce la dirección IP, usuario, contraseña de la maquina 1. Al teclear la tecla entrar nos pedirá dos contraseñas, primero se introduce la contraseña de la maquina 2, se teclea entrar y después se introduce la contraseña de la maquina 1. Posteriormente nos aparecerá un error de lectura, pero no se preocupen ya que esto no afecta, si no aparece nada más que el error de lectura entonces la base de datos se ha copiado a la maquina 1.

6.-Regresarse a la consola de MySQL y visualizar las bases de datos existentes, tiene que aparecer la base de datos “basex” anteriormente creada.


7.-Para comprobar si la BD fue copiada, habrá que visualizar los datos de la BD “basex”


Si la consulta resulta igual a la realizada en el paso 2, entonces la BD fue copiada exitosamente.

Bueno esto es todo por hoy, espero que no hayan tenido problemas al realizar la copia de la BD, si tienen dudas pueden comentarlas y con gusto los atenderé.

martes, 22 de marzo de 2011

CONEXIÓN REMOTA A UNA BASE DE DATOS CON MYSQL

Hola nuevamente, esta ocasión les traigo un tutorial o mejor dicho un minitutorial acerca de cómo conectarse a una base de datos de forma remota utilizando MySQL. ¿Qué significa esto? Pues esto significa que ustedes aprenderán a conectarse a una base de datos que se encuentre en una maquina diferente al que están utilizando por medio de alguna red; para posteriormente poder manipular dicha base de datos, haciendo consultas, creando tablas, insertando datos, etc. En el diagrama 1 se muestra una representación de nuestro objetivo.



Diagrama 1

Los requisitos para realizar esta práctica son:


  •         2 o más computadoras. (En este ejemplo solo utilicé 2 computadoras, pero si quieren pueden usar más de una ya que serán los mismos pasos para todas ellas).
  •            Establecer una conexión a través de una red con las computadoras disponibles.
  •           Instalar MySQL (En mi caso instale el MySQL Server 6.0, pero pueden utilizar cualquier versión superior al 5.0 o incluso pueden utilizar los servidores de XAMP o WAMP. La instalación se tiene que hacer en las dos maquinas).



PASO 1

El primer paso es asegurarse de que todas las computadoras conectadas, se encuentran conectadas correctamente. Para esto abrimos el símbolo de sistema y utilizaremos el comando “ping”, el cual nos servirá para verificar si las maquinas están respondiendo de forma correcta a las peticiones de la red; para ello habrá que teclean lo siguiente >>ping 192.168.1.1, tal y como se muestra en la figura 1.



Figura 1

La IP que utiliza en este ejemplo tendrá que ser reemplazada por la ip de la maquina a la que se quiere conectar. Una vez hecho lo anterior tendrá que mostrarles el siguiente resultado:



Figura 2

Si este es el caso entonces la maquina remota está respondiendo correctamente y podrá seguir con el siguiente paso. Pero si apareció un resultado parecido al de la figura 3 entonces tendrán que configurar su equipo de modo que consigan conectarse de forma correcta(Si utilizan el sistema operativo Windows 7, les informo que para la conexión de redes es un poco más laborioso y probablemente no consigan una conexión a la primera; además en ocasiones no se puede conseguir una conexión con el equipo utilizando este SO, pero si es posible conectarse a MYSQL, así que si ven que el problema persiste aun después de varios intentos entonces sáltense al paso 2 ; si llegando al paso 4 sigue sin funcionar la conexión entonces definitivamente el error se deberá a la configuración de la red o incluso a los medios físicos que se estén utilizando).



Figura 3



PASO 2
El paso 2 es configurar MySQL para que el usuario root se pueda conectar remotamente. Para ello se tienen que realizar los siguientes pasos:


  •         Abrir el configurador de MySQL “MySQL Server Instance Config Wizard”


Figura 4


  • Posteriormente tendrán que seguir la siguiente secuencia de imágenes, tomando en cuenta los componentes encerrados con color rojo.


Figura 5


Figura 6


Figura 7



Figura 8


Figura 9


Figura 10


Figura 11

En la figura 12 se tiene que asegurar que en el cuadro de texto de “Port Number” se encuentre el puerto 3306 ya que este es el puerto por default que usa MySQL y también que la casilla de activación de “add firewall exception for this port ” se encuentre activa.



Figura 12


Figura 13

En la figura 14 se tiene que asegurar que la casilla “include bin directory in Windows path” se encuentre activa ya que este incluirá la consola de MySQL a las variables de entorno de Windows.



Figura 14

Con respecto a la figura 15, si esta es la primera vez que se hace esta configuración entonces solo se tienen que llenar los campos de “new root password(nueva contraseña de root)” y “confirm(confirmar contraseña)”, pero si ya se había hecho una configuración anterior entonces también se tendrá que llenar el campo de “current root password(contraseña actual)”; y posteriormente se tiene que activar la casilla “enable root Access from remote machines”, esto nos permitirá acceder con la cuenta root a las maquinas remotas.



Figura 15


Figura 16

Si todas las configuraciones fueron correctas entonces obtendremos algo similar a la siguiente figura:



Figura 17

Nota: esta configuración se tiene que realizar en las dos maquinas y de la misma manera.



PASO 3

El paso 3 consiste en crear una base de datos en la maquina remota (la maquina a la que queremos acceder). Para esto para esto, en la maquina 2 abrimos la consola de MySQL.



Figura 18

Una vez abierto la consola va a pedirles la una contraseña, tal y como se muestra en la siguiente figura:


Figura 19

Para ello teclean la contraseña que pusieron en la configuración anterior y teclean la tecla entrar para poder acceder a ella.



Figura 20

Después de haber accedido a MySQL se crea la base de datos con la siguiente instrucción:
create database basex;” tal y como se muestra en la siguiente figura:



Figura 21

Posteriormente usan esa base de datos con la siguiente instrucción:
“Use basex”



Figura 22

Una vez seleccionada la base de datos se proseguirá a crear las tablas, para ello se creará la tabla “tablax” con los atributos “id y nombre” utilizando la siguiente instrucción:

"Create table tablax(id int(2),nombre varchar(30));"



Figura 23

Después de crear la tabla, el siguiente paso es llenar la tabla. Para ello se utilizaran los siguientes datos:

Insert into tablax values(1,’Hilario’);
Insert into tablax values(1,’Pedro’);
Insert into tablax values(1,’Maria’);
Insert into tablax values(1,’Juan’);



Figura 24

Si se quieren asegurar de la inserción entonces tendrán que seleccionar los datos de la tabla con lo siguiente:

"Select * from tablax;"



Figura 25


Si ha llegado correctamente hasta este punto entonces podrá proseguir con el último paso que es el paso 4.




PASO 4
En este paso se accederá a la base de datos de la maquina 2 a través de MySQL desde la Maquina 1. Y para conseguir esto se tendrá que realizar lo siguiente:


  •          Abrir el símbolo de sistema en la maquina 1.


Figura 26

·         La siguiente instrucción nos servirá para conectarnos a la base de datos de la maquina 2:
Mysql –h 192.168.1.1 –u root –p” (donde la IP 192.168.1.1 tendrá que ser reemplazado por la ip de la maquina 2 y el usuario root se queda como tal)  después de escribir esto en el símbolo de sistema tecleamos la tecla entrar, posteriormente nos pedirá la contraseña y escribimos la contraseña que pusieron en la configuración.


Figura 27

Si todo salió bien entonces les tiene que dar el mismo resultado que la figura anterior. Una vez que se encuentren aquí ustedes podrán manipular las bases de datos que se encuentren en la maquina 2. Para ello seleccionamos la base que creamos anteriormente:
“Use basex”
Y
Hacemos una consulta de los datos de la tabla tablax:
Select * from tablax”



Figura 28

Para salir de la conexión simplemente teclean:
\q



Figura 29

Bueno espero que les haya gustado este minitutorial, trate de hacerlo lo más entendible posible, ojala y no se hayan confundido ok saludosss.