La semana pasada, nuestros compañeros de Mountain View tuvieron la suerte de contar con la presencia de John Resig, ingeniero de Mozilla y autor del libro Pro JavaScript Techniques, y de conocer de primera mano sus investigaciones en torno al mundo de JavaScript. Podéis consultar la presentación en este enlace: http://jquery.com
Además de ser “embajador” de Mozilla, John es el creador de jQuery y Dromaeo., y miembro de the Firebug Working Group. Ahora mismo está trabajando en Secrets of the JavaScript Ninja, que saldrá a la luz este año.
En su charla, John comienza destacando por qué el rendimiento mejorará con la nueva generación de navegadores, gracias a avances en motores de JavaScript y a nuevas funcionalidades. Comenta en profundidad el rendimiento de JavaScript, tocando temas como tracing, just-in-time compilation, y benchmarks (SunSpider, Dromaeo, and V8 benchmark). Resig finalizó su intervención con una colección de funcionalidades avanzadas en las áreas DOM, estilo, datos y medidas.
La verdad es que fueron muchos temas los que se trataron en una hora. El contenido de la conferencia se vio enriquecido gracias a las preguntas de la audiencia. En un momento determinado, uno de los miembros del equipo de Google Chrome habla en detalle sobre cómo parking funciona en v8.
Muchas gracias a John por compartir su trabajo y conocimientos con todos nosotros.
Lo mejor del código de software libre escrito en un lenguaje es que se puede exportar a otro similar de forma relativamente sencilla y, de golpe, resulta útil para una audiencia totalmente nueva. Y esto es lo que está pasando con nuestras librerías JavaScript / AS3 de código abierto para Google Maps. Y nos encanta. Aquí os presentamos algunas de las últimas migraciones:DragZoomControl: Este control personalizado permite al usuario arrastrar un rectángulo en el mapa para acercarse a una zona concreta, y a mi personalmente me resulta super útil porque casi siempre utilizo el portátil, de modo que no tengo un ratón con rueda para acercarme al mapa. Esta adaptación es cortesía de Brian Richardson. Podéis echar un vistazo a la demo y a la documentación.MarkerTracker: Esta clase permite realizar un "seguimiento" de los marcadores, de modo que cuando un marcador sale de la zona visible, aparece un marcador fantasma y una flecha que apunta a la dirección del marcador sobre el que se realiza el seguimiento. Para mapas que contienen un marcador principal, como un punto de interés, de origen o similar, esta función resulta especialmente útil para que los usuarios sepan volver al marcador inicial. Esta adaptación es cortesía de Michael Menzel. Podéis echar un vistazo a la demo y a la documentación.KMLParser: Las clases de parseo de KML, que eran una migración básica de la librería C++ libkml, ahora soportan estilos KML. Esta mejora es cortesía de Cecil Reid. Podéis echar un vistazo a la demo y a la documentación.Quiero aprovechar para dar las gracias a todos los programadores que nos ayudan a aumentar la librería. Si tú también tienes código que aportar y quieres contribuir, simplemente tienes que seguir los pasos que se describen en la wiki (en inglés) para hacerlo. Pamela Fox
Quiero aprovechar para dar las gracias a todos los programadores que nos ayudan a aumentar la librería. Si tú también tienes código que aportar y quieres contribuir, simplemente tienes que seguir los pasos que se describen en la wiki (en inglés) para hacerlo.
Tras un tiempo en silencio, nos hemos fijado como propósito de año nuevo mantener este blog activo y fresco. Así que iniciamos una nueva ronda de artículos relacionados con el mundo de la programación, comenzando con la traducción de una entrada que fue publicada recientemente en la versión inglesa de este blog.
Google siempre ha creído que una concienzuda iteración es la mejor forma de crear productos útiles para nuestros usuarios. Como parte de este proceso, siempre estamos buscando formas para que nuestros equipos se enfoquen en los productos que más impacto tienen.
Ahora mismo estamos en el proceso de migrar Jaiku a Google App Engine. Cuando el proceso haya finalizado, lanzaremos un nuevo proyecto de código abierto Jaiku Engine en Google Code bajo la licencia Apache. Aunque Google ya no desarrollará activamente el código base Jaiku, el servicio vivirá por sí mismo gracias a la dedicación y pasión de un grupo de Googlers voluntarios.
Con el proyecto de código abierto Jaiku Engine, las organizaciones, grupos y personas individuales podrán pasar sus servicios de microblogging y utilizarlos en Google App Engine. El nuevo Jaiku Engine incluirá apoyo para OAuth, así que estamos emocionamos ante la perspectiva de que haya desarrolladores que utilicen este código como un punto de inicio para crear una plataforma de microbloggine en código abierto, gratuito y disponible para todos.
Algunos de vosotros también estaréis familiarizados con Dodgeball.com, un servicio de networking social para móviles que permite que compartas tu ubicación con otros amigos a través de mensajes de texto. Hemos decidido parar Dodgeball.com en los próximos dos meses, después de los cuales el servicio ya no estará disponible. Comunicaremos el calendario final próximamente.
Por último, también hemos tomado la decisión de cerrar el Mashup Editor, actualmente disponible sólo en versión beta privada, a favor de una infraestructura más potente como es App Engine. Las aplicaciones existentes del Mashup Editor dejarán de recibir tráfico en unos seis meses, esperamos que os unáis a nuestro equipo en la excitante transición a App Engine.
Uno de los conceptos básicos que suelo explicar a los desarrolladores que son nuevos con el API de Google Maps es "geocoding": el proceso de convertir una dirección en un par de coordenadas de latitud/longitud. Casi el 99,9% de los programadores tienen que usar un "geocoder" para poner sus propios datos en el mapa, o para que los usuarios del mapa puedan ubicarse en él. Por suerte, ofrecemos tanto el servicio HTTP Geocoder para hacer "geocoding" en la parte del servidor, como la más reciente "clase GClientGeocoder para hacer "geocoding" en la parte del cliente.
Hoy os presento el concepto más avanzado de "reverse geocoding": el proceso de convertir un par de coordenadas de latitud/longitud a una dirección. Un porcentaje más pequeño (pero importante) de desarolladores querrán usar un "reverse geocoder" para que sus usuarios sepan la dirección de cualquier punto en el mapa, quizás para rellenar un formulario de forma mas rápida (¿por qué teclear cuando puedes hacer clic?). Para esos programadores ahora ofrecemos "address-level reverse geocoding" tanto para nuestro servicio de HTTP como para nuestra clase GClientGeocoder. Para que sea muy fácil de usar, el interfaz de "reverse geocoding" es casi el mismo que el de "forward geocoding" - la única diferencia es que se envía una combinación de lat/lng en vez de una dirección. Aquí os muestro un poco de código para hacer "client-side reverse geocoding":
geocoder.getLocations(latlng, function(addresses) { if(addresses.Status.code != 200) { alert("reverse geocoder failed to find an address for " + latlng.toUrlValue()); } else { var result = addresses.Placemark[0]; map.openInfoWindow(latlng, result.address); }});
Para ver una demostración del "reverse geocoder", visita Meetways, una página que combina Google AJAX Local Search API con nuestra API de Google Maps y un poquito de matemáticas. Esta página calcula el punto entre dos direcciones en el mapa, usa el reverse geocoder para averiguar la dirección de este punto, y entonces hace una búsqueda local cerca de la dirección para encontrar lugares que están a medio camino. Dado que "reverse geocoding" funciona en todos los lugares donde funciona el "forward geocoding", puedes reunirte con tus amigos en más de ">70 países (incluyendo España, claro).
Para ver una demostración un tanto ridiculo, visita este juego en cual tienes que hacer clic en el punto correcto para una dirección. Hay que saber mucho sobre el mundo para ganar en este juego... pero solamente hay que aprender JavaScript para usar el codigo. :)
Para mas información de este nuevo servicio, lee la documentación de referencia y los códigos de ejemplo. Nos encantará ver las diversas maneras en que los desarolladores usan el "reverse geocoder" - por favor, no dudes en poner un enlace a tu demo de "reverse geocoding" en el grupo. ¡Que lo disfrutéis!