viernes, 24 de julio de 2015

Tareas programadas Quartz plugin


Quartz plugin permite a nuestras aplicaciones Grails tener la capacidad de programar tareas que se ejecutaran utilizando un intervalo especifico de tiempo o bien mediante un cron.

Cron

En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos (χρόνος) que significa "tiempo". 

jueves, 23 de julio de 2015

Como enviar un email en Grails usando mail plugin


Actualmente se hace requisito interactuar con el usuario de nuestra aplicación mediante el uso de correo electrónico, desde algo tan simple como enviarle un recordatorio hasta ofrecerle la posibilidad de recuperar su contraseña si por algún motivo la ha olvidado, es por eso que en las siguientes líneas mostraremos como enviar correos electrónicos desde nuestra aplicación grails con la ayuda de mail plugin. 

Instalando Mail Plugin

Para instalar mail plugin únicamente basta con agregar la siguiente línea en la sección plugins de nuestro BuildConfig.groovy

compile ":mail:1.0.7"


miércoles, 27 de mayo de 2015

ReCaptcha en Grails con “ReCaptcha and Mailhide support for Grails”




¿Qué es ReCaptcha? 


Wiky: Recaptcha o reCAPTCHA es una extensión de la prueba Captcha que se utiliza para reconocer texto presente en imágenes. Emplea por tanto la prueba desafío-respuesta utilizada en computación para determinar cuándo el usuario es o no humano para, a su vez, mejorar la digitalización de textos. Recaptcha se basa en el hecho de que para un ser humano puede ser simple determinar el texto presente en una imagen cuando para una máquina esta tarea resulta en ocasiones demasiado compleja.

¿Qué es Captcha? 

Wiky: Captcha o CAPTCHA son las siglas de Completely Automated Public Turing test to tell Computers and Humans Apart (prueba de Turing completamente automática y pública para diferenciar computadoras de humanos).

¿Cuál es el principio de Recaptcha? 
Wiki: Cuando se digitaliza un documento impreso se toman fotografías del mismo y esas fotografías se convierten a texto empleando sistemas OCR. Sin embargo, ocurre que hay palabras que presentan dificultades para ser reconocidas automáticamente: aquellas que contienen letras deformes, manchas producto de defectos en la impresión del papel, páginas con polvo, entre otras. Estas palabras pueden ser identificadas por personas de manera mucho más confiable que por un sistema OCR computarizado. Recaptcha emplea esta facilidad del ser humano, para así lograr identificar un ser un humano de un programa de computadora.

jueves, 14 de mayo de 2015

Mi experiencia con Uber en el Distrito Federal





¿Qué es Uber
Según Wiki: Uber es una empresa internacional que proporciona a sus clientes una red de transporte, a través de su software de aplicación móvil, que conecta los pasajeros con los conductores de vehículos registrados en su servicio, los cuales ofrecen un servicio de transporte. 

Según mi experiencia: Una plataforma que me permite pedir un taxi seguro y tenerlo en menos de 10 a un precio justo y con mejor servicio que los taxis tradicionales.

A continuación hablare de los beneficios y las ventajas que le veo al servicio a partir de mi propia experiencia y punto de vista con base en las preguntas que junto con otros compañeros tuvimos la oportunidad de realizar al conductor de la unidad donde nos toco viajar.


Un poco de preámbulo

Como casi todas las empresas en el Distrito Federal, donde trabajo ofrecen el servicio de taxi a muy bajo costo para los empleados y esto se debe principalmente a que la empresa tiene un convenio con la empresa transportista que es más o menos bajo costo a cambio de utilizarlos como taxis de planta, sin embargo no daré el nombre de la empresa (le llamaremos Elite) pero se describen como: “un servicio ejecutivo, eficiente y profesional” de lo cual ya hablaremos después, el caso es que nos encontrábamos laborando arduamente cuando decidimos pedir una unidad con “Elite“ eran aproximadamente las 6:30 pm y a pesar de que dicha empresa tiene 3 números para ordenar un taxi la verdad es que en dos de ellos ni siquiera entraba y en el tercer numero simplemente enviaba a buzón, como aún era temprano decidimos esperar y llamar más tarde (puesto que en el df es hora pico y aparte comenzaba a lloviznar y la ciudad se vuelve un caos) estuvimos intentando de las 7:00 pm hasta casi las 9:30 sin obtener respuesta alguna.

lunes, 11 de mayo de 2015

Ajax Autocomplete en Grails


En esta ocasión voy a mostrar un pequeño ejemplo de un campo que nos va mostrando sugerencias de valores validos de acuerdo a lo que el usuario va escribiendo, un caso típico del uso de estos campos es para introducir la ubicación.


jueves, 23 de abril de 2015

Login con Facebook parte 2


Continuando con el tutorial para realizar un login con las credenciales de Facebook desde mi aplicación empezaremos mencionando los siguientes requisitos:

1.- Proyecto resultante del ejercicio: Configurar Spring Security Core Plugin 2.0

2.- Tener configurada nuestra cuenta de Facebook como se muestra en el tema: Login con Facebook pate 1

Para que se vea más ilustrativo el tutorial están son mis vistas: a una se puede acceder sin estar logueado y la otra se puede acceder únicamente con un usuario logueado con el rol: “ROLE_USER” y "ROLE_FACEBOOK"

Así se ve la vista sin seguridad:



Así se ve la vista con seguridad:



martes, 7 de abril de 2015

Como sobrevivir al trabajo de desarrollador en 5 pasos


Este post lo voy a dirigir a todas aquellas personas, que como yo en algún momento empiezan a trabajar de desarrolladores, ya sea por su propia cuenta o alguna empresa o consultoría, y les quiero compartir los pasos para sobrevivir a este ritmo de trabajo, a la presión, pero sobre todo orientarlos sobre qué hacer cuando nos piden que utilicemos alguna herramienta que no dominamos o bien que ni siquiera conocemos, yo les voy a compartir lo que hago cuando me topo con esta situación.

1.- Investigar ¿qué es?, o ¿qué hace? la herramienta/tecnología que me solicitaron: Cuando te topes con que te dicen vas a desarrollar en este IDE, o vas a utilizar tal herramienta, o simplemente te topas con alguna tecnología que no conoces, lo primero es investigar todo lo que se pueda sobre dicha tecnología/herramienta, para eso tenemos wiki pedía, google y cientos de bloggers que como este intentan ayudar al desarrollador en su andar diario.

jueves, 26 de marzo de 2015

Tips: println vs log.debug


El titulo de esta entrada puede ser algo raro sin embargo la mayoría de nosotros estamos acostumbrados a debuguear con el famosísimo “println” antes de usar “el debugger”, si ese es tu caso este pequeño tip te interesa.




Como podemos observar en la imagen anterior hay dos líneas cuyo contenido es exactamente el mismo “el valor recibido es..” pero podemos notar que la instrucción en un caso es el famosísimo “println” y en la otra tenemos un log.debug, si nosotros lanzamos nuestra aplicación y desde web entramos al index del controlador Ejemplo, únicamente veremos la salida de consola “el valor recibido es”, pero ¿por qué si yo puse dos líneas? Esto es porque la configuración del log está establecida por defaul a error.

martes, 24 de marzo de 2015

Login con Facebook parte 1

En estos tiempos son cada vez más los sitios web en los que te permiten realizar la autenticación por medio de redes sociales siendo Facebook la más usada para tal fin, en este pequeño tutorial vamos a realizar la conexión para poder autenticarnos a una aplicación externa con nuestra cuenta de Facebook.

Al momento de la realización del tutorial ocupamos las siguientes versiones: Grails 2.4.4 y Java 1.7

Crearemos un nuevo proyecto exclusivamente para este ejemplo, en el, lo primero que debemos realizar es la instalación y configuración de Spring Security Core, una opción es como lo muestro aquí (Configurar Spring Security Core Plugin).


Este tutorial lo vamos a dividir en dos partes, esta primera, la cual consta de las configuraciones que debemos realizar en Facebook para dejar “lista” una aplicación para poder loguearnos y la segunda que tratara sobre el código en nuestra aplicación para enlazar el formulario de login de Facebook.

Creando una nueva aplicación en Facebook

1.- Entrar a la url https://developers.facebook.com, la cual al momento de realizar este tutorial muestra lo siguiente:



jueves, 19 de marzo de 2015

Tips: Enviar mensajes de error desde “controller” en Grails


En algún momento de nuestra aplicación vamos a tener la necesidad de enviar mensajes de error a nuestras pantallas directamente desde nuestro controlador, a continuación les dejo la forma de hacerlo.



jueves, 12 de marzo de 2015

Tips Spring Security Core Plugin 2.0 en Grails



Durante las pruebas que realice después de la instalación del plugin me di cuenta de algunas cosas que dicho plugin incorpora en esta nueva versión, las cuales son:


Error al poner directamente la URL para logout 
Esto es porque ahora por defecto solo las peticiones POST pueden desencadenar un cierre de sesión, para permitir el cierre por acceso GET debemos agregar la siguiente línea a nuestro archivo "Config.groovy"

grails.plugin.springsecurity.logout.postOnly = false

Mensaje de error de Hibernate "Table "USUARIO_ROL" not found; SQL statement" 
Según mencionan en StackOverflow es un bug que no causa ningún problema, aquí explican como quitar el mensaje.


Ahora el algoritmo de encriptación por default es: bcrypt.
De acuerdo a la documentación oficial este nuevo algoritmo proporciona mucha mas seguridad sin embargo podemos cambiarlo agregando la siguiente línea al archivo "Config.groovy"

grails.plugin.springsecurity.password.algorithm='MD5'

miércoles, 4 de marzo de 2015

Configurar Spring Security Core Plugin 2.0 en Grails



Existen tres formas de configurar el plugin de Spring Security: Annotation, RequestMap y IntercepUrlMap, en tutoriales anteriores describí la forma de hacerlo mediante RequestMap y en esta ocasión veremos como configurarlo mediante Anotaciones, además de que usaremos la versión 2.0 que nos proporciona un script que nos ayudará a crear nuestra configuración de manera rápida y casi automática, asumimos que tenemos un proyecto Grails recién creado, las versiones que utilice al momento de este tutorial son: Grails 2.4.4 y Java 1.7.