lunes, 22 de noviembre de 2010

Nueva página web de Apache Tapestry

Apache Tapestry
La página web del proyecto Apache Tapestry ha sufrido una profunda actualización tratando de darle un aire más actual y en la que se transmita mejor cuales son las principales caracteristicas de este magnifico framework para el desarrollo de aplicaciones web en Java o porque elegir este framework sobre otros.

Las principales secciones como Empezando, Documentación y Descargas ahora están más visibles en la página de inicio, además se ha incluido a esta una sección con las noticias que van surgiendo de este proyecto así como otra sección de proyectos en los que se ha utilizado con éxito.

La sección de documentación (que tiene muy buena pinta) también ha sido mejorada notablemente pudiendo encontrar en ella una introducción, una guía para el primer contacto, un tutorial sobre los principales conceptos, una guía de usuario más completa, la API del las clases del framework y la referencia de componentes de las últimas versiones y algunos enlaces con información sobre Tapestry (blogs, libros, presentaciones, wiki,).

Tal vez si habéis visitado alguna de mis otras entradas sobre Tapestry os habréis dado cuenta del cambio de logo del proyecto. En las siguientes imágenes podéis ver como era la antigua página y como es ahora.


Además aprovechando el estreno de la nueva página web y al mismo tiempo han liberado la versión 5.2.4 aunque todavía es una versión beta de la rama 5.2 no tardará en liberarse la versión final.

Referencia:
Apache Tapestry
Documentación sobre Apache Tapestry

Entorno de desarrollo para Apache Tapestry 5

Apache Tapestry
Los desarrolladores de Apache Tapestry implementaron en la versión 5 una característica que hace del entorno de desarrollo de este framework sea altamente productivo. La característica es similar a la presente en otras tecnologías como en los JSP y otros frameworks como Grails y es treméndamente útil ya que puede suponer un ahorro considerable en el tiempo de desarrollo. En Tapestry la caracteristica se llama «live class and template reloading» y consiste en que los cambios que se realizan en los componentes y páginas son cogidos en caliente por Tapestry sin necesidad de hacer un redespligue o reiniciar el servidor de aplicaciones. Ya que en un desarrollo los cambios son continuos la necesidad de ir viendo frecuentemente como van quedando es imprescindible.

Para ver esta caracteristica en funcionamiento utilizaré el ejemplo Hola Mundo con Tapestry 5 de una entrada anterior. Los cambios a realizar son pocos y nada complicados. Básicamente consisten en tener generada en un directorio la estructura de la aplicación WAR. Partiendo de la estructura de codigo fuente que ya teniamos en el ejemplo nos faltaría generar en el directorio WEB-INF/lib las librerías de la aplicación y en el directorio WEB-INF/classes las clases compiladas. Para el caso de las librerías basta con crear una nueva tarea en Ant que nos copie las librerías del directorio «lib» a «src/main/web/WEB-INF/lib», esto se hace en la nueva tarea «copiar-libs» de Ant del archivo build.xml. Hay algunas librerías que no son necesarias y no las copiamos por eso los excludes de la tarea copiar-libs (son las librerias servlet-*.jar y selenium-*.jar).

Para el caso de las clases compiladas le indicaremos al IDE que usemos que nos las genere en «src/main/web/WEB-INF/classes» en vez del directorio bin en el caso de eclipse. Para ello y en eclipse iremos a las propiedades del proyecto en introduciremos en el campo de texto «Default output folder» «HelloWorldTapestry5/src/main/web/WEB-INF/classes».


Con estas dos cosas ya tenemos la estructura de una aplicación WAR en el sistema de archivos ahora nos queda desplegar la aplicación en el servidor de aplicaciones. Para el caso de Tomcat basta con copiar un archivo xml al directorio de Tomcat «conf/Catalina/localhost» (este archivo xml está en la carpeta misc del código fuente de la aplicación). El nombre del archivo será el nombre de contexto de la aplicación asi que en este caso y habiendo realizado estas tres cosas accederemos a la aplicación con la URL «http://localhost:8080/helloworld-tapestry5» y podremos probar que haciendo un cambio a la página Index (en el archivo Index.tml) y simplemente actualizando la página en el navegador los cambios se aplican de inmediato.

Como digo una caracteristica muy util, que ahorra mucho tiempo y que contribuyen a hacer de Tapestry para mí uno de los mejores frameworks Java con el que he tenido la oportunidad de desarrollar.

Referencia:
Documentación sobre Apache Tapestry
Codigo fuente Hola Mundo Apache Tapestry 5 (con live reloading)

viernes, 5 de noviembre de 2010

Guía instalación Minix


Minix
El proceso de instalación de Minix no es muy complicado, en unos pocos pasos se completa, y se realiza bastante rápido debido a que su tamaño es bastante menor que muchas de las distribuciones GNU/Linux. Lo recomendable es hacerlo en una máquina virtual ya que Minix no va a ser el sistema que usemos para cualquiera de las tareas que hagamos habitualmente, además de esta manera podremos hacer y deshacer a nuestro gusto sin peligro de romper nuestro sistema.

Lo primero que haremos será descargar la imagen de CD de la última versión de Minix (en el momento de escribir esta entrada la 3.1.8).

Una vez descargada configuraremos una nueva máquina virtual. Utilizando virtualbox al crear la máquina virtual configuraremos la opciones típicas como sistema operativo done utilizaremos «Other» y versión «Other\Unknown», le asignaremos una cantidad de memoria aceptable (128 MiB o más), el tamaño de disco duro (2 GiB será más que suficiente) y en orden de arranque pondremos primero CD/DVD-ROM y luego disco duro y en almacenamiento asignaremos a la unidad CD virtual la imagen de instalación de Minix que hemos descargado. Al final en el resumen de la maquina virtual que hemos creado veremos algo como en la siguiente imagen.


Iniciamos ahora la máquina virtual. Primeramente veremos una pantalla con un mensaje de bienvenida y al cabo de un tiempo si no hacemos nada se iniciará la carga de Minix. Al final llegaremos a una pantalla de inicio de sesión donde introduciremos «root» y sin contraseña accederemos a la linea de comandos desde donde procederemos a instalar Minix en el disco duro (de la máquina virtual). Para ello y tal como se nos indica en el mensaje de bienvenida antes de iniciar sesión tecleamos «setup» y un proceso nos guiará en el proceso de instalación. Si todo va correctamente pulsaremos la tecla Retorno (Enter).

El primer paso será seleccionar la distribución de teclado, introduciremos spanish. El segundo paso será establecer las particiones. Para no complicarnos y como estamos utilizando una máquina virtual dejaremos a Minix que realice el particionado de forma automática, pulsamos Retorno. Después de un pequeño momento en el que Minix detecta los discos duros seleccionaremos el que nos ofrece, introducimos 0 o pulsamos Return para utilizar la opción por defecto (0). Después Minix nos pedirá una confirmación antes del copiado de archivos al disco duro, introducimos «yes». A continuación nos preguntará cuanto tamaño queremos reservar para la partición home, dejaremos el valor que nos ofrece Minix, 376 MiB para un disco duro de 2 GiB. Ahora nos pregunta por el tamaño de bloque del disco duro, dejaremos el valor por defecto 4 KiB pulsando la tecla Retorno.

Y ahora empieza el copiado de archivos al disco duro donde veremos los archivos restantes y el progeso de la operación. Una vez finalizado Minix nos pregunta por el modelo de tarjeta de red que poseemos (en la máquina virtual), selecionaremos la opción por defecto AMD LANCE. Ahora seleccionamos que Minix use DHCP para configurar la tarjeta de red. Y ya hemos terminado de instalar Minix. En las siguientes imágenes podéis ver el proceso de instalación de forma gráfica.






Finalmente, tecleamos shutdown y desmontamos la imagen del medio de instalación de Minix. Se nos mostrará la linea de comandos del monitor de Minix y ya podremos cerrar la ventana para volver iniciar Minix ahora desde el disco duro.


Ahora instalaremos algunos paquetes para poder hacer algo con Minix. Los paquetes que instalaremos serán nano, la colección de compiladores GNU (gcc) y el entorno gŕafico básico X. Para ello utilizamos la siguiente linea de comandos.

$ pkgin install nano gcc x11

Otros comandos útiles de pkgin son:
$ pkgin help
(para obtener las opciones disponibles)

$ pkgin update
(para actualizar la lista de paquetes)

$ pgkin available | more
(para ver los paquetes disponibles, que no son muchos)

Una vez se hayan descargado e instalado los paquetes podremos hacer algo dentro de Minix pero eso será cuestión para otra entrada.

Referencia:
El sistema operativo Minix
Guía post instalación Minix
Installation guide