Instalar Ruby on Rails en Windows

En estos días he estado leyendo sobre Ruby on Rails y sobre lo rápido que se pueden realizar aplicaciones.
Hoy vamos a aprende como instalar Ruby y su framework llamado Rails.
Primero vamos a introducirnos un poco en esta tecnología.

Ruby es un lenguaje de scripts (interpretado) orientado a objetos, fue inventado por Yukihiro Matsumoto y liberado en 1995, combina una sintaxis inspirada en Python y Perl. Entre las características del lenguaje se encuentran:

  • No se necesita declarar las variables.
  • La sintaxis es simple y consistente.
  • Gestión de memoria automática.
  • Todo es un objeto.

Más información sobre Ruby
Rails es un framework de aplicaciones web de código abierto desarrollado en Ruby, siguiendo el paradigma de la arquitectura MCV (Modelo vista controlador, un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos).
Más información sobre Rails

Ya introducidos en el tema ¡Comencemos con la instalación!

Lo primero que tenemos que hacer es bajar la última versión de Ruby, es un instalador muy simple, con dejar todas las opciones por defecto basta.

La instalación de Ruby es muy simple

La instalación de Ruby es muy simple

Una vez que tenemos instalado Ruby debemos incluir el framework Rails. Unos de los componentes que instala Ruby se llama RubyGems, este nos permite descargar e instalar componentes o ‘gemas‘ de internet con un simple comando.
Para descargar e instalar Rails lo que tenemos que hacer es ejecutar una ventana de símbolo de sistemas de Windows (Inicio>Ejecutar>cmd) y poner el siguiente comando:

gem install rails --include-dependencies

Esto puede tardar unos minutos, ya que debe bajar los paquetes de internet antes de instalarlos.

Instalacion de Rails

Instalacion de Rails

¡Gualá! Ya tenemos instalado Ruby on Rails.
También hay otra forma de instalar Ruby on Rails, mucho más simple y completa, ya que también nos instala Apache y MySQL. Se trata de Instant Rails, una aplicación basada en el famosos EasyPHP el cual con solo descomprimirlo y ejecutar un .exe nos monta todo, sin tener que instalar nada.

Instant Rails

Instant Rails

Cualquiera de las dos formas que hallas elegido para instalar, ya estamos listo para hacer una prueba y comprobar que todo está funcionando.
Por línea de comandos en la misma ventana de símbolo de sistemas hacemos lo siguiente.
Primero crearemos una carpeta, por ejemplo ‘sample’. Por consola (cd sample) entramos a esa carpeta y creamos ahí nuestra primera aplicación, esto es muy fácil solo tenemos que escribir lo siguiente:

rails [nombre de la aplicación]

Donde [nombre de la aplicación] podría ser ‘test

Lista de los directorios que se crean al ejecutar el comando

Lista de los directorios que se crean al ejecutar el comando

Este comando nos generará una par de directorios que ahora no vienen al caso, lo veremos más adelante en otro post. Por último debemos entrar a la carpeta con el nombre de nuestra aplicación que acabamos de crear (cd test) y escribir el siguiente comando:

ruby script/server
Este comando 'monta' nuestra aplicación en el server

Este comando 'monta' nuestra aplicación en el server

Si todo salió bien al poner en nuestro navegador la siguiente dirección: http://localhost:3000 deberíamos ver algo como esto:

Si logramos ver esto es poque Ruby on Rails esta funcionando

Si logramos ver esto es poque Ruby on Rails esta funcionando

Ya tenemos instalado y funcionando Ruby on Rails, mas adelante veremos más sobre este interesante framework.

Buen manejo de excepciones en Java

Es una mala práctica de los programadores (obviamente empiezo por mi) no escribir un código que maneje las excepciones correctamente, es por eso que quiero hacer mi humilde aporte que yo estoy implementando para obtener un código mas limpio y que depues otra persona lo pueda editar sin morir en el intento.

La estructura básica que deberia tener todo método (siempre y cuando no lanc e la excepcion con throw) es la siguiente:

public static void main(String[] args) {
		 try {
			// Código  que puede dar una excepción.
		    }
			catch (IOException  e) {
			// Capturamos la excepción del tipo Entrada/Salida,
                        // o la que nosotros creamos que es mas probable.
		    }
			catch (Exception e) {
			// Capturamos cualquier otra excepción.
			}
			finally {
		    // Código que se ejecuta con o sin excepción.
		    }
}

Hay que considerar que las excepciones que lanza Java son una clase que contiene sus metodos, esto nos ayuda mucho para identificar el error y tratarlo de la forma que queramos.

El siguiente ejemplo lanza un excepción (a proposito) del tiepo Entrada/Salida (IOException) al intentar leer un archivo de texto inexistente.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class ManejoDeExcepciones {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// Creamos un archivo inexistente.
		File f = new File("C:archivoInexistente.txt");
		BufferedReader entrada = null;
		try {
			// Intentamos leerlo.
			entrada = new BufferedReader(new FileReader(f));

		} catch (IOException e) {
			// Capturamos la excepción que sabemos que puede ocurrir.
			System.err.println("Ouch! IOException: " + e.toString());
		} catch (Exception e) {
			// Capturamos otra excepción, una nunca sabe :)
			System.err.println("Ouch! Error Desconocido: " + e.getMessage());
		}

		finally {
			System.out.println("Fin de la aplicación!");
		}

	}

}

Esto sirve mucho cuando tenemos que hacer consultas a base de datos, la excepción que lanza cuando tenemos problemas es la SQLException, que contiene un metodo getErrorCode() que nos devuelve un int con  el código de error, dependiendo del motor de base de datos, podemos saber de que se trata el error y devolver un mensaje entendible para el usuario (por ejemplo cuando una tabla no existe o se quiere eliminar una  clave foranea). Por ejemplo,  aquí puedes ver todos los código de error del motor de base de datos Oracle.

Pentaho Business Intelligence



En estos días estoy renegando con un proyecto que en una de sus etapas requiere procesos ETL. Me fue encomendada la grata tarea de decidir con que software debíamos hacer esto, lo primero que se me vino a la mente fue Oracle Warehouse Builder, que nunca había usado pero si escuchado y como teníamos que integrar los datos a una BD Oracle me parecía la mejor solución, antes de hacer nada con esto me dijeron que pruebe con LiveCycle (Software del cual seguramente voy a escribir más adelante) Pero después de renegar mucho y lograr poco se decidió no utilizar esta herramienta. La aparente solución (digo aparente porque todavía no se implemento) vino de la mano de uno de los productos de Pentaho, Kettle.

Continuar leyendo

Manejar archivos CSV con Java

Para el que no sabe los archivos CSV son simples archivos de texto plano pero que respetan una estructura de tabla separando los valores con coma, de ahí el nombre (comma separated values). Estos archivos se usan mucho para exportar tablas como por ejemplo tablas DBF o archivos de Excel.
El temas es cuando tenemos que procesarlos con Java para hacer lo que queramos con los datos, si estás en el tema de Java seguramente pensás solucionar este problema tomando el archivo como un String y hacer un Split de la coma y guala, no está mal pero se complica cuando el .csv tiene un peso de 80 Mb :sorpresa: . Investigando por internet me encontré con un jar llamada JavaCSV la cual puedes bajar de aquí.
Luego de bajarlo su uso es muy simple, tenemos dos métodos fundamentales CsvReader para leer y CsvWriter para escribir archivos csv, vamos a ver un ejemplo de los dos:

Continuar leyendo