miércoles, 23 de marzo de 2011

Grails y Bases de Datos.

Aunque la cafetería ha estado un poco descuidada retomo el asunto. Pondré traducciones de artículos que vea y que me sean interesantes a mí. Principalmente en Griffon, que es lo que me interesa más, pero tambien de Grails (que a fin de cuentas es como el padre de todo). Espero poner tambien algo de mi cosecha.
Ahí va la primera, basada en una entrada de Andrés Almiray en su blog
Profundizando en el interior del sitio web de Groovy, descubrí GORM, el framework de Grails ORM. Al ser un marco construido encima de Hibernate no me sorprende tanto como el hecho de que puede generar dinámicamente métodos en las clases de dominio basados ​​en las propiedades y los predicados de dichas propiedades.Por ejemplo, hay un método dinámico findAllBy que le ayudará a encontrar todas las entidades con ciertos criterios.

Para que yo me aclare ORM es "mapeo de objetos a bases de datos". Con Grails utilizamos bases de datos orientadas a objetos y ORM convierte estos objetos a tablas. A mí se me hace un poco dificil porque ya estaba acostumbrado a las bases de datos relacionales. Veamos el ejemplo que nos pone Andrés Almiray:

class Libro {
Long id
Long version
String titulo
Date fechaPublic
String autor
}


Esta es una clase del modelo (dominio). En el proyecto Grails lo tenemos en grails-app/domain/com/miaplicacion/Libro.groovy
A continuación y ya en el controlador, podemos hacer búsquedas de esta manera tan sencilla: (código de la página de Andrés Almiray)

def resultados = Libro.findAllByTitulo("The Shining", [max:10, sort:"title", order:"desc", offset:100] )
resultados = Libro.findAllByTituloAndAutor("The Sum of All Fears", "Tom Clancy")
resultados = Libro.findAllByFechaPublicBetween(firstDate, new Date())
resultados = Libro.findAllByFechaPublicGreaterThanOrEqual(firstDate)
resultados = Libro.findAllByTituloLike("%Hobbit%")
resultados = Libro.findAllByTituloNotEqual("Harry Potter")
resultados = Libro.findAllByFechaPublicIsNull()
resultados = Libro.findAllByFechaPublicIsNotNull()

El código se explica bastante bien por sí solo, si acaso dentro de unos meses veo que no se entiende muy bien, haré algunas aclaraciones para acordarme bien.

lunes, 14 de septiembre de 2009

Groovy and Grails


He estado leyendo algunas cosas sobre Groovy... y la verdad es que mola!. Ya estaba yo un poco mosca con Python. Que "si es muy fácil", que si patatín, que si patatán. Si! pero hay que empezar de nuevo. Aprender un lenguaje nuevo.

Groovy viene a llenar ese espacio. Es un lenguaje igual que Java pero simplificado. Puede utilizarse a modo de script como lenguaje interpretado o puede compilarse para darnos un archivo .class igual que si fuera Java.

Una maravilla !!! Además... toda la sintaxis de Java es totalmente valida en Groovy... ¿Que más quiero?.
Pues si, quiero más. Para las aplicaciones web puedo utilizar Grails, que es un framework que nos facilita mucho la vida. Para aplicaciones de escritorio Griffon, que además de la aplicación de escritorio, nos genera un applet para internet. Todo en Groovy, que es.. Java!

Si me animo, pondré algunos ejemplos.

miércoles, 19 de agosto de 2009

Nuevo soft para mi HTCDream

Ayer me puse manos a la obra para instalar Android 1.5 en la Dream, y la verdad es que hubo un momento en que lo pasé mal.
Hice la copia de seguridad, instalé el "cupcake" y ...
No funciona.
Reinicié varias veces. No funciona.
Me dispuse a restaurar el S.O. antiguo. No lo restaura... me veia ante Telefonica pagando una pasta para que me devolvieran el terminal a su estado original.
Al final trasteando, vi una opción que era así como "hacer un wipe"... Y funcionó.
Ya tengo mi "cupcake" con acceso a root.

lunes, 13 de julio de 2009

Herramientas Java para ODF.

ODFDOM es un marco de trabajo para archivos OpenDocument (ODF). without requiring detailed knowledge of the ODF specification. Su propósito es proporcionar una forma fácil común para crear, acceder y manipular los archivos ODF, sin necesidad de un conocimiento detallado de la especificación ODF. Está diseñado para proporcionar a la comunidad de desarrolladores ODF una API de programación fácil ligera de transportar a cualquier lenguaje orientado a objetos.
El objetivo del proyecto ODFDOM es proporcionar una API sencilla para la lectura, escritura y manipulación de los documentos del formato OpenDocument (ODF). Para archivar estos documentos, el API ODFDOM sigue un enfoque por niveles. Un diseño en niveles es la base sólida para una estructura bien diseñada como modularidad.



Después de usar durante varios meses una distribución de Ubuntu, he decidido probar openSuse 11.1. El diseño está muy cuidado y es muy agradable a la vista. He elegido además montarlo con KDE en vez de Gnome que utilizaba con Ubuntu.
Uno de los problemas que tenía con Ubuntu eran las peliculas de youtube, se colgaban, era incomodo el manejo del reproductor, y estaba ya un poco mosqueado. Y como lo bonito de Linux es que tiene muchos "sabores" y tus datos no se pierden al instalar otro, los programas son facilisimos de volver a instalar... vamos que no te supone un parón cambiar de sistema operativo. ¿Que mas quiero?.
OpenSuse se muestra más ligero en mi ordenador, el plugin de flash se ha instalado desde el repositorio sin problemas y los videos de youtube se ven perfectamente y se cargan desde el principio, sin parones, sin cuelgues... muy bien, como debe de funcionar.

¿Tu tambien quieres beneficiarte? Descargate una version LIVE de cualquier distribución Linux y pruebalo, muchos de los programas que necesitas estan instalados. Más adelante podrás hacer una partición en tu disco duro e instalalo con selección del sistema operativo con el que arrancará "Windoze" o Linux... al final solo arrancarás con Linux.
Linux tiene infinidad de programas, incluso que hacen lo mismo y puedes elegir el que mejor se ajuste a tus necesidades. Los programas son libres, puedes bajarlos tranquilamente de internet, con utilizarlos no estás pirateando nada. No has de pagar por utilizarlos.
Yo me pregunto muchas veces ¿porque piratear programas del windoze si con Linux estoy legal? Además, funcionan de maravilla, importan perfectamente los documentos de la "offize".

En los "Enlaces" tienes el logo de OpenSUSE... ¡ Pruébalo !.