Transacciones en Grails: cómo aplicar Commit y Rollback

Las bases de datos se operan mediante sentencias, generalmente SQL, si la base de datos es relacional. Una sentencia es una operación que se aplica sobre uno o varios registros, y dicha sentencia puede tener éxito (modificándose la base de datos) o no (no se modifica la base de datos).

A diferencia de una sentencia, una transacción es un conjunto de sentencias diferentes que se envían a una base de datos y que se ejecutan en lote. Pero cualquiera de las sentencias pueden fallar, y es posible que no convenga que si falla una se guarde el resto.

Para evitar que esto ocurra, se suelen utilizar las sentencias begin transaction para indicar el inicio de la transacción, commit para confirmar los cambios si todo ha ido bien, y rollback, para descartar todos los cambios si se ha producido algún error.

Pero en Grails no existen estas sentencias, así que en este post voy a mostrar cómo podemos realizar una transacción que se confirme si todo va bien, o se rechace si hay algún problema.

Sigue leyendo

Cursos online gratuitos: Python y Ruby

Iniciarse con un nuevo lenguaje de programación puede ser una tarea costosa que requiere de nuestro tiempo libre e incluso de una inversión monetaria inicial (comprar un “libraco”), por lo que echa para atrás a más de uno.

Pero imaginemos que en lugar de ser así, aprender un nuevo lenguaje fuera un juego: la cosa cambiaría bastante, y mucha gente que a priori no se embarcaría en tan magna tarea lo haría ahora con ganas.

Ésa es la idea que han tomado los chicos de codecademy y codeschool al proponernos dos magníficos cursos introductorios a Python y a Ruby, en los que podremos iniciarnos en la sintaxis y control de flujo básicos de estos lenguajes, haciendo los ejercicios que nos proponen en el mismo navegador, como si de niveles de un juego se tratara, y viendo nuestros resultados instantáneamente.

Code Cademy:Python
Code School: Try Ruby

Tooltips con flecha o bocadillos y triángulos en CSS

Un efecto muy vistoso que podemos obtener al desplazarnos con el ratón sobre una página web son los tooltips o mensajitos informativos con una flecha que aparecen al situarnos sobre un elemento, como podemos ver en la imagen del post. En esta entrada (después del salto) voy a explicar cómo crear el efecto de triángulos CSS para representar a la flecha del tooltip.

Sigue leyendo

Aprende GIT en 15 minutos

GIT es un sistema de control de versiones diseñado por Linus Torvalds que está pasando por un muy buen momento: cualquier desarrollador que se precie debería conocerlo o utilizarlo, hasta el punto que muchas ofertas de empleo piden que el solicitante incluya su repositorio público de proyectos para poder echarles un vistazo.

GIT se ha popularizado gracias a GitHub, un servicio de hosting de repositorios que proporciona desde cuentas públicas gratuítas hasta cuentas privadas de pago, según el número de repositorios. Si poseemos una cuenta pública gratuita el contenido de los repositorios podrá ser accedido por todo el mundo, pero podremos seleccionar quién puede subir contenido, mientras que las cuentas de pago son privadas.

Aunque existen GUI’s (interfaces gráficas de usuario) para trabajar con GIT (disponemos de ejemplos en la página de GitHub), es posible trabajar con más agilidad desde la línea de comandos, pero ello puede echar para atrás a más de uno; por eso, GitHub junto con Code School, han desarrollado un simulador de GIT para practicar  los comandos y dominar este CVS (sistema de control de versiones).

Recopilación de las diapositivas de SpainJS 2012

Del 5 al 7 de Julio se ha celebrado en el parque del Retiro de Madrid el evento SpainJS, una conferencia de desarrolladores centrada en el ecosistema JavaScript, y de enfoque internacional, ya que muchos de los ponentes y asistentes eran de habla inglesa.

Como no he podido ir y el tema me interesa, en éste post intento recopilar los enlaces a todas las slides o diapositivas de las charlas, y lo iré actualizando según éstas estén disponibles, aunque también se pueden consultar aquí.

La ansiada lista, tras el salto.

Sigue leyendo

Cropp.me, retoca imágenes desde el navegador

Cropp.me es un servicio que permite redimensionar y recortar imágenes desde el mismo navegador. Es tan sencillo como subir la imagen que deseamos retocar, seleccionar los tamaños que necesitemos (los más comunes están preseleccionados, aunque también podemos seleccionar un tamaño personalizado), aplicar un recorte a la imagen original si nos hace falta, y finalmente descargarnos un zip con la imagen recortada en cada uno de los tamaños que hayamos especificado.

Si bien es cierto que es bastante sencillo hacer esto mismo con Paint o cualquier otra alternativa, no debemos despreciar la utilidad que nos puede brindar esta web, y que seguro que más de uno sabrá sacarle beneficio.

Visto en The Next Web