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!
Chris Dibona ha sido el maestro de ceremonias del cierre de esta intensa jornada. Comenzó sorprendiéndonos a todos con las capacidades del teléfono equipado con Android y desarrollado junto a T Mobile. Explicarlo en un blog sería imposible: es incomparable con la experiencia de tenerlo en las manos.
Además, hizo uso de la nueva herramienta Moderator para seleccionar las preguntas más votadas de la jornada y responderlas en directo a todos los asistentes. Preguntas tan interesantes como “Cuándo estará Chrome disponible para Linux”, “Cuándo podré comprar en España un móvil equipado con Android” o “Dónde es la fiesta” o incluso sugerencias como “una GD Week”.
Laurence Fontinoy, por su parte, cerró la jornada agradeciendo a los asistentes y colaboradores de la jornada y haciendo una mención especial a Clara Rivera, quien ha organizado este evento al detalle.
Ya sabemos que no podemos vivir sin Internet pero pasamos más tiempo desconectados de lo que pensamos. Por eso Google ha pensado en Gears, que nos permite trabajar con las aplicaciones cuando no tenemos conexión a Internet, aunque parezca increíble. Dion nos visita desde la oficina de Mountain View para contarnos un poco en qué consiste todo esto de Gears y cómo puede ayudarnos sobrevivir sin Internet.
El co-fundador de Panoramio, Eduardo, abre esta charla sobre las start-ups y el desarrollo de las comunidades de usuarios. Lim, de la oficina de Londres, toma el relevo y nos habla del interés de Google por conocer a programadores como vosotros que estén haciendo cosas interesantes y tengan una comunidad activa.
Pero lo mejor está por llegar. Una vez que nuestros compañeros terminan su charla, los programadores que abarrotan la sala, no se atreven a hacer preguntas. No sabemos si es porque no dominan el inglés o porque son así de tímidos. Eduardo les anima y ya se van soltando hasta que nos pasamos de la hora programada J
Después de las extenuantes jornadas de la mañana, ha llegado el momento de tomarse un respiro. A lo largo de la mañana ha habido talleres y charlas de AppEngine, OpenSocial, Android, Chrome, GWT, API de YouTube y Productos cartográficos, así que a las 2 llegó el momento del merecido descanso.
El bufete, a pesar de contar con comida sana, era el menú más apropiado para la ocasión: diferentes tipos de carnes, de pasta, de patatas y de fritos. ¡Sólo faltaban las pizzas!
Y esta tarde, más talleres y charlas: Presentación de aplicaciones finalistas del Android Developer Challenge, gadgets sociales, Orientación para start-ups, App Engine, APIs de datos, productos cartográficos, Android, OpenSocial y Gears.
Y después… ¡el fin de fiesta! Fiesta, copas y picoteo en el Parque de Atracciones.
Después de comer, superando el "momento siesta", nos hemos vuelto a reunir para escuchar una charla sobre Gadget sociales. Menos mal que los ponentes son Iñaki y Ludo, y nos hacen superar la modorra de la primera hora de la tarde.Ellos son parte de Madpixel, una agencia creativa que lleva tiempo trabajando con Google España. Aúnan diseño y tecnología en todas sus creaciones, entre las que destacan un gadget realizado para iGoogle con motivo de la Euroliga, el gadget que lanzamos durante las pasadas elecciones y que facilitaba el conteo en tiempo real de los datos electorales, etc.La charla está siendo amena, con la sala casi completa, Iñaki y Ludo nos proponen encontrar las 7 diferencias en dos dibujos. Premio!! Camiseta para el más rápido!! Pero ahora lo más difícil, encontrar las diferencias entre dos textos de código ... vaya esto ya no es tan fácil. Una buena metáfora para iniciar una exposición sobre aquellas dificultades a las que se pueden enfrentar los desarrolladores al crear un gadget social. Gracias a los dos, seguro que vuestros consejos son útiles para más de uno!!
Terminamos las sesiones de la mañana con nuestro compañero Sumit Chandel, que nos visita desde San Francisco. Sumit es ingeniero y trabaja en el proyecto GWT, una plataforma diseñada para crear aplicaciones Ajax con el lenguaje de programación Java. En esta sesión, Sumit nos explica las ventajas de la plataforma GWT con muestras de código y ejemplos para mejorar la experiencia de los usuarios y para obtener mayores funcionalidades para los programadores.
Ya metidos en materia nuestros compañeros, Jean-Laurent, ingeniero de la oficina de Londres, y Nicola Ferioli, ingeniero de la oficina de Milán, nos presentan las APIs de YouTube, uno de nuestros productos más populares. Tras una breve presentación en español, comienzan a hablarnos (en inglés) sobre las funcionalidades más interesantes que nos ofrecen las APIs de YouTube. Nos muestran consejos útiles para sacar un mayor provecho del API de YouTube y utilizar feeds de vídeo, listas de reproducción y "projections". Es de destacar la sincronización entre vídeos de YouTube y mapas de Google Maps.
¡Muchas gracias por vuestros divertidos vídeos!
Empezamos la mañana con Javier Arias, ingeniero de ventas de la oficina de Madrid habla sobre el API de Google Maps y los archivos KML. Los asistentes tienen un nivel bastante bueno y conocen a fondo estos productos así que pasa directamente a hablar de las nuevas funcionales de las APIs. Entre estas, habla sobre el API AJAX de búsqueda, el AJAX loader, el API de mapas estáticos, el Flash Maps API y el API de Earth.
Podeís encontrar más información en nuestro Code Site o en el blog del API de Google Maps. ¡No dudéis en enviarnos vuestras preguntas y sugerencias!
Kasper Lund ha venido de la oficina de Dinamarca para explicarnos todos los detalles del nuevo navegador de Google: Chrome. Kasper se unió a Google hace 2 años para trabajar en secreto en este proyecto, y ahora le resulta difícil hacerse a la idea de que ya puede hablar libremente de este navegador ;-)Lo primero que nos ha comentado es que Chrome se desarrolló bajo el siguiente lema: "stability, speed and easy of use", es decir, facilitar la experiencia al usuario a la hora de utilizar un navegador. Además, se trata de un navegador de código abierto, por lo que cualquier desarrollador puede contribuir con su trabajo a optimizar esta experiencia.Estamos seguros de que ya has instalado Chrome en tu ordenador. Pero si aún no lo has hecho, aquí tienes toda la información, sólo te llevará 5 minutos!
En la sala R2D2 seguimos compartiendo conocimientos. Patrick Chanezon, embajador de Google para productos de desarrolladores, está ahora mismo presentando las últimas novedades de OpenSocial. Patrick, que se unió a Google en el 2005, tiene una amplia experiencia en el desarrollo de aplicaciones sociales ya que previamente trabajó en portales y blogs de distintas empresas como AOL, Netscape, etc.Como muchos sabréis, OpenSocial es una aplicación abierta que funciona en diferentes redes sociales como MySpace, Plaxo, Hi5 (muy popular en Latinoamérica), Orkut, Friendster, LindedIn y muchas otras. La ventaja es que los desarrolladores tan solo tienen que aprender una vez cómo escribir una aplicación social que será compatible con muchas otras redes. Sin duda el lema es: "aprende una vez y escribe en cualquier sitio".
Patrick no solo nos está explicando qué es OpenSocial, sino que también nos ha mostrado algunos ejemplos además de demostrar en vivo cómo crear una aplicación con OpenSocial. Esperamos que sea de utilidad a todos los desarrolladores que nos acompañan hoy.
Las fotografías de las sesiones, de los asistentes y de los ponentes las puedes encontrar aquí. ¡Entra y búscate! Es posible que nuestra cámara te haya encontrado.
La sesión de OpenSocial ha comenzado con un anuncio: se ha presentado NetLog con muy buena acogida entre los asistentes. Chewy Trehella y Thomas Steiner han dirigido es presentación.
Además, se ha inaugurado un concurso de OpenSocial: quien desarrolle el mejor Gadget, recibirá ¡un premio sorpresa!
Los intereses de los asistentes son variados, pero sus objetivos para el día de hoy son los mismos: aprender y pasarlo bien.
Lo más valorado es la oportunidad que ofrece el GDD de conocer gente con los mismos intereses y aficiones. Esto permite, como afirma Sebastián Brait, estudiante de Ingeniería Informática, “contactar con gente para poder desarrollar proyectos juntos”. También es muy valorado el ambiente distendido en el que se desarrolla la jornada, que ayuda precisamente a establecer estos valorados contactos.
Además, como coinciden en afirmar Jorge Fernández – jefe de proyecto en BBVA- y Miguel Poyatos –programador en la Universidad de Castilla La Mancha- familiarizarse con estas herramientas es muy importante para su trabajo, ya que “las usamos continuamente en mi trabajo”.
Una jornada con muchas expectativas que seguro no se van a defraudar.
Madrid es de nuevo una de las sedes para el Google Developer Day. A pocos minutos del comienzo, todo está listo para recibir a los desarrolladores, quienes podrán informarse y comprender mejor Android, Chrome, Open Social, Geo o GWT (Google Web Toolkit).
Coincide, además, con el lanzamiento de Moderator, una herramienta muy útil, gracias a la cual los desarrolladores podrán resolver sus dudas sobre los productos Google.
Todo está listo para comenzar. Sólo nos faltáis vosotros. ¡Feliz GDD!
En Google utilizamos los navegadores web como medio de trabajo para realizar búsquedas, chatear, enviar y recibir correo electrónico y compartir información y recursos. Además, como usuarios de Internet, también los utilizamos para comprar por Internet, realizar operaciones bancarias, leer el periódico y contactar con nuestros amigos. Cada vez pasamos más tiempo en Internet haciendo cosas que jamás imaginamos poder hacer cuando se creó la Web hace ya 15 años.
Por esta razón, nos pusimos a pensar en el tipo de navegador que podríamos crear si empezásemos de cero y aprovecháramos las novedades que existen en Internet en la actualidad. Llegamos a la conclusión de que Internet ha pasado de albergar páginas web que sólo contenían texto hasta aplicaciones interactivas y multimedia en la actualidad y, por tanto, nos replanteamos el concepto de navegador. Lo que necesitábamos era algo más que un mero navegador y por eso hemos creado una plataforma moderna para poder visualizar e interactuar en sitios web y aplicaciones.
Hoy lanzamos la versión beta de un nuevo navegador de código abierto: Google Chrome.
En líneas generales, Google Chrome tiene una interfaz sencilla y funcional. Para la mayoría de los usuarios el navegador no es lo más importante en su experiencia en la Red: sólo es una herramienta donde visualizar y ejecutar los sitios, páginas web y las aplicaciones que la conforman. Al igual que la página de inicio de nuestro buscador, Google Chrome es rápido y fácil de utilizar. Su objetivo es que los usuarios obtengan la información que buscan y accedan a los sitios web con la mayor rapidez posible.
Desde el punto de vista técnico hemos sentado las bases de un navegador que es capaz de ejecutar con mayor eficacia las complejas aplicaciones web de hoy en día. Las pestañas de Google Chrome son independientes, de forma que si se produce un error en una de ellas, el resto no se ven afectadas. La rapidez y el tiempo de respuesta también se han mejorado por completo. Además, hemos creado V8, un motor JavaScript más potente que abre la puerta a una generación de aplicaciones web que se beneficiarán de este nuevo concepto de navegador.
Y esto es sólo el comienzo, Google Chrome es susceptible de mejoras y actualizaciones. Hemos lanzado la versión beta para Windows con el fin de introducir este nuevo concepto a la comunidad de usuarios y comprobar su acogida. Estamos trabajando también en las versiones para Mac y Linux y continuaremos trabajando para que Google Chrome sea cada vez más rápido y estable.
Debemos una gran parte de este proyecto a otras iniciativas de software libre y estamos decididos a seguir trabajando en esta dirección. Hemos utilizado elementos de los navegadores WebKit de Apple y Firefox de Mozilla, entre otros, y con este objetivo estamos haciendo posible que nuestro código también sea abierto. Esperamos colaborar con toda la comunidad para que la Red avance.
Internet mejora gracias a nuevas alternativas e innovaciones. Google Chrome es una opción más y esperamos que contribuya a crear una Web mejor.
La duodécima edición de la Campus Party ha llegado a su fin y Google ha estado en ella con toda una serie de actividades, desde Google App Engine hasta el API de Google Earth. Si queréis echar un vistazo a las actividades que hemos llevado a cabo estos días en la Campus, podéis visitar el Sitio de Google en la Campus. Pero a continuación os contamos los últimos dos días.
Ayer, uno de nuestros ingenieros de la oficina de Google en Londres nos dio una breve charla sobre las herramientas que Google pone a disposición de los webmasters. Seguro que estás interesado en conocer si nuestro buscador ha rastreado tu página, si la misma está indexada, etc. Así que, si no pudiste acudir a la presentación, puedes encontrar toda esta información en nuestro centro para webmasters en la siguiente dirección: http://www.google.es/webmasters. Además, puedes seguir las últimas novedades en el blog oficial para webmasters o interactuar con otros usuarios en nuestro foro.
La primera de nuestras charlas de hoy ha tratado sobre Android y cómo trabajar con el SDK (Software Developer Kit). Android es una pila de software para dispositivos móviles que incluye un sistema operativo, aplicaciones esenciales y middleware. Está siendo desarrollado por la Open Handset Alliance, un grupo de más de 30 empresas de tecnología y aplicaciones móviles.
Los desarrolladores pueden crear aplicaciones para la plataforma mediante el kit de desarrollo de Android. Podéis descargarlo aquí o visitar la sección de Android de la página de Google Code. Sólo tenéis que hacer clic en el enlace del paso 2 de la sección de Introducción para empezar a trabajar con él. ¡Animaos a probarlo!
La penúltima de las charlas que hemos dado en la zona Google estaba relacionada con iGoogle, la página de inicio personalizada de Google y los temas que podéis añadir.
Y por fin llegó la sesión más esperada por los desarrolladores: OpenSocial. Dos de nuestros ingenieros han dado una visión general de lo que es OpenSocial y han presentado un concurso para animar a la comunidad de programadores a crear aplicaciones sociales. Más información en el sitio de Google en la Campus Party y en Google Code.
En Google queremos que la web geográfica se convierta en realidad y que cada vez haya más contenidos geoposicionados. El API de Google Maps y todas las herramientas para programadores de Google pretenden estimular la creación de ese contenido y esperamos que surjan muchas comunidades que consiguan animar a la gente a añadir información geoposcionada. Este es el primer post de una serie que tratará sobre comunidades en torno al API de Google Maps.
De nuestra experiencia con Panoramio pensamos que generar comunidad es una de las mejores maneras de crear contenido geoposicionado. No es la única manera de hacerlo, pero si una de las que mejor se puede escalar y que más información de valor puede aportar.
La potencia de una comunidad está en los que se llama “efecto de red” es decir, cuanto más se usa, más útil se vuelve, es decir, cuantos más usuarios la usen más usuarios vendrán en el futuro. Por ejemplo, si yo escribo una opinión sobre un restaurante, estaré aumentando la utilidad de a web para futuros usuarios. A mayor número de opiniones más probable es que la web resulte interesante y retenga a más usuarios, además de aumentar los contenidos indexables para Google, etc. Si, por ejemplo, pongo un comentario a tu foto en Panoramio, recibirás una alerta con mi comentario y es posible que termines visitando Panoramio, que te animes a subir una foto o a escribir otro comentario, etc. En definitiva, la actividad de unos genera más actividad de otros.
La diferencia de una comunidad con respecto a otros sitios donde los usuarios pueden escribir comentarios o generar contenidos, por ejemplo, una tienda online donde la gente puede opinar sobre un artículo, es que ese contenido hace que los usuarios interactúen y esa comunicación entre usuarios es lo que los motiva a generar más contenidos. La interacción se genera de muchas maneras, pero es algo natural, no forzado. Se trata de despertar auténtico interés de los usuarios, unos por otros, ganas de establecer conversaciones, etc.
No hay una formula mágica para generar comunidad, a fin de cuentas cada comunidad es única porque cada tipo de contenidos genera una interacción diferente entre los usuarios. Lo que hace funcionar a una comunidad y generar esos efectos de red son muchos detalles que no suelen ser virguerías tecnológicas, son detalles que están determinados por el entendimiento profundo de los objetivos de la gente al participar en la comunidad y cómo se establecen las relaciones entre los usuarios. El foco de la comunidad, es decir, su especialización en un tema específico, es lo que determina cómo construirla, y será el tema del próximo post.
Cuando lanzamos las herramientas de edición de mapas en Google Maps, el comentario con el que reaccionaron los desarrolladores fue: "Es una idea genial, pero ¿cómo puedo utilizarlas en mi propio sitio web?" Dado que en un principio, el API para Google Maps y su extraordinaria comunidad de desarrolladores fue, en parte, lo que hizo que me uniera a Google, decidí comprometerme a conseguir que los desarrolladores pudiesen utilizar las herramientas de Mis mapas en sus propios sitios web. Por fin, desde hace unas semanas, el API de Google Maps ya cuenta con la posibilidad de utilizar nuestra interfaz de usuario para la edición de polilíneas y polígonos.
Pongamos que tienes un GPoligon y quieres que los usuarios puedan editarlo. Solo tienes que usar el comando GPolygon.enableEditing() y el polígono incluirá vértices de control de edición que el usuario podrá arrastrar cuando desplace el cursor sobre él. Si no quieres que se edite, utiliza el comando GPolygon.disableEditing().
También hemos creado más eventos de GPolygon y GPolyline para que puedas imitar con facilidad el comportamiento de Mis mapas (en mashups o Mapplets) mediante el uso de los comandos enableEditing en "mouseover" y disableEditing en "mouseout". Cada vez que el usuario realice una edición, recibirás un evento "lineupdated". Y si quieres que los usuarios puedan dibujar una GPolyline completamente nueva, sólo tienes que utilizar el comando enableDrawing que se muestra a continuación:
var polyline = new GPolyline([]);map.addOverlay(polyline);polyline.enableDrawing();
Cada clic que se haga sobre el mapa añadirá otro vértice a la polilínea hasta que el usuario haga un doble clic o vuelva a hacer clic en el último vértice. También puedes usar el comando enableDrawing para permitir que los usuarios añadan vértices a cualquiera de los extremos de una polilínea ya existente. Y como a todos nos gustan los colorines, te proporcionamos métodos que te permiten cambiar el estilo de una polilínea o de un polígono: setStrokeStyle and setFillStyle. Diviértete y comparte tu opinión con nosotros en nuestra dirección de correo programacongoogle@google.com o en los comentarios del blog. Y para terminar, puedes echar un vistazo a este sencillo ejemplo. Seguro que se os ocurren un montón de aplicaciones.
Mark Pilgrim
La red abierta es la red construida sobre estándares abiertos: HTML, JavaScript, CSS, etc. La red abierta es una colorida ensalada de clientes y servidores apenas compatibles. Comprende miles de millones de páginas, millones de usuarios y miles de aplicaciones basadas en un navegador. Se puede acceder a la red abierta mediante navegadores, sistemas operativos y equipos informáticos tanto comerciales como de código abierto.
Google ha construido su negocio en la red abierta y queremos ayudaros a que vosotros también lo hagáis. Con esta finalidad, hace un par de semanas anunciamos la creación de una enciclopedia elaborada por y para desarrolladores: Google Doctype.
En su versión actual (beta), Google Doctype contiene multitud de artículos escritos por los Googlers sobre temas importantes para todos los programadores: seguridad, rendimiento, caching, manipulación DOM y estilos con CSS, entre otros. Contiene más de 8.000 líneas de código JavaScript: la experimentadísima biblioteca JavaScript de Google, publicada hoy bajo una amplia licencia de código abierto. Además, contiene las bases para ser una referencia en la red abierta avalada por pruebas: una referencia para todos los elementos, atributos, métodos DOM y propiedades CSS, respaldada con casos de prueba.
Bueno, seguramente no para todas las propiedades; al menos, por ahora. Aún estamos trabajando para completar algunos detalles pendientes sobre la mayor plataforma de desarrollo del mundo jamás concebida, y necesitamos vuestra ayuda. Por eso, ofrecemos humildemente esta nueva enciclopedia bajo una licencia de Reconocimiento Creative Commons e invitamos a los programadores de todo el mundo a que contribuyan a ella. Identificaos con vuestra cuenta Google y editad cualquier página, cualquier artículo, en cualquier lugar. Cread unos nuevos, actualizad los viejos y contribuid a ampliar la comprensión del mundo sobre la red abierta.
Esta semana no hemos publicado aún porque estamos en el Google I/O, aprendiendo, hablando con programadores, y cogiendo muchas y buenas ideas para traerlas a Madrid el 25 de Septiembre. Podría escribir largo y tendido sobre todo lo que está pasando aquí, con las charlas y los talleres de programación que se están llevando a cabo, pero voy a resumirlo en tres momentos que, a mi parecer, han sido los mejores. El primero, durante la bienvenida, mientras Steve Horowitz, Engineering Director de Android, nos estaba enseñando algunas de las aplicaciones creadas por vosotros, los programadores. La última era una aplicación que utilizaba StreetView y el acelerómetro del teléfono, de modo que al desplazar el iPhone hacia los lados en posición vertical, las imágenes de StreetView se movían en la misma dirección, como si estuvieses girando sobre ti mismo, físicamente, en el lugar en cuestión del mapa. No pudimos contenernos y los 3000 asistentes, al unísono, dijimos: GUAU.
El segundo mejor momento de las sesiones a las que atendí fue la presentación de Michael T. Jones, Chief Technology Advocate de Google, sobre la información mundial en contexto con Google Earth, durante la que presentó el API de Google Earth. Esta nueva API permite, con una línea de javascript, darle a tus mashups de Google Maps la apariencia de Google Earth e incluir un globo terráqueo 3D en tus aplicaciones. Aunque todavía sólo está disponible para Windows (Mac y Linux en Agosto), se mereció, claramente, un gran aplauso de todos los asistentes. Ya podéis consultar la documentación online y algunas demos, e incluso ver una simpática muestra de un juego online que utiliza el plugin de Google Earth.
Por último, otro gran momento ha sido la bienvenida esta mañana de Marissa Mayer, VP Search Products & User Experience, de la cual me quedo con la siguiente frase: “La imaginación es un músculo”. Ha sido una presentación que nos ha inspirado a todos para enfrentarnos a otro día intenso de sesiones y programación. Y la última anécdota del día: me he encontrado a tres programadores españoles entre 3000 asistentes. ¡Espero que vengan al Developer Day 2008 en Madrid!
Leyendo las entradas que tenía pendientes en mi Google Reader el otro día me encontré con una entrada del blog de Manu, tufunción, que me pareció muy interesante. Esta entrada "Generar imágenes de mapas con Google Chart" nos explica cómo usar el API de gráficos de Google para generar gráficos que representen información numérica en un mapa, en la entrada se nos muestran varios ejemplos y entre ellos:
Distribución de la población mundial
Densidad de la población mundial
De esta entrada me gustó el hecho de que para generar los ejemplos se apoye en la estructura de tablas Word.sql, me parece una pista fantástica para ayudarnos en la generación de este tipo de mapas. Si además nos aporta una función simpleEnconde en php (en el API sólo está en JavaScript) mejor que mejor. En definitiva una lectura muy recomendada para quienes quieran iniciarse en la generación de imágenes con mapas.
Puedes definir el número de fotos que mostrar usando "from=X" y "to=Y", donde Y-X es el número de fotos incluidas. El valor 0 representa la última foto subida a Panoramio. Por ejemplo, "from=0 to=20" extraerá un grupo con las últimas 20 fotos subidas a Panoramio, "from=20 to=40" el grupo anterior de 20 fotos y así sucesivamente. El máximo número de fotos que puedes extraer en una petición es 100.
{"count": 773840,"photos": [ { "photo_id": 532693, "photo_title": "Wheatfield in afternoon light", "photo_url": "http://www.panoramio.com/photo/532693", "photo_file_url": "http://static2.bareka.com/photos/medium/532693.jpg", "longitude": 11.280727, "latitude": 59.643198, "width": 500, "height": 333, "upload_date": "22 January 2007", "owner_id": 39160, "owner_name": "Snemann", "owner_url": "http://www.panoramio.com/user/39160", }, { "photo_id": 505229, "photo_title": "Etangs près de Dijon", "photo_url": "http://www.panoramio.com/photo/505229", "photo_file_url": "http://static2.bareka.com/photos/medium/505229.jpg", "longitude": 5.168552, "latitude": 47.312642, "width": 350, "height": 500, "upload_date": "20 January 2007", "owner_id": 78506, "owner_name": "Philippe Stoop", "owner_url": "http://www.panoramio.com/user/78506" }, ...]}
"count" es el número total de fotos disponible en el set de fotos de esa área. "Photos" es una matriz con las fotos pedidas. Las variables de cada "photo" deberían ser fáciles de interpretar, excepto quizás "owner_id" que indica el id del usuario que subió esa foto, por ejemplo, el 78506 indica que la página de ese usuario es http://www.panoramio.com/user/78506
Hace unas semanas lanzamos Google App Engine, un producto que permite a los programadores ejecutar sus aplicaciones en la infraestructura de Google. Las aplicaciones de App Engine son fáciles de crear, de mantener y de redimensionar a medida que aumenta su tráfico.
En el foro alguno preguntó si había invitaciones, porque de momento el lanzamiento se ha restringido a los primeros 10.000 programadores. Por ahora, a los que ya han pedido la invitación, se les ha dado una cuenta gratuita. Este tipo de cuentas permite un almacenamiento persistente de 500MB así como CPU y ancho de banda suficiente para aproximadamente cinco millones de páginas vistas mensuales. Y podéis utilizar un dominio gratuito appspot.com o utilizar el vuestro propio.
Desde el lanzamiento hemos seguido trabajando y, por ejemplo, el equipo de las APIs de datos de Google acaba de lanzar una actualización de la librería de Python que incluye soporte para Google App Engine. Con esta librería vuestras aplicaciones podrán utilizar AuthSub para acceder a los feeds de vuestros usuarios. Ahora, si todavía no habéis probado el Google App Engine, ya podéis crear una aplicación para escribir en vuestro blog sobre las fiestas a las que vais a ir, añadirlas a vuestros calendarios e invitar a todos vuestros amigos de golpe. Y después de la fiesta, ver las fotos y los vídeos en la misma aplicación.
¿Necesitáis más inspiración? Miguel Cuesta ya nos mandó un ejemplo de aplicación, transcurridas apenas 24 horas desde el lanzamiento. También podéis consultar OnThaFly, un servicio para crear y compartir emoticonos utilizando tus propias fotos, o TweetWheel, que muestra las conexiones de tus contactos de Twitter en una "rueda". Por último, además de leer la documentación, os recomendamos que escuchéis el episodio 15 de nuestros Google Developer Podcasts en el que primero se describe por qué se creó Google App Engine y por qué Python fue el primer lenguaje, y por supuesto, después se entra en detalles técnicos (por ahora, estos podcasts están solo en inglés). Podéis descargar el episodio directamente, o suscribiros (haced clic aquí para suscribiros mediante un clic en iTunes).