1 abr 2011

Grails - El Santo Grial del Desarrollo rápido (Parte II)

Vamos a continuar con la serie de Grails, si recordáis en la parte I de esta serie empezamos a crear una aplicación que servía para gestionar los contactos. Al final de la entrada anterior se decía que había que hacer click en ContactoController, pero porque no hacer las cosas algo mejor, es decir, porque no introducir una pantalla de login y un menú, y si además ponemos una gestión de usuarios y permitimos dar de alta, modificar y eliminar usuarios, habremos realizado una aplicación que tendrá más aspecto de aplicación.

Esto es justo lo que vamos a hacer en esta parte de la mini-serie.

Vamos a comenzar paso a paso nuestra “nueva” aplicación de Contactos.
  1. Creación de los usuarios, grupos y permisos.
Para este proceso vamos a utilizar un plugin de los diversos plugins que posee grails (http://www.grails.org/Plugins), en concreto uno llamado Stark-Security. Ahora bien, y ¿cómo utilizo un plugin? Pues muy sencillo, simplemente hay que instalarlo, y para instalarlo hay que ejecutar un simple comando de grails.
grails install-plugin stark-security
Al ejecutar este comando tenemos la siguiente salida por consola:
grails install-plugin stark-security
Welcome to Grails 1.2.0 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /Users/javi/java/grails-1.2.0

Base Directory: /Users/javi/proyectos/grails-howto-series/agenda
Resolving dependencies...
Dependencies resolved in 1433ms.
Running script /Users/javi/java/grails-1.2.0/scripts/InstallPlugin.groovy
Environment set to development
Reading remote plugin list …
Plugin list out-of-date, retrieving..
[delete] Deleting: /Users/javi/.grails/1.2.0/plugins-list-core.xml
[get] Getting: http://svn.codehaus.org/grails/trunk/grails-plugins/.plugin-meta/plugins-list.xml
[get] To: /Users/javi/.grails/1.2.0/plugins-list-core.xml
....................................................
[get] last modified = Wed Feb 02 03:16:38 CET 2011
Reading remote plugin list ...
Plugin list out-of-date, retrieving..
[delete] Deleting: /Users/javi/.grails/1.2.0/plugins-list-default.xml
[get] Getting: http://plugins.grails.org/.plugin-meta/plugins-list.xml
[get] To: /Users/javi/.grails/1.2.0/plugins-list-default.xml
......................................................................................
[get] last modified = Thu Feb 10 06:22:21 CET 2011
[copy] Copying 1 file to /Users/javi/.grails/1.2.0/projects/agenda.parte2/plugins
Installing plugin stark-security-0.4.3
[mkdir] Created dir: /Users/javi/.grails/1.2.0/projects/agenda.parte2/plugins/stark-security-0.4.3
[unzip] Expanding: /Users/javi/.grails/1.2.0/plugins/grails-stark-security-0.4.3.zip into /Users/javi/.grails/1.2.0/projects/agenda.parte2/plugins/stark-security-0.4.3
Executing stark-security-0.4.3 plugin post-install script ...
Plugin stark-security-0.4.3 installed
Plug-in provides the following new scripts:
------------------------------------------
grails stark-security-install-full
grails stark-security-install-without-dao
Si os fijáis en las dos últimas líneas de la salida anterior, veréis que este plugin ofrece dos nuevos comandos, el que nos interesa es stark-security-install-full, así que ahora tenemos que ejecutar el nuevo comando que nos ha aportado este plugin.
grails stark-security-install-full


23 mar 2011

Configurar Spring para uso de Datasources JNDI en JBOSS 6.0.0

He comprobado que crear DataSource JNDI para su uso con JBoss en una aplicación basada en Spring tiene tela marinera, en concreto con Spring 3.0.3.RELEASE, si además añadimos un par de frameworks más...


Hoy me he encontrado con la problemática de configurar un DataSource, bueno realmente era alguno más, pero la solución se aplica a uno y luego todos a disfrutar del "Cut&Paste", despues de googlear y goolglear he visto que no hay ningún sitio en el cual te digan de forma clara como hacerlo, así que he decidido intentar ponerlo yo en unas pocas palabras, así que vamos a ello.


Lo primero que hay que hacer es crear un archivo XML en $JBOSS_HOME/server/default/deploy/ que siga la nomenclatura <nombre_datasource>-ds.xml el contenido del archivo debe ser como el siguiente (en esta configuración se ha definido un pool con un mínimo y máximo):

26 ene 2010

Spring ROO - ¿Competencia de GRAILS?

En mi afán de probar nuevos frameworks que surgen en el ámbito del Software Libre, me encontré hace tiempo, no mucho la verdad, con este framework de desarrollo rápido de Spring, si queréis podéis ver la información (en inglés) de Spring Roo en la web oficial de SpringSource.

Lo primero que se me vino a la mente fue... ¿Cómo es posible que Spring, habiendo comprado G2One recientemente, publique un framework que puede hacer la competencia a GRAILS? Y la verdad es que aún me lo sigo preguntando, pero poco a poco veo el motivo, aunque aún lo veo un poquito lejos.

Pero Spring Roo tiene las mismas bonanzas que GRAILS y desde mi punto de vista alguna otra cosa muy interesante, como son por ejemplo:
  1. Usa AOP.
  2. Totalmente integrado con Maven.
  3. Es rápido, muy rápido en ejecución.
 Pero también tiene alguna cosa mala, como por ejemplo:
  1. Solo está la primera versión, por lo que le falta uso por parte de la comunidad.
  2. Hay que hacer prácticamente todo desde la consola de Roo.
En próximas entregas del blog iré poniendo algo más sobre este framework, de hecho, en breve veréis un entradas similares a la serie de GRAILS, así podemos comparar con un ejemplo.

Un saludo y a disfrutar!!!

14 ene 2010

GRAILS - El santo grial del desarrollo rápido (Parte I)

Hoy toca algo tecnológico, bueno hoy y algún que otro día más con esta serie.
Algunos diréis que ya era hora, pero el trabajo es lo que tiene, quita tiempo para hacer estas cosas, así que vamos a hacer un pequeño MINI-HOWTO, para poner en marcha una aplicación con este framework de desarrollo rápido, pero primero...
1. ¿Qué es GRAILS?

Grails es un framework para desarrollo rápido de aplicaciones desarrollado sobre Groovy. Grails pretende ser un framework altamente productivo siguiendo dos paradigmas del desarrollo rápido como son "Convention over Configuration" (CoC) y "Don't Repeat Yourself" (DRY), proporciona un entorno de desarrollo estandarizado y oculta la mayoría de los detalles de configuración al desarrollador.
Grails ha sido impulsado principalmente por la empresa G2One, que fue adquirida por SpringSource en noviembre de 2008.
2. ¿De dónde me descargo GRAILS?

Pues fácil y sencillo de su página grails.org, en su zona de descargas está disponible la versión 1.2 del framework.
En su página hay muchos tutoriales y artículos que os servirán de ayuda para dar los primeros pasos. Pero voy a intentar que os saltéis varios de ellos con esta serie de HOW-TOs.
3. Configurar la herramienta:

Lo primero de todo debéis ir a la dirección que os he dicho en el punto 2 y os descargáis el framework, tras esto hay que descomprimirlo en algún lugar que se, yo soy usuario de Linux y de MacOS por lo que usaré la nomenclatura de estos sistemas operativos para referirme a creación de directorios y temas de variables de entorno.

Después de descomprimirlo lo que tenemos que hacer es establecer la variable de entorno $GRAILS_HOME que apunte a la carpeta que acabamos de descomprimir y añadir $GRAILS_HOME/bin al $PATH.
4. Crear el proyecto
Esto es de las cosas que más me gustan de este entorno de desarrollo. Una vez configurada la herramienta, todo lo que tenemos que hacer es ir a una carpeta en la que queramos crear el proyecto, por ejemplo, una carpeta que crearemos para esta serie "grails-howto-series" y ejecutamos el siguiente comando:

grails create-app agenda

29 sept 2009

Comentarios en (y sobre) la página de reservas CentralR

Vaya, vaya, vaya, y yo que pensaba que en Europa eran más "europeos" (como dice mi amigo "el niño de los graffitis"), pues resulta que... no va a ser verdad, al menos en su totalidad. A la hora de mostrar comentarios sobre los hoteles en los que has estado alojado, y cuya reserva haces mediante CentralR.com, todo es perfecto cuando haces una opinión positiva, pero cuando haces una opinión negativa... la película cambia. Veamos el ejemplo concreto: Days Hotel Belfast City Centre, un hotel bastante bueno y en donde estuvimos muy agusto, y aunque un pelín caro, para los precios españoles, en general merece la pena, la opinión aprobada por CentralR es la siguiente:
All I can say about this hotel is that it was fabulous to stay in it. The room was perfect, with big beds and an incredible cleanliness, the breakfast buffet was very complete and the staff was incredible too. (Traducción: Todo lo que puedo decir acerca de este hotel es que fue fabuloso estar en el. La habitación era perfecta, con camas grandes y una limpieza increible, el desayuno buffet era muy completo y el personal era también increible)
Jackson Court Hotel, no vayáis a este hotel, repito no vayais a este hotel, trato desagradable, ruidos por todos los lados, se convierte en una discoteca (el ropero es la recepción, el restaurante la pista de baile y el patio interior la zona de fumadores y con la música al mismo volumen que en el interior), con una insonoración que brilla por su ausencia y abre de lunes a domingo, es decir todos los días, esto es un resumen de la opinión que hice en CentralR y que rechazaron, sin mandar mensaje diciendo el por qué del rechazo, aunque intuyo el por qué...
The hotel becomes in a Night Club that opens all days in week and the noise was so loud that we could not sleep in all our stay. This information is not showed in the hotel's web and it is very important in order to select the hotel or not. I told to the staff the problem and they answered me in bad way, they told me that I had to be more informed that the hotel was a Night Club and they refered to the web page in which there aren't information about this issue when I made the reservation. (Traducción: El hotel se convierte en un Night Club que abre todos los dias de la semana y el ruido era tan alto que no pudimos dormir en toda nuestra estancia. Esta información no se mostraba en la página del hotel y es muy importante a la hora de seleccionar el hotel o no. Le dije al personal el problema y me contestaron de mala manera, me dijeron que tenía que haberme informado mejor de que el hotel era un Night Club y me refirieron a la página en la que no había ninguna información acerca del problema cuando hice la reserva)
En definitiva, no os fiéis de las opiniones que aparecen en las páginas de reservas, que como véis las censuran, preguntad al amigo google sobre opiniones del hotel que estáis buscando y navegad por los foros y blogs, que seguro que en ellos dicen cosas más interesantes que en las páginas de reservas. A disfrutar!!!

12 jun 2008

Tecnocategorías

Hoy toca hablar de las categorías que nos encontramos en nuestra amada profesión. Vayamos por partes (Jack el Destripador Dixit). En general, y depende de la empresa en la que te toque, hay una serie de categorías profesionales (Programador, Analista Programador, Analista, Arquitecto, Jefe de Proyecto, ...) y en todas ellas se podría hacer una subdivisión más que evidente, cada una a su nivel, eso está claro. ¿Y cuales son estas subdivisiones? De todas no me voy a acordar, pero si de las más frecuentes, (XXXX valor dentro de las categorías padre) que son:
  1. El XXXX trepador: subcategoría por excelencia, se basa en no hacer absolutamente nada a lo largo de toda la carrera profesional pero llegar a todo sin importar cuantos mueran en el camino.
  2. El XXXX amidimequehago: subcategoría en auge, cada vez que termina algo de lo que tiene asignado se queda de brazos cruzados esperando a que alguien le diga que tiene que hacer, le da igual lo que le mandes siempre y cuando la complejidad de la tarea no supere un bucle con 2 if de no más de una expresión cada uno, es una persona capaz de estar horas enchufado a youtube, meneame, barrapunto y por supuesto el as o marca.
  3. El XXXX mesudalapollatodo: de esta categoría, al igual que de la anterior, cada vez hay más especímenes, especialistas en no hacer nada y vivir "a su ritmo", terminan convirtiendose en amidimequehagos o trepadores.
  4. El XXXX enmicasasejuegaasi: subdivisión de la anterior, cuando se quedan sin argumentos de por qué están parados, o de por qué todo lo que han hecho falla, se limitan a decir, "yo esto siempre lo he hecho así", "si está mal es culpa del lenguaje", "es que en mi universidad me lo explicaron así", ...
Si, seguro que me he dejado varias, pero bueno esto es un blog, que esperáis. Un saludo y a disfrutar.

9 jun 2008

Stay hungry, stay foolish

Hace ya bastante tiempo que me llegó un discurso que hizo Steve Jobs en la ceremonia de graduación de Stanford allá por el año 2005 y pienso que es más que interesante y por este motivo lo pongo aquí. Es un poco (vale un mucho) filosófico, pero creo que dice cosas que deberíamos tener todos en cuenta cuando tomamos decisiones, o cuando alguien las toma, y estas nos perjudican o benefician.

 Hoy quería escribir de otras cosas, que podrían ser más o menos interesantes, pero considero importante el que adoptemos una filosofía de vida en la que lo más importante es el momento actual, como dicen en una de mis películas favoritas "Carpe diem".

 El video está en dos partes y son las siguientes:

  Primera parte:

 Segunda Parte:



La traducción final de "Stay hungry, Stay foolish" es literal "Sigue hambriento, sigue alocado", pero creo que lo que nos viene a decir es más bien algo así como "Sed ambiciosos, sed inquietos". Sed ambiciosos, para que cualquier cosa que pueda ser un alto en nuestro camino no sea más que una leve parada que nos haga reflexionar, un poco, no demasiado, y, de inmediato, sed inquietos para poder reaccionar y, de este modo, aprovechar todo lo bueno que tenemos dentro y explotarlo al máximo.

Me ha salido un post muy filosófico, pero creo que de vez en cuando, y en un blog de "tecnólogos y todólogos", escuchar y reflexionar sobre lo que un tecnólogo como Steve Jobs dice acerca de todo lo demas (todólogo), sin duda, merece la pena.

 Y ya sabeis... Sed ambiciosos, sed inquietos.