mardi 29 janvier 2008

Un client de geolocalisation en cinq lignes de PHP avec l'API Google Maps

Google propose des choses vraiment intéressantes au travers de ses API, comme par exemple son méconnu (car planqué dans la doc) webservice HTTP de géolocalisation. L'idée ici est de récupérer la lattitude et la longitude d'un endroit géographique à partir de sa description, par exemple Paris, France ou encore 3 allée des allouettes, 35000 Rennes, France.

Il vous faut posséder au préalable une clé d'API Google, que vous pouvez obtenir gratuitement par là.

<?php
define('GOOGLE_API_KEY', 'your_google_api_key_here');
$wsurl = 'http://maps.google.com/maps/geo?q=%s&output=csv&key=%s';
$location = 'Paris, France';
$data = explode(',', file_get_contents(sprintf($wsurl, urlencode($location), GOOGLE_API_KEY)));
$coord = 200 === (int)$data[0] ? array((float)$data[2], (float)$data[3]) : null;
var_dump($coord);

Ce qui nous donne :

array(2) {
  [0]=>
  float(48.856667)
  [1]=>
  float(2.350987)
}

On prendra soin de cacher autant que faire se peut les résultats renvoyés par le webservice, afin de soulager les serveurs de Google et accessoirement de pas fusiller le crédit-requête associé à sa clé d'API.

Disclaimer : Ce billet n'est pas un appel au troll, je me doute qu'on peut faire la même chose en 3 lignes de Ruby, 2 lignes de Python et -10 lignes de Fotran77. C'est juste pour dire que les services Google, ça déchire quand même un petit peu.

jeudi 27 décembre 2007

Quêtes et requêtes [#12]

Ça faisait bien longtemps...

Obsessions

Confondages

Taquins

Révélations

Geeks (ou pas)

mercredi 14 novembre 2007

L'iPhone a du mourron a se faire

[Via Blogueur Influent]

Android, le nouvel OS made by Google et orienté téléphonie mobile, rendu totalement open source, semble plus qu'alléchant.

Sachant que Google offre pour 10 millions de dollars de prix aux créateurs des applications les plus innovantes [1] pour cette plateforme, je pense qu'une certaine pomme à sérieusement du mouron à se faire avec son iPhone, et ce malgré un volume de ventes conséquent pour le moment.

Notes

[1] C'est là que tu pestes d'être développeur PHP plutôt qu'OpenGL.

mardi 18 septembre 2007

Google Presentations

Google vient d'annoncer la mise en ligne du dernier rejeton de la famille Google Docs, j'ai nommé Presentations. Alternative en ligne à Powerpoint, KeyNote ou Impress, Google a visiblement visé la simplicité côté conception de slides et la richesse fonctionnelle côté collaboration.

Le résultat est utilisable par à peu près n'importe qui sachant manipuler une souris, ergonomiquement c'est très bien fait. Les pros de la diapo reprocheront à l'application l'absence de gestion de feuilles de styles, de masques ou d'un outil de dessin vectoriel intégré, mais 99% des gens sauront à mon avis très bien se satisfaire de l'outil en l'état, pour ce qu'ils ont à faire la plupart du temps avec ce genre d'outils.

Google Presentations

Les thèmes proposés, à défaut d'être radicalement originaux sont agréables à l'utilisation.

Quelques themes de présentations

La visionneuse de présentation est efficace, et on appréciera tout particulièrement la possibilité d'interagir avec un auditoire éventuel via une fenêtre de chat latérale. Génial !

Diaporama Google Presentations

Comme pour tous les autres produits Google Docs, chaque modification est historisée et versionnée, et il est possible de travailler collaborativement en temps réel sur la conception des slides, après avoir invité les collaborateurs éventuels directement depuis l'interface en saisissant leur adresse email.

L'export d'une présentation se fait pour le moment au format ZIP contenant des fichiers HTML, mais gageons qu'à terme d'autres formats de fichier seront proposés. Il est également possible d'importer des fichiers PPT et de les retravailler en ligne. Au chapitre des manques à combler, on pourra citer une trieuse de diapositives qui fait cruellement défaut quand le nombre de slides augmente.

Moi, en tout cas, je suis fan.

jeudi 31 mai 2007

Google Gears : vous pouvez vous deconnecter

Note : ce billet est une reprise de l'article que j'ai publié sur le blog de Clever-Age, Google Gears : vous pouvez vous déconnecter.

Edit : Article publié sur ZDNet, la gloire ^^

Google a annoncé aujourd’hui à l’occasion du Google Developer Day le lancement de sa réponse technique concrète aux problèmes de la consultation et de la synchronisation de données web en mode déconnecté : Google Gears.

Cette réponse prend la forme d’une extension pour navigateur web (Firefox sur Windows, Mac et Linux, Internet Exporer sur Windows [1]) comprenant un serveur local, une base de données et un gestionnaire de transactions permettant de transformer le navigateur en solution client-serveur local afin de régler l’épineux problème du travail en mode déconnecté avec les applications web modernes.

En effet, si les applications en ligne se sont considérablement enrichies et sophistiquées ces dernières années, au point de devenir de plus en plus indispensables à certains d’entre nous, elles subissent cependant pour la plupart d’entre elles d’une limitation importante : la nécessité d’être en permanence connecté à internet pour fonctionner. Nombreux sont les cas d’impossibilité de se connecter au réseau des réseaux : zone de couverture, problèmes matériels, d’infrastructure, etc.

Bien sûr, certains se sont déjà - et parfois depuis longtemps - penchés sur la question. C’est le cas de Mozilla avec l’ajout dans la version 2 de Firefox d’une base de données SQLite ou du projet Zimbra permettant la sauvegarde de ressources locales. Mais l’une des solutions les plus avancées semblait se situer du côté du Dojo Offline Toolkit, un projet open source proposant des fonctionnalités de stockage d’interfaces, de données et d’applications en local et des fonctionnalités de synchronisation.

Google Gears se base sur cette dernière solution, embarquant le Dojo Offline Toolkit et une base de données SQLite au sein même de son extension. L’extension est open source (sous licence new BSD) et peut à ce titre être redistribuée dans une application embarquant le runtime ou utiliser une installation existante de l’extension. La disponibilité du code est également une bonne garantie quand à la transparence, au taux d’adoption, à la sécurité et l’évolutivité du produit [2]

Une des premières mises en oeuvre intéressantes de Gears se situe depuis ce matin dans Google Reader, l’agrégateur en ligne de Google : les utilisateurs ont pu remarquer la présence d’un nouveau bouton permettant de récupérer en local les 2000 derniers éléments non-lus afin de pouvoir les consulter hors-ligne.

Synchronisation de données en local dans Google Reader

Évidemment, ceci n’est qu’un début et Google ajoutera progressivement ce type de fonctionnalités à ses applications en ligne phares comme GMail, Calendar, Docs, etc...

Google Gears ne sera cependant pas limité au monde de Google, mais sera utilisable par tout éditeur de site Web concerné par ce type de problématiques. Imaginons par exemple l’application d’un constructeur automobile permettant de configurer son véhicule : l’utilisateur télécharge alors de façon transparente le catalogue des éléments disponibles et peut ensuite prendre tranquillement l’avion, utiliser l’application pendant le vol en configurant sa future voiture. Une fois rendu à destination, il synchronise sa simulation une fois reconnecté à internet et envoie les données au serveur web du constructeur.

Plus directement utile ? Le téléchargement en local des données cartographiques et des points d’intérêt de votre futur périple au bout du monde, hors-zone de couverture internet ? Vous y êtes ?

Alors, tout est au mieux dans le meilleur des mondes ? Peut-être pas, si l’on considère cette initiative de Google sous l’angle de la standardisation : en effet, Google et les équipes de développement Dojo proposent aujourd’hui une solution qui est basée sur un effort de réflexion qui a été initié auprès d’un nombre restreint de participants ; quid si demain Microsoft publie sa propre interprétation du problème ? Allons-nous à nouveau assister à un affrontement des deux géants, avec tout ce que cela implique en terme de problèmes d’interopérabilité ? Le fait qu’Adobe semble vouloir intégrer Gears dans Appolo et que Mozilla et Opéra soient de la partie risque de complexifier encore un peu plus le problème pour l’éditeur de Redmond.

Reste que le sujet est à surveiller de près, car les enjeux sont énormes à l’heure où les applications web tendent à empiéter de plus en plus sur le territoire des applications client-lourd traditionnelles.

[1] Le support de Safari et d’Opéra est d’ores et déjà annoncé.

[2] Déjà une mise à jour depuis le lancement ce matin même !

mercredi 20 décembre 2006

Quêtes et requêtes [#11]

Voici un nouveau volet de la trépidante saga des meilleures recherches Google ayant conduit sur ce site...

Recherches de geeks

Recherches de pas-geeks

Recherches de caféïnomanes

J'ai testé pour vous (ou pas)

SAV des recherches sur Google

Psychopathes

Traques sur internet

jeudi 14 décembre 2006

Zapping #4

Gros vrac, mais le temps me manque (cruellement) :

mardi 10 octobre 2006

CMS, bonhomme en mousse, Rollex et tout ce qui s'en suit

  • Yooggle, Gootube, bref, je ne vais pas revenir sur l'acquisition de l'année. La question qu'on peut raisonnablement se poser reste POURQUOI FAIRE BORDEL ?
  • Pep nous signale un excellent article sur Vitamin concernant le mythe du CMS ; cet article résume très bien ce que je pense depuis pas mal de temps, à savoir qu'aucun système de gestion de contenu (CMS) ne saura jamais gérer entièrement la complexité de vos contenus (ou ceux de vos clients), et que l'y pousser est AMHA totalement contre-productif en regard de l'utilisation d'outils plus bas niveau comme les frameworks, associés aux méthodes de développement agiles.
  • Cette image sans fin est de toute beauté (Flash.)
  • Le petit hardos en mousse, déjà dans les bacs (Via ScoopekNo')
  • Une recherche d'images sur Google pour les mots-clé Rollex watches renvoie des résultats surprenants.
  • Heureusement pendant ce temps-là, la science progresse et assène des évidences qui n'avaient échappé à personne :D
  • Sinon sans transition, entrez cette petite ligne de javascript dans la barre d'adresse de votre navigateur sur n'importe quel site, pour voir (via) :
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);

- page 1 de 6