17:56

Instalar Liferay 5.2.3 en Ubuntu 9.10

Que es Liferay?

Es un Sistema Gestor de Contenidos (CMS) Open Source escrito en Java. Un Sistema Gestor de Contenidos es una aplicación que nos permite crear o usarla como base para la creación de distintas aplicaciones web que provean una estructura que nos permita crear y mantener contenidos (textos, imágenes, videos, etc) en la web


Quien usa Liferay?


Algunos ejemplo para que vean que se puede hacer con Liferay:

http://www.benetton.com
http://www.hansemerkur.de
http://www.lufthansa-flight-training.com
https://www.tunemoney.com
http://www.dreamdallas.org
https://www.justkeepmoving.com
http://www.cox.smu.edu
http://www.dankook.ac.kr
http://www.speakenergy.com
http://www.digital-h.cat
http://www.educa.madrid.org


Que necesito?

Java 1.5 o superior

http://java.com/es/download/

Liferay
http://www.liferay.com/downloads/liferay-portal/overview


Como preparo todo?

Bajar y desempaquetar Liferay 5.2.3 (No hace falta explicación para esto)


Cambiar OpenJDK por Sun-Java en Ubuntu

Ubuntu 9.10 trae configurado OpenJDK por defecto hay que cambiar esta configuracion para que el Sistema Operativo utilice el JDK de Sun, es muy probable que funcione igual con OpenJDK, pero el rendimiento no debe ser el mismo, especialmente en entornos de producción.

Para cambiarlo hay que instalar el JDK de Sun:

# sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

Esto instalará java en tu maquina. Aun nos falta configurar al SO para que utilice dicho JRE.

#sudo update-alterniatives --config java

Ingresan el numero que corresponde con java-6-sun presionan ENTER y luego para verificar ejecutan:


#java -version

Les mostrará algo como:

java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Client VM (build 14.1-b02, mixed mode, sharing)

Configurar JAVA_HOME:
#export JAVA_HOME=/usr/lib/jvm/java-6-sun

Configurar JRE_HOME
#export JRE_HOME=/usr/lib/jvm/java-6-sun

Iniciar Liferay:
Nos movemos hasta la carpeta "bin" del Tomcat que esta dentro de Liferay
# cd liferay/tomcat/bin

Cambiamos los permisos de los ejecutables
#chmod +x *.sh

Iniciamos Tomcat:
#./startup.sh


Esperamos... Esperamos... Esperamos... y después de un ratito se abrirá el navegador con la pantalla de inicio de Liferay.


Para Frenar Tomcat:
#./shutdown.sh

Es muy sencillo...




9:11

The Grid Computing


Que es The Grid ?

"The Grid" es una nueva tecnología para interconectar unidades de computo. Los orígenes de la actual Internet que todos conocemos se remontan a un proyecto militar del departamento de defensa de EEUU, que luego evolucionó en la tan conocida ARPAnet, una red cuya idea principal era conseguir que la información llegara a su destino aunque parte de la red estuviera destruida.

En "The Grid" podríamos observar el comienzo de una nueva forma futura de interconectarnos, como lo fue ARPAnet en Internet.


Quien creo The Grid ?

Fue creada por el CERN (Conseil Européen pour la Recherche Nucléaire) para el proyecto LHC (Large Hadron Collider), el gran colisionador de hadrones que tanta popularidad tuvo en un momento y que actualmente tiene serios problemas de funcionamiento.

Con la tecnología del momento, no se podía dar solución al poder de procesamiento y almacenamiento que se necesitaban para analizar los datos emitidos por el colisionador. Era necesario utilizar distintas unidades de computo que estan distribuidas en distintos lugares físicos, la tecnología actual de interconectividad no servía para cumplir con las necesidades de conexión de dichas unidades de computo. En respuesta a ese requerimiento diseñaron "The Grid"


Para que sirve The Grid ?

Básicamente provee una forma de solucionar los problemas de almacenamiento y procesamiento de enormes cantidades de datos (mas de 10 Petabytes).


Como funciona The Grid ?

La arquitectura de "The Grid" esta basada en capas:

4) The Aplication Layer (Aplicaciones)
3) The Middleware Layer (Alguien sabe como traducirlo???)
2) The Resource Layer (Recursos)
1) The network Layer (Red)

Actualmente en nuestras unidades de procesamiento, utilizamos lo que se llama Sistema Operativo (Win32/64, GNU/Linux, Solaris, FreeBsd, etc). El Middleware es como el Sistema Operativo de "The Grid", el cual administra el acceso de los usuarios a los recursos (almacenamiento, procesamiento, seguridad, etc).

Es un cambio de paradigma en lo referente a computacion distribuida. NO es el concepto, ni se puede comparar con lo que actualmente conocemos como "Terminal Server". Tampoco es "Cluster de servidores". Es una idea nueva "Grid Computing".


Internet Actual



The Grid



Cuando funcionara The Grid ?

"The Grid" esta lista para funcionar cuando arranquen el LHC, pues es la encargada de facilitar el acceso a la informacion por parte de los cientificos.


Enlaces
http://www.gridpp.ac.uk/explain.html
http://www.gridpp.ac.uk/demos/flashcafe1.html
http://www.gridcafe.org/

18:13

Como Usar Struts 2 en Netbeans 6.7 ?



Este mini tutorial es algo sencillo que nos va a servir para luego probar cosas como Internacionalización, Validaciones, Interceptores y demás cosas de Struts 2.


¿Qué Necesito para utilizar Struts 2 en Netbeans 6.7?

- Netbeans 6.7 Versión Completa (“All”)
: bajar
- SDK JEE : bajar
- Struts 2 : bajar
- Apache Tomcat 6.x: ( Incluido en la versión completa de Netbeans 6.7)


¿Como utilizo Struts 2 en Netbeans 6.7?

  1. Crear un nuevo proyecto web en Netbeans 6.7
  2. Incluir las librerías de Struts 2
  3. Hola Mundo en Struts 2.

1) Crear un nuevo proyecto web en
Netbeans 6.7

En Netbeans 6.7 seleccionar File -> New Proyect

Luego en la pantalla New Proyect, seleccionar un proyecto Web Application y presionar el botón Next
Cambiar el nombre de proyecto por que ustedes deseen, en este caso miProyectoStruts2 y presionar el botón Next
En la siguiente pantalla configurar el servidor de paginas web donde va a residir la aplicación, en este caso vamos a usar Tomcat en cualquier versión posterior a la 6, el resto lo dejamos como esta y presionamos Next.
Esta pantalla nos permite configurar que Framework vamos a utilizar en nuestra aplicación web, pero en este caso no lo vamos a incluir desde acá. Aquí no hay que seleccionar nada, solamente presionar en Finish.


2) Incluir las librerías de Struts 2

En nuestro proyecto, seleccionar la carpeta "Libraries" y presionar "add Jar/Folder...."

Desempaquetar el archivo "struts-2.*-all.zip". Luego en la ventana "Add Jar/Folder" movernos hasta la carpeta donde desempaquetamos el archivo "struts-2.*-all.zip", luego ingresar en la carpeta "lib" y seleccionar los siguientes archivos:
  1. commons-fileupload-*.jar
  2. commons-logging-*.jar
  3. freemarker-*.jar
  4. ognl-*.jar
  5. struts2-core-*.jar
  6. xwork-*.jar
Luego presionar el botón "Abrir".


Aquí les dejo una vista de como queda nuestro proyecto con la librería de Struts 2 incluida



3) Hola Mundo en Struts 2

Una vez que tenemos incluidas las librerías de Struts 2, vamos a modificar la pagina *.jsp para que podamos utilizar los tags de Struts 2. Para ello incluimos la siguiente etiqueta en el inicio del archivo:
<%@taglib prefix="s" uri="/struts-tags" %>

Een esta etiqueta se puede cambiar el prefix por cualquier valor pero generalmente se utiliza la s, que simboliza a Struts.

Siempre hay que recordar que utilizar las cosas "A mi modo", es poco productivo para cualquier proyecto, hay que tratar de adaptarse a las "Code Conventions" establecidas.


Luego modificamos el cuerpo del documento html para incluir la siguiente etiqueta de Struts 2:



Finalmente modificaremos el archivo web.xml para incluirle un filtro que hará que nuestra aplicación utilice Struts 2 cuando reciba una petición:



Solamente nos queda ejecutar la aplicación y ver el resultado. Es una aplicación extremadamente simple pero nos siver para poder explicar cosas mas complejas como Ajax en Strut 2, Inteceptores, Validaciónes, Internacionalización, etc.






12:06

Como reducir el tamaño de mis fotos de forma rápida


Muchas personas me han comentado sobre la dificultad que tienen para reducir el tamaño de las fotografías tomadas con sus cámaras digitales. La reducción del tamaño de las fotos las hace mas fáciles de compartir por la red sin perder calidad.


Acá les dejo una aplicación que es muy útil y un breve tutorial para que sepan usarla.


La aplicación se llama VSO Image Resizer


Como usar el programa?


1) Bajamos el programa del siguiente enlace: Bajar


2) Instalamos el programa con las preferencias que vienen predefinidas


3) Seleccionamos la foto que queremos reducir de tamaño, presionamos el botón derecho del mouse y en el menú contextual pulsamos en VSO Image Resizer.


4) Luego de esto se abrirá el programa VSO Image Resizer y, seguramente nos mostrará un mensaje que nos avisa que es una versión hogareña, presionar en "Continuar" y luego en el botón "OK". Si se quiere, pueden investigar cambiar los formatos de resolución, pero con presionar directamente "OK" va a funcionar perfectamente.


5) Finalmente el programa VSO Image Resizer creará, en el mismo directorio de nuestra fotografia original, una nueva fotografía idéntica a la nuestra pero con el nombre modificado y un tamaño reducido.


Saludos.


10:17

Como Usar Log4j en Netbeans 6.7 ( salida a PostgresSQL )



Para ver como usar Log4j en Netbeans: addLog4J


1) Como Instalo el Driver para conectar con Postgres ?

Hay que bajar el driver JDBC Postgres: Bajar

Desde Netbeans presionamos el botón derecho del mouse sobre la carpeta "Libraries" de nuestro proyecto. Seleccionamos "Add JAR/Folder..." y elegimos el archivo "postgresql-8.4-701.jdbc4.jar" que acabamos de bajar hace instantes.

Netbeans incorporará este nuevo .jar a nuestro proyecto.




2) Como creo la base de datos en Postgres?

Se supone que PostgresSql ya esta instalado

Abrimos pgAmin III, seleccionamos una base de datos, en el menu "Herramientas" ejecutamos "Herramienta de Consultas"

En el Editor SQL del Query ejecutamos

CREATE DATABASE midb

Configuramos una nueva conexion para ubicarla en la base de datos creada recien y luego ejecutamos lo siguiente:


CREATE TABLE "Log"
(
"ID" serial NOT NULL,
"OBJETO" character varying(50),
"PRIORIDAD" character varying(50),
"FECHA" character varying(50),
"MENSAJE" character varying(50),
CONSTRAINT "Log_pkey" PRIMARY KEY ("ID")
)


Ya tenesmo creada nuestra base de datos y la tabla donde se almacenan los mensajes.



3) Como hago el archivo de Configuración?

En Netbeans apretamos el botón derecho del mouse sobre el paquete de nuestras clases seleccionamos New -> Other vamos a la carpeta Other y allí elegimos "Properties File" presionamos siguiente y modificamos el nombre para que quede
"Log4jPostgres" y presionamos el botón finish.

Netbeans nos abre automaticamente el archivo Log4jPostgres.properties, dentro de este archivo colocamos:

#Definimos granulidad y el nombre del logger
log4j.rootCategory= INFO, DB

#Configuramos el tipo de Appender
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
#URL de la base de datos
log4j.appender.DB.URL=jdbc:postgresql://localhost:5432/midb
#Configuramos el driver
log4j.appender.DB.driver=org.postgresql.Driver
#usuario de la base de datos (cambiar el usuario por el que corresponda)
log4j.appender.DB.user=usuario
#Contraseña de la base de datos (cambiar la contraseña por la que corresponda)
log4j.appender.DB.password=contraseña
#Configuramos el Layout
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
#Consulat SQL - El DEFAULT es porque el ID es SERIAL
log4j.appender.DB.sql=INSERT INTO public."Log" VALUES (DEFAULT,'%c','%p','%d','%m');



4) Como le digo a mi aplicación que use ese archivo de Configuración?


Creamos un método estático que va a ser llamado desde el main() de la aplicación

Primero obtenemos la url del archivo de configuración, como están en el mismo paquete que la clase Main (o la clase que usemos) lo podemos obtener con el método getResource().

URL url = Main.class.getResource("Log4jPostgres.properties");

Despúes cargamos el archivo de configuración

PropertyConfigurator.configure(url);


Aca les dejo el método listo para copiar:

public static void log4jPostgres(){

URL url = Main.class.getResource("Log4jPostgres.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");
}




Una clase Main completa para probar el ejemplo:


import java.net.URL;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;

public class Main {
static Logger logger = Logger.getLogger(Main.class);

public static void main(String[] args) {
Main.log4jPostgres();
}


public static void log4jPostgres(){
URL url = Main.class.getResource("Log4jPostgres.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");
}
}




Espero que les sea útil

8:25

Como Usar Log4j en Netbeans 6.7 ( salida a MsSql Express )



Para ver como usar Log4j en Netbeans: addLog4J

1) Como Instalo el Driver para conectar con MsSql Express ?


Hay que bajar el driver JDBC MsSql: Bajar

Luego ejecutarlo para desempaquetarlo y extraer el archivo "sqljdbc4.jar"

Desde Netbeans presionamos el botón derecho del mouse sobre la carpeta "Libraries" de nuestro proyecto. Seleccionamos "Add JAR/Folder..." y elegimos el archivo "sqljdbc4.jar" que descomprimimos hace instantes.

Netbeans incorporará este nuevo .jar a nuestro proyecto.



2) Como creo la base de datos en Ms-Sql Express

Se supone que MS-Sql Express esta instalado

Para crear la base de datos "midb" y la tabla "log" usaremos la herramienta sqlcmd

En una consola escribiremos:

C:>sqlcmd -U sa -P contraseña -S localhost

El cursor cambiará y se mostrará de la siguiente manera: 1>

Crearemos la base de datos

1> create database midb
2> go

1>use midb
2> go

Crearemos la tabla log

1>create table log (ID int not null identity primary key, OBJETO varchar(50), PRIORIDAD varchar(50), FECHA varchar(50), MENSAJE varchar(50))
2> go



Con esto ya tenemos creada la base de datos y la tabla en MsSql Express




3) Como hago el archivo de Configuración?

En Netbeans apretamos el botón derecho del mouse sobre el paquete de nuestras clases seleccionamos New -> Other vamos a la carpeta Other y allí elegimos "Properties File" presionamos siguiente y modificamos el nombre para que quede
"Log4jMsSql" y presionamos el botón finish.

Netbeans nos abre automaticamente el archivo Log4jMsSql.properties, dentro de este archivo colocamos:


#Definimos granulidad y el nombre del logger
log4j.rootCategory= INFO, DB

#Configuramos el tipo de Appender
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
#URL de la base de datos
log4j.appender.DB.URL=jdbc:sqlserver://localhost;databaseName=midb
#Configuramos el driver
log4j.appender.DB.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#usuario de la base de datos (cambiar el usuario por el adecuado)
log4j.appender.DB.user=sa
#Contraseña de la base de datos (cambiar la contraseña por la adecuada)
log4j.appender.DB.password=contraseña
#Configuramos el Layout
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
#Consulta SQL
log4j.appender.DB.sql=INSERT INTO log VALUES('%c','%p','%d','%m')




4) Como le digo a mi aplicación que use ese archivo de Configuración?



Creamos un método estático que va a ser llamado desde el main() de la aplicación

Primero obtenemos la url del archivo de configuración, como están en el mismo paquete que la clase Main (o la clase que usemos) lo podemos obtener con el método getResource().

URL url = Main.class.getResource("Log4jMsSql.properties");

Despúes cargamos el archivo de configuración

PropertyConfigurator.configure(url);


Aca les dejo el método listo para copiar:

public static void log4jMsSql(){

URL url = Main.class.getResource("Log4jMsSql.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");
}





Una clase Main completa para probar el ejemplo:


import java.net.URL;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;

public class Main {
static Logger logger = Logger.getLogger(Main.class);

public static void main(String[] args) {
Main.log4jMsSql();
}


public static void log4jMsSql(){
URL url = Main.class.getResource("Log4jMsSql.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");
}
}



Saludos.

6:51

Como Usar Log4j en Netbeans 6.7 ( salida a MySql )



Para ver como usar Log4J en Netbeans: addLog4J

1) Como Instalo el Driver para conectar con MySql ?


Hay que bajar el driver JDBC mysql: Bajar

Luego desempaquetarlo y extraer el archivo "mysql-connector-java-3.1.14-bin.jar"

Desde Netbeans presionamos el botón derecho del mouse sobre la carpeta "Libraries" de nuestro proyecto. Seleccionamos "Add JAR/Folder..." y elegimos el archivo "mysql-connector-java-3.1.14-bin.jar" que descomprimimos hace instantes.

Netbeans incorporará este nuevo .jar a nuestro proyecto.




2) Como creo la base de datos en MySql?


Vamos a crear una base de datos "midb" y una tabla "Log" donde se almacenarán los mensajes

Se supone que ya tenemos instalado MySQL

Abrimos el MySql Query Browser (o desde la consola con MySql Monitor) y creamos primero la base de datos

CREATE DATABASE midb;


Luego creamos la tabla para almacenar los mensajes

CREATE TABLE `midb`.`log` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`OBJETO` varchar(50) DEFAULT NULL,
`PRIORIDAD` varchar(50) DEFAULT NULL,
`FECHA` varchar(50) DEFAULT NULL,
`MENSAJE` varchar(50) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;




3) Como hago el archivo de Configuración?


Para enviar la salida del Log4j a MySql vamos a utilizar un archivo .properties

En Netbeans apretamos el botón derecho del mouse sobre el paquete de nuestras clases seleccionamos New -> Other vamos a la carpeta Other y allí elegimos "Properties File" presionamos siguiente y modificamos el nombre para que quede
"Log4jMySql" y presionamos el botón finish.

Netbeans nos abre automaticamente el archivo Log4jMySql.properties, dentro de este archivo colocamos:



#Definimos granulidad y el nombre del logger
log4j.rootCategory= INFO, DB

#Configuramos el tipo de Appender
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender

#URL de la base de datos
log4j.appender.DB.URL=jdbc:mysql://localhost/midb

#Configuramos el driver
log4j.appender.DB.driver=com.mysql.jdbc.Driver

#usuario de la base de datos (colocar el usuario adecuado)
log4j.appender.DB.user=usuario

#Contraseña de la base de datos (colocar la contraseña adecuada)
log4j.appender.DB.password=contraseña

#Configuramos el Layout
log4j.appender.DB.layout=org.apache.log4j.PatternLayout

#Consulat SQL - El null es porque el ID es AUTO_INCREMENT
log4j.appender.DB.sql=INSERT INTO Log (ID,OBJETO,PRIORIDAD,FECHA,MENSAJE) VALUES (null,'%c','%p','%d','%m')




4) Como le digo a mi aplicación que use ese archivo de Configuración?


Creamos un método estático que va a ser llamado desde el main() de la aplicación

Primero obtenemos la url del archivo de configuración, como están en el mismo paquete que la clase Main (o la clase que usemos) lo podemos obtener con el método getResource().

URL url = Main.class.getResource("Log4jMySql.properties");

Despúes cargamos el archivo de configuración

PropertyConfigurator.configure(url);


Aca les dejo el método listo para copiar:

public static void log4jMySql(){

URL url = Main.class.getResource("Log4jMySql.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");

}


Una clase Main completa para probar el ejemplo:


import java.net.URL;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;

public class Main {
static Logger logger = Logger.getLogger(Main.class);

public static void main(String[] args) {
Main.log4jMySql();
}


public static void log4jMySql(){
URL url = Main.class.getResource("Log4jMySql.properties");
PropertyConfigurator.configure(url);

logger.info("Entrando a la Aplicacion");
System.out.println("Mensaje por Consola");
logger.info("Saliendo de la Aplicacion");
}

}



Espero que le sirva a alguien.