martes, 22 de diciembre de 2009

Web Sockets: El TCP de la Web

Desde la versión 4.0.249.0 de Google Chrome tenemos disponible los Web Sockets. Los Web Sockets son la siguiente generación en la tecnología de comunicación bidireccional para las aplicaciones web que está siendo estandarizada como parte del documento Web Applications 1.0.

Hasta hace poco, la comunicación para las aplicaciones web era implementada por los desarrolladores usando XMLHttpRequest. La comunicación bidireccional usando esta tecnología, forzaba al programador a crear una complejidad innecesaria en el lado del servidor. Web Sockets nos proporciona una comunicación bidireccional real con el navegador, solucionando este problema ya que, una vez establecida la conexión, podemos enviar datos desde el navegador al servidor llamando al método send(), y recibir datos desde el servidor implementando el evento onmessage.


if ("WebSocket" in window) {
var ws = new WebSocket("ws://example.com/service");
ws.onopen = function() {
// Web Socket is connected.
// You can send data by send()
// method.ws.send("message to send"); ....
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
};
ws.onclose = function() {
// websocket is closed.
};
}
else
{
// the browser doesn't support WebSocket.
}


Como parte de los Web Sockets, también se ha desarrollado un nuevo protocolo "Web Sockets Protocol", que el navegador usará para comunicarse con los servidores.

En el código de ejemplo, verás una URI diferente usada para utilizar el nuevo protocolo.

ws://example.com/service

Y te preguntarás, para qué otro protocolo de comunicación si podemos usar los más que probados TCP o HTTP. Pues sencillo, el protocolo no puede ser TCP porque necesitamos mantener el mismo modelo de seguridad proporcionado en el origen. Tampoco puede ser HTTP porque el tráfico manejado difiere del modelo petición-respuesta de éste. Además, el uso del nuevo protocolo también debería de proporcionar un menor uso del ancho de banda, ya que no es necesario el envío de cabeceras una vez establecida la conexión inicial.

Para poder usar la nueva API, el protocolo, hacer uso de un modelo de programación más sencillo y obtener un tráfico de red más eficiente, necesitamos una nueva implementación del servidor. Google ha desarrollado una extensión para Apache, llamada pywebsocket, que puede ejecutarse como módulo o incluso como servidor.

Desde Google nos piden ayuda para que reportemos cualquier sugerencia, ya que tanto la API como el protocolo siguen en diseño y en discusión en la IETF.

martes, 15 de diciembre de 2009

Herramientas para desarrolladores en Google Chrome

Si te dedicas al desarrollo o explotación de páginas web y aplicaciones online, debes probar las herramientas de desarrollo de Google Chrome. Son el complemento ideal para ayudarte en el diagnóstico y resolución de los problemas de carga, ejecución, presentación, y en general, todas las incidencias que suelen aparecer durante el desarrollo y puesta en producción de tus proyectos en internet.

La plataforma te proporciona un entorno integrado para depurar, optimizar y comprender realmente el comportamiento de tu página web o aplicación online. Las herramientas se han desarrollado parcialmente a través del proyecto de código abierto WebKit, donde éstas mismas herramientas se conocen como Web Inspector.

Si quieres disponer de la última versión de las herramientas de desarrollo, debes instalarte la versión de Google Chrome especial para desarrolladores que puedes encontrar en el canal del desarrollador. En dicho canal, puedes encontrar las tres versiones del navegador disponibles:
  • Estable: Es la versión estándar que utilizan la gran mayoría de los usuarios. Es la más sólida y probada. Dispone de algunas herramientas de desarrollo.
  • Beta: Es la versión que dispone de las últimas actualizaciones estables del producto. Se actualiza con más frecuencia que la estable. Dispone de herramientas avanzadas como la gestión de extensiones.
  • Desarrollo: Es la versión más avanzada, pero también la más inestable. Dispone de todas la herramientas de desarrollo. Aquí se prueban todas las opciones que llegarán a la versión estable después de estar un tiempo en la beta.
En el siguiente conjunto de vídeos, puedes ver algunas de las características de las herramientas disponibles:



Como has podido ver en los vídeos, las herramientas están organizadas alrededor de las tareas que puedes realizar con cada una de ellas, y puedes acceder a cada opción a través de los iconos que se encuentran en la parte superior de la ventana.

Cada icono de la barra de tareas te permite trabajar con un tipo especial de página o bloque de información de una aplicación, así como elementos DOM, recursos, bloques de código javascript, etc. También dispones de opciones de búsqueda dentro del panel para encontrar propiedades o valores entre todos los elementos.

Lo mejor es que empieces a probar todas ellas y nos cuentes tus impresiones sobre la utilidad de las mismas...

lunes, 14 de diciembre de 2009

Google goggles te va a sorprender

La carrera por hacer de nuestro móvil la herramienta básica de navegación en internet no ha hecho más que comenzar. Este inicio tardío se ha debido a varios factores: la baja calidad y alto coste de la tecnología de acceso, la escasez de software realmente útil, un precio poco asequible para el usuario final y pocas plataformas de desarrollo compitiendo en el mercado.

La presencia de BlackBerry, Windows Mobile, Nokia, etc. no parecía hacer despegar un mercado que, según todos los análisis, debía crecer más rápidamente. El hito que marcó el punto de inflexión en el mercado de los smartphones, fue la aparición de un nuevo actor con gran prestigio entre los usuarios, Apple.

La llegada de Apple con su fantástico iPhone y más tarde de Google con Android, así como la disponibilidad de una tecnología de acceso más rápida y a unos precios más asequibles, han marcado el inicio de una trepidante carrera que, no sé a ti, pero a nosotros, nos tiene fascinados.

Aparte de las muchas aplicaciones que hoy en día ya puedes instalar gratis (o casi) en tu propio smartphone, a diario aparecen nuevas utilidades que buscan hacerte la vida más fácil. De entre todas ellas, hay algunas que merecen especial atención, por la tecnología que implementan y la funcionalidad que ofrecen. Es el caso de Google goggles.



Google goggles, es un software gratuito para tu móvil Android que te permite realizar búsquedas visuales. Si te parece que suena bien, verás cuando lo pruebes.

En la aplicación encontramos dos funcionalidades de búsqueda, una mediante fotos a objetos y el posterior procesamiento para devolver los resultados, y otra, enfocando con la cámara un emplazamiento determinado para identificar de forma interactiva lugares y empresas. Ambos procesos son casi instantáneos y nos proporcionan los resultados sin tener que teclear, hablar o realizar interacción alguna con el terminal.

En la modalidad de búsqueda mediante fotografías a objetos, la técnica consiste en realizar simplemente una foto al objeto del que queremos obtener información. El software escanea la imagen y realiza de forma automática una consulta al motor de búsqueda, teniendo en cuenta varios parámetros. Una vez ha procesado los resultados, obtenemos la lista completa en nuestro teléfono, incluyendo enlaces, imágenes, etc. Y todo esto, con unos tiempos de respuesta bastante aceptables.

Algunos ejemplos de distintos tipos de objetos que podemos fotografiar:
Como puedes suponer, la calidad de la cámara influye en la precisión de la búsqueda, por lo que podemos esperar importantes mejoras con la nueva generación de móviles equipados con cámaras de alta resolución. Imagina poder reconocer caras, vehículos, ... las posibilidades son infinitas.

En la modalidad de enfoque interactivo, la técnica consiste en realizar una panorámica del lugar donde nos encontramos. De forma automática, nos aparecen en la parte inferior de la pantalla unas etiquetas que muestran el nombre del edificio o negocio que estamos enfocando, ofreciendo la posibilidad de ir directamente al sitio web de la empresa pulsando en la pantalla. El software obtiene la información apoyándose en la información del GPS y ajustándola con la brújula, para obtener el lugar y dirección de enfoque que realizamos. Sorprende el bajo tiempo de respuesta a cambios de orientación, siendo el resultado  bastante impresionante por su rapidez y precisión.

Y todo esto, gratis. Me gustaría ver de lo que es capaz el software con cámaras más avanzadas, y capacidad de reconocimiento facial. El concepto asusta un poco y  promete mucho.

jueves, 10 de diciembre de 2009

Disponible Google Chrome (beta) para Mac y Linux


Si eres un usuario de Mac (OS X Intel) o Linux estás de enhorabuena. Google ha lanzado oficialmente la versión beta de su navegador Chrome para estos dos sistemas operativos. Ya puedes disfrutar del navegador más rápido y estable en estas dos plataformas, desde las que únicamente podíamos usarlo, hasta ahora, usando Chromium OS.

Google no se ha olvidado de los usuarios de Windows en este lanzamiento, y para ellos también existe un regalo, ya que el anuncio trae consigo además las esperadas extensiones. Aunque a los usuarios de Mac les tocará esperar de nuevo algo más, ya que el módulo para este sistema operativo está todavía en desarrollo.

Pero, ¿qué son las extensiones?

Cuando en Septiembre de 2008 lanzaron la primera versión de Google Chrome, los ingenieros ya sabían que deberían implementar una manera de personalizar el navegador, que fuera fácil de crear y de mantener, sin perjudicar la velocidad y estabilidad del navegador. Las extensiones vienen para cumplir con esas metas y con una de las solicitudes más reclamadas por la comunidad de internautas.

Si eres usuario de Windows o Linux, ¿a qué esperas para probar y comentarnos qué te parecen la más de 300 extensiones que ya están disponibles?

viernes, 4 de diciembre de 2009

Google Public DNS, otro pequeño paso para mejorar la Red

Los chicos de Google siguen intentando mejorar la velocidad, seguridad y fiabilidad en la red, para proporcionar al usuario una experiencia rápida, segura y fiable. Esta vez le ha tocado al servicio DNS (Domain Name System), o lo que viene a ser lo mismo en la lengua de Cervantes, Sistema de Nombres de Dominio.

Vamos a intertar explicarte sencillamente qué hace este servicio por nosotros y cómo los ingenieros de Google están dándole una vuelta de tuerca más, para cumplir con sus premisas de velocidad, seguridad y fiabilidad.

El DNS es una parte crucial en Internet, ya que es el sistema encargado de convertir las direcciones de texto que usamos para recordar más fácilmente las páginas web, en la dirección numérica que necesita el protocolo de Internet para acceder a la información contenida en la página. Esta operación la realizamos normalmente cientos de veces al día, ya que algunas páginas web complejas tienen que realizar la búsqueda más de una vez antes de empezar a cargarse.

¿Y qué nos puede aportar como usuarios Google Public DNS?
  • Rendimiento: muchos proveedores de DNS no tienen los suficientes recursos para soportar grandes volúmenes de peticiones y de almacenaje de caché. En Google Public DNS utilizan un balanceador de carga entre sus múltiples servidores y un sistema asíncrono de caché para mantener siempre las direcciones en memoria y en caso de TTL (time to live) volver a resolver asíncronamente, así la respuesta se proporciona siempre desde la caché, mejorando así el rendimiento.
  • Seguridad: los DNS son vulnerables a varios tipos de ataques que pueden llegar a "envenenar" la caché y enviar a sus usuarios a sitios maliciosos. También son el blanco para ejecutar ataque de DoS (denial of service), ataques de denegación de servicio sobre otros sistemas. En Google se defienden de estos ataques comparando las respuestas con otros DNS y asegurándose de que sus servidores no son usados para lanzar ataques DoS, para ello utilizan la entropía en las respuestas y limitando el tráfico hacia el cliente, entre otras medidas.
  • Resultados correctos: Google Public DNS responderá correctamente a las peticiones según el estandar para los DNS. En algunos casos, la respuesta correcta será un error o el dominio por el que preguntas no existe, en vez de responder con otro dominio distintos como hacen algunos DNS públicos e ISP. Google Public DNS no filtrará, bloqueará ni redirigirá a los usuarios.
Si te interesa probarlo, te proporcionamos las direcciones IP del servicio. Para facilitarte aún más las cosas, Google ha establecido unas direcciones IP para el servicio que son muy fáciles de recordar:
  • 8.8.8.8 para el DNS primario
  • 8.8.4.4 para el DNS secundario
En caso de problemas también han dejado algunos número de teléfono
  • 877-590-4367 para Estados Unidos
  • 770-200-1201 para el Resto del Mundo
Si te decides a probarlo esperamos que nos cuentes qué tal te va la navegación y si has notado incremento en la velocidad de la misma.

jueves, 3 de diciembre de 2009

Google Gears ha muerto, larga vida a HTML5

Hoy es un día triste, Google Gears nos ha dejado.

Nos hemos encontrado con la noticia de que Google permitirá que su herramienta para uso offline de aplicaciones web, vaya desapareciendo poco a poco mientras se evoluciona hacia HTML 5.0., y hemos querido compartirlo contigo.

La noticia ha surgido en una entrevista proporcionada por el ingeniero jefe de Google Gears, Linus Upson. Las palabras con las que nos ha comunicado la pérdida han sido muy conmovedoras: el tiempo de Gears ha sido, pero ya ha pasado. Google Gears será mantenido por compatibilidad, para que todo lo que esté basado en su tecnología siga funcionando, pero no será mejorado más.

Como en todas las despedidas, vamos a recordar algo de la historia Google Gears y todo lo bueno que nos dejó.

Google Gears se anunció originalmente en mayo de 2007, como herramienta para que las aplicaciones web de Google trabajaran offline y así plantarle cara a rivales como Microsoft Office o Lotus Notes. Tiempo después se publicó bajo licencia BSD para que todo el mundo pudiera crear aplicaciones más potentes añadiendo algunas capas al navegador.

Google Gears fue una aplicación que se instalaba como una extensión del navegador, y que agregaba una API que permitía a programas en JavaScript interacciones con los componentes instalados localmente por Gears.

Los componentes principales que eran instalados por Gears fueron:
  • Un servidor web local encargado de cachear y servir HTML, JavaScript, imágenes, etc.
  • Una base de datos para almacenar información localmente.
  • Un controlador encargado de sincronizar la información en segundo plano.
  • Posteriormente se agregó un componente de Geolocalización.
Básicamente esos fueron sus logros y proezas.

Y como suele decirse, en un refrán muy conocido: "A rey muerto, rey puesto".
Ya tenemos un sustituto: HTML 5.0.

Pero dejemos esta entrada para elogiar y recordar a Google Gears y no la enturbiemos hablando de su sucesor, que para hablar sobre ello ya tendremos otras entradas.