El mayor evento de tecnología y desarrollo organizado anualmente por Google está a punto de comenzar. Los próximos 25 y 26 de junio se celebra Google I/O 2014 en San Francisco. Durante este encuentro se hablarán y experimentarán todo tipo de temas relacionados con el desarrollo de aplicaciones, desde principios y técnicas de diseño, hasta las últimas implementaciones y herramientas para desarrolladores pasando por productos y estrategias pensadas para facilitar la distribución de tu app.
Si eres de los que asistirá en persona, podrás interactuar en el Sandbox, donde los partners mostrarán demos de aplicaciones construidas sobre las mejores tecnologías Google y en open source, y donde además podrás hablar de tú a tú y en pequeños grupos con Googlers.
Si, por el contrario, eres de los que estará siguiendo el Gooogle I/O 2014 remotamente, no te preocupes porque podrás vivir la magia igualmente en cualquier lugar del mundo. ¿Cómo? Participando en un evento I/O Extended. Este tipo de eventos incluyen todo, desde la retransmisión en directo de las sesiones del Google I/O, hasta sesiones con portavoces locales y hackatons. En la plataforma online de  I/O Extended podrás ver los eventos que se van a llevar a cabo en la región. Si quieres involucrarte de forma más activa, conviértete en organizador de un evento Google I/O Extended. Consulta la guía para convertirte en organizador e inscribe tu evento en la web de Google  I/O Extended.
¡Bloquea tu agenda y prepárate para disfrutar de toda la tecnología de Google!





















Google App Engine permite escalar aplicaciones y es por ello que en ZupCat desarrollamos nuestros juegos masivos free-to-play sobre esta plataforma. En esta ocasión les contaremos cómo realizamos nuestros procesamiento batch.


Para darles una idea de volumen que nuestros juegos alcanza, tenemos tablas con 270 millones de registros y no es raro tener requerimientos que impliquen recorrer cada uno de ellos para realizar operaciones como reactivación de usuarios o generación de rankings.
Procesar un registro en un proceso batch lleva los siguientes pasos obligatorios:
  1. Leer el registro de entrada
  2. Ejecutar queries adicionales en función del registro de entrada
  3. Correr ciertas líneas de código
  4. Efectuar operaciones de escritura relacionadas al registro de entrada


Imaginen ejecutar estos 4 pasos 270 millones de veces durante varias veces al día. Si procesar un registro lleva 1 segundo, todo el proceso demoraría ¡¡3125 días!!

MapReduce es un modelo de programación destinado a procesar grandes cantidades de datos en paralelo y de manera distribuida sobre un cluster. Se basa en partir el total de registros a procesar en grupos con cantidades similares de registros. Cada grupo va a ser procesado en paralelo de manera distribuida.

Ese procesamiento comienza por una fase llamada Map que se ocupa de filtrar, seleccionar, contar u ordenar un conjunto de registros.
El resultado de la fase Map, que en general es menor al grupo original de registros, es procesado en una fase posterior llamada Reduce. Esta fase también corre en paralelo y en general sumariza los resultados de la fase Map.


En general un programador necesita implementar código en Map y Reduce mientras que el framework se ocupa de correr las tareas en paralelo, administrar la comunicación entre los procesos, transmitir datos y proveer redundancia y tolerancia a fallos.

mapreduce_mapshuffle.png


Es posible utilizar este modelo en Google App Engine integrando el proyecto open source llamado appengine-mapreduce y contar con esta estrategia de procesamiento.


Screen Shot 2014-05-03 at 17.22.06.png


Esta captura de un proceso real muestra como casi 7000 registros fueron procesados a una promedio de 84 por segundo en 50 procesos en paralelo. Las barras amarillas muestran como claramente el proceso fue dividido en 50 trabajadores paralelos.

Es importante notar que 50 trabajadores es un número configurable en relación a velocidad contra el costo de procesamiento que estamos dispuestos a pagar. Es decir, podemos reducir linealmente el tiempo que demora un proceso aumentando la cantidad de trabajadores involucrados en Map Reduce. Esto se logra sin tocar una sola línea de código sino solo configurando los parámetros del proceso.

Este post ha sido escrito por Hernán Liendo, Google Developer Expert en Cloud Computing, profesor universitario y co- fundador y CTO de ZupCat donde coordina los esfuerzos de ingeniería para desarrollar juegos masivos free-to-play.









Hace algún tiempo los sitios web y aplicaciones requerían sus propios nombres de usuarios y contraseñas, lo que generó una explosión de logins y, con ello, varios efectos negativos. Por un lado, muchos utilizamos el mismo usuario y clave en todas las plataformas, lo que se convirtió en un problema de seguridad; ya que una vez se encuentran las claves de un sitio, el más vulnerable, se tiene, potencialmente, acceso a todos los demás. Por el otro, para evitar repetir claves, teníamos que aprender una gran cantidad de contraseñas y terminamos usando las más fáciles. Esto nos convierte en un blanco fácil de un ataque de diccionario o algún otro mecanismo de fuerza bruta.


Para aliviar estos problemas, nacieron estrategias que tercerizan la autorización. Un ejemplo de ellas es OAuth.

OAuth2 es un estándar abierto para autorización, que permite a un tercero el uso de los recursos propios de un usuario (en un servicio) en el nombre de éste, protegiendo la identidad del usuario, y restringiendo el acceso únicamente a lo que se necesita. Este estándar está diseñado para trabajar específicamente sobre el protocolo HTTP, y esencialmente lo que hace es generar tokens de acceso a un cliente con la aprobación de dueño de los recursos.

Esta federación de autorización nos facilita, como usuarios, a no tener que crear y recordar cientos de nombres de usuario y contraseñas; y como desarrolladores, a poder acceder a los datos de un usuario y a establecer un esquema de autenticación en pocas líneas. También ofrece mayor seguridad y transparencia, al establecer los alcances específicos de la aplicación que estamos integrando.

Más allá de la autorización, Google+ Sign-In

Hoy, con Google+ Sign-In, puedes permitir a tus usuarios iniciar sesión con las mismas credenciales que utilizan cada día en Google y con la misma protección al inicio de sesión, incluyendo la verificación en dos pasos. Es más fácil para los usuarios iniciar sesión con su cuenta de Google existente que crear y recordar los detalles de una cuenta nueva.