Mostrando entradas con la etiqueta open source. Mostrar todas las entradas
Mostrando entradas con la etiqueta open source. Mostrar todas las entradas

domingo, 4 de marzo de 2012

Recursos en la red: CMS's

¡HOla Javer@s!

Hoy con la intención simplemente de poner sobre la mesa un interesante tema. En la red hay múltiples sitios que comparten características de manera general. Claro que a alguien se le ocurrió un día desarrollar herramientas que automatizaran la creación de algún tipo de sitios. Así fueron apareciendo los famosísimos CMS (Content Management System) o editor de contenidos como comúnmente solemos referirnos.

Los hay para toda clase de contenidos: publicación de artículos, catálogos de productos, blogs, páginas personales, e inclusive contenidos mas complejos e interacciones más específicas. 

Nombres y productos hay muchos: Joomla, Drupal, Moodle, Fork, Wordpress, Mambo, Calipso, y un interminable etc...

A continuación incluyo una lista donde aparecen algunos de los CMS de código abierto más populares:

¿Alguna sugerencia o experiencia con estas interesantes herramientas?  Bienvenidos los comentarios.

¡Saludos Javer@s!

Hasta la próxima...

lunes, 25 de enero de 2010

Jetty: Servidor Web embebido

Navegando un día buscando precisamente algo de esas cosas embebidas (esa palabra me sigue causando algo de conflicto pero si existe en el español, ¡¡lo juro!!) me encontré con algo llamado Jetty. Jetty nos proporciona, entre varias cosas,  un servidor HTTP, cliente HTTP, y un contenedor de servlets de java. Jetty además es otro proyecto cuyo código es abierto, y esta disponible para su distribución y uso comercial. El núcleo del proyecto se encuentra alojado por la Fundacion Eclipse a partir de la versión 7 y de las versiones 6 para abajo en Codehaus.

Varios proyectos interesantes ya usan Jetty. Nosotros lo hemos utilizado como servidor embebido incluso migrando directamente proyectos que corren bien usando un contenedor Tomcat, en Jetty funcionan bastante bien. Al igual que lo que comentaba de Derby, el utilizar este tipo de herramientas embebidas hace ampliar las posibilidades en aplicaciones que se ejecutan en diferentes ambientes y diferentes equipos, es ligero y confiable. Para ver esa posibilidad de utilizar Jetty de manera embebida puedes ver el tutorial aqui.

En realidad solo quería comentar un poco a cerca de esta aplicación, la documentación que ofrece es bastante clara, con ejemplos de código que ayudan poniendo énfasis en los puntos importantes del tutorial en línea, claro, en ingles. Así que si quieres echar un vistazo a Jetty te invito a checar su página principal http://jetty.codehaus.org/jetty/.

viernes, 22 de enero de 2010

Iniciandose en Derby: Java DB

Derby es un subproyecto de Apache DB. Se trata de un manejador de base de datos de código abierto hecho completamente en java. Derby tiene varias características que lo hacen sumamente atractivo para soluciones en sistemas ligeros. Entre otras me gustaría mencionar las que a mi me llamaron la atención: es fácil de instalar, ligero (pesa tan solo unos cuantos megabytes) y puede usarse de manera embebida (palabra que si existe en español, ver aquí), es decir, que dentro de una aplicación java, podemos iniciar y utlizar bases de datos de Derby dentro de la misma máquina virtua.


Bueno, después de esta pequeña reseña que podemos encontrar fácilmente en cualquier sitio que hable de Derby, vamos a lo importante, como lo usamos dentro de nuestras aplicaciones.

Básicamente lo que haré a continuación será parafrasear un poco los ejemplos de la guía rápida básica de Derby que podemos encontrar en el tutorial oficial.

Primero que nada necesitamos descargar Derby por supuesto, lo cual se puede hacer aquí. Una vez descargado descomprimimos el directorio que esta ahí contenido, ejemplo 'db-derby-alguna_version-bin'. A la ubicación de este directorio lo llamaremos de ahora en adelante: DERBY_HOME.

Comenzaremos con el ejemplo de el uso de Derby embebido dentro de tu aplicación java, lo hago debido a que esta es una de las características que mas llaman la atención de este manejador. Se supone que ya tenemos instalado y debidamente configurado un jdk en nuestro equipo.

Lo haremos a través de la linea de comandos (unix y windows) para hacer mas sencillo de explicar el procedimiento.

Primero creamos un directorio que llamaremos "DERBYTUTOR" y entramos en él. Ahí introduciremos los sguientes comandos, no se te olvide el punto que va al final (.):
Unix:
cp $DERBY_HOME/demo/programs/workingwithderby/* .

export CLASSPATH=$DERBY_HOME/lib/derby.jar:.

 Windows:
copy %DERBY_HOME%\demo\programs\workingwithderby\* .

set CLASSPATH=%DERBY_HOME%\lib\derby.jar;.

Ahora en el directorio DERBYTUTOR en donde nos encontramos deben existir varios archivos java. Después de confirmar que los archivos WwdEmbedded.java y WwdUtils.java existan e introducir el siguiente comando para compilar ambos archivos:

Unix y Windows:
javac WwdEmbedded.java WwdUtils.java
Si en este punto ocurre algún error probablemente es porque no se tiene bien configurado el jdk en nuestro sistema o que al definir el classpath algo no se hizo correctamente.

Si todo salió bien no deberá aparecer nada al ejecutarse la linea anterior y los archivos se habrán compilado satisfactoriamente, creando los archivos WwdEmbedded.class y WwdUtils.class.

A continuación ejecutamos el ejemplo con el siguiente comando y sucederá algo como lo que sigue:

java WwdEmbedded 
org.apache.derby.jdbc.EmbeddedDriver loaded.
Connected to database jdbcDemoDB
 . . . . creating table WISH_LIST
Enter wish-list item (enter exit to end):
a peppermint stick
  __________________________________________________________
On 2009-05-08 13:12:09.058 I wished for a peppermint stick
  __________________________________________________________
Enter wish-list item (enter exit to end):
a long vacation
  __________________________________________________________
On 2009-05-08 13:12:09.058 I wished for a peppermint stick
On 2009-05-08 13:12:21.28 I wished for a long vacation
  __________________________________________________________
Enter wish-list item (enter exit to end):
exit
Closed connection
Database shut down normally
Getting Started With Derby JDBC program ending.

¿Que sucede aquí? Estamos accediendo una base de datos Derby embebida he insertando datos en una tabla. Asi es, sin un servidor Derby activo, simplemente con la aplicación actual.

En el enlace del ejemplo podrás obtener más detalles, lo único que me gustaría comentar aquí es como se logra la conexión en la clase WwdEmbedded a través de que detalles.

Lo único que cambia, con respecto al uso de cualquier JDBC es que utiliza los siguientes parametros:
   // define driver a usar (el contenido en la libreria derby.jar)
      String driver = "org.apache.derby.jdbc.EmbeddedDriver";
   // nombre de la base de datos 
      String dbName="jdbcDemoDB";
   // URL que Derby usara
      String connectionURL = "jdbc:derby:" + dbName + ";create=true";

Y con esto simplemente creamos la conexión de manera normal:

String driver = "org.apache.derby.jdbc.EmbeddedDriver";
...
try {
    Class.forName(driver); 
} catch(java.lang.ClassNotFoundException e) {
  ...
}
String connectionURL = "jdbc:derby:" + dbName + ";create=true";
...
try {
    conn = DriverManager.getConnection(connectionURL);
    ...  
}  catch (Throwable e)  {   
   ...
}

 Aquí concluiría este blog, cualquier otra duda te invito a checar la documentación de los ejemplos, es bastante clara (Aunque en inlgés) y para fines prácticos yo la veo bastante útil.

Puedes ver el sitio oficial de Derby aqui.