11 avril 2013

OpenData : au-delà de faire plaisir aux "geeks"

Je me suis rendu à Montréal samedi dernier pour l'ODX13 afin d'assister à des conférences en rafales sur les données ouvertes (Open data). Nous avons été reçus dans la très élégante Maison Jeanne Sauvé. Ce fût une journée intéressante, mais comme c'est souvent le cas avec ce genre d'événement, ce sont les rencontres et les discussions de corridors qui sont les plus enrichissantes.

En discutant avec un résidant d'Ottawa, j'ai appris que le gouvernement ontarien avait décrété en 2008, une loi obligeant les fournisseurs de transport en commun d'annoncer tous les arrêts afin de faciliter le déplacement des personnes aux prises avec un handicap. Cette annonce fût évidemment bien reçue par la communauté, mais la nouvelle politique ne fit pas l'unanimité auprès des chauffeurs. Après avoir été mis à l'amende à deux reprises pour faute de se conformer à la loi, l'OC Transpo (de la région d'Ottawa) a décidé d'implanter un système automatisé pour annoncer les arrêts dans tous ses autobus. Pour ce faire, il fallait évidemment capter la position en temps réel de chaque véhicule de la flotte. Quelques années (et millions) plus tard, l'annonce du premier arrêt se fit entendre en septembre 2010. En mars 2012, l'OC Transpo poursuit sa lancée innovatrice en rendant les données de localisation disponibles, mises à jour aux 30 secondes et accessibles par l'intermédiaire d'un API. Nul besoin de vous dire que plusieurs applications mobiles tirant profit de ces données ont vu le jour depuis.

Les termes "Open data" et "Données ouvertes" ont présentement la cote auprès des divers paliers de gouvernement. En ces temps difficiles pour nos politiciens en quête de transparence, le fait de "libérer" des données publiques devient un réflexe quasi naturel. Ce pourrait-il que la démocratisation des données soit parfois précipitée afin d'atténuer les attentes populaires ou bousculée par des démarches citoyennes engagées?  Y a-t'il une réelle réflexion de la part de nos institutions afin d'assurer la pérénité des données ouvertes et d'en faciliter l'utilisation par des tierces parties?

Étant moi même un programmeur et un utilisateur du transport en commun, je dois avouer ma jalousie face à de telles initiatives. À quand une situation similaire pour le réseau de transport de Québec? J'ai eu l'occasion de poser la question sur Twitter au WhereCamp Québec en novembre 2010 et on m'a répondu: pas avant 2015!

J'aimerais bien savoir si la situation a changé depuis alors j'invite cordialement le RTC à poursuivre la discussion (ici ou ailleurs)...

24 octobre 2012

Opensource Geospatial 4 Education and Research

Putain de bordel de merde, qu'il est difficile de trouver du temps pour bloguer (désolé pour l'accent mais je suis en Europe). À partir de demain, je vais participer à un important congrès qui porte sur les technologies OpenSource en géomatique dans le domaine de l'éducation et de la recherche. Demain (25oct.) je vais assister aux présentations MAIS vendredi (26oct.), je serai conférencier et ce pour la première fois dans un événement aussi important (et en anglais en plus...).

Comme premier (de 2 ou 3) billets sur mon aventure, je n'attaquerai pas le monde géo mais plutôt mon intégration à la civilisation Suisse.

1-J'ai déniché un hôtel assez sympa dans le quartier Flon de Lausanne. Le nom très original de cet établissement (LHotel) n'est pas très bien indexé dans Google. Il est tout de fois parfait pour mes besoins:  pas cher du tout (100CF/nuit), à coté de la gare de train, WIFI gratuit (et performant), entouré de Pubs, de boutiques et de restaurants branchés. Idéal pour une visite éclair comme je m'apprête à vivre.

2-Malgré le fait que j'ai ajusté (à la hausse) le niveau de ma language maternelle, je me suis fait dire à deux reprises "Yo no hablo español" depuis mon arrivé (c.a.d. en 2hrs). Ça doit être mon débit rapide qui porte à confusion. J'essais de parler lentement et ça va beaucoup mieux depuis.

3-Évidemment, comme je voyage pas beaucoup, j'ai oublié un adapteur pour recharger mon ordinateur portable. Vous savez que pour un "geek", avoir du courant de disponible vient au deuxième rang (tout de suite après avoir accès à une connexion internet potable) dans la liste des priorités pour survivre. J'ai déniché une boutique d'électronique pas loin de mon hôtel. Comme j'ai l'air d'un type sympa, le vendeur m'a refilé un convertiseur "gratos". Mon intégration va très bien.

4-Il est 17:00pm (heure locale), je suis à 6000KM de la maison et je marche devant un pub dont le nom m'intrigue: "Les gosses du Québec".  L'endroit me semble très sympa malgré le nom et une recherche rapide sur internet me confirme que ce n'est pas un bar de danseurs, alors j'entre.  La serveuse m'offre une Molson Canadian mais j'opte plutôt pour une bière en fût locale (Calanda). L'ambiance est super, j'ai un gilet des Nordiques en avant de moi et parfois, la serveuse lâche des sacres québécois en servant les clients pour les faire rire.

Feels like home...

29 mars 2012

Autonomie et Beauté

Il y a clairement un vent nouveau qui souffle sur le WebMapping de masse. Alors qu'OpenStreetMap (OSM) a connu un léger essoufflement au cours des dernières années, il semble que les reproches à son égard (manque de données pour certaines parties du globe ou encore envers la qualité de son contenu) ne soient plus un facteur restrictif comparé à sa liberté d'utilisation. Le plus grand perdant de ce vent de changement est évidemment Google. L'apparition récente de Google Map Maker n'est donc pas une énorme surprise, mais est-ce trop peu trop tard pour ralentir le courant?
    "timeline" récapitulatif
  • Juillet 2004 - Naissance d'OSM
  • Novembre 2010 - Steve Coast (fondateur) quitte OSM pour se joindre à l'équipe BING chez Microsoft
  • 29 Février 2012 - Foursquare se joint au mouvement OSM
  • 8 Mars 2012 - Apple remplace Google Maps par OSM pour iPhoto sur iOS 
  • 27 Mars 2012 - Microsoft BING rend sa couverture aérienne disponible pour OSM
Finalement, juste avant de publier ce billet, je suis tombé sur cet article qui résume le tout assez bien également.

De la vitesse vers la beauté
Afin de rendre son service plus flexible (et surtout plus attrayant visuellement), Google a ajouté la possibilité de personnaliser l'affichage des cartes dans la version 3 de son API.  Par contre, les changements récents aux licences d'utilisation ainsi que les coûts de facturation viennent restreindre considérablement son utilisation.

En tant que développeur, ma première réaction face à la cartographique en ligne (remontons ici en 1998 avec MapQuest et Google Maps en 2004) fût:
"Tab*'!*%#? c'est donc ben vite!
Non, mais as-tu vu la vitesse à laquelle la carte s'affiche!"

La technologie étant ce qu'elle est et, nous, maintenant habitués aux performances, la vitesse n'est plus un facteur qui nous impressionne. Par contre, une belle carte nous fait encore écarquiller les yeux.  En septembre dernier, je me suis rendu à Denver pour le FOSS4G 2011 et je dois dire que je suis entièrement d'accord avec cet extrait du blogueur James Fee. Une des présentations était même dédiée aux techniques de production de "Beautiful Maps".

En terminant, voici quelques exemples de magnifiques cartes qui démontrent l'énorme potentiel de croiser Techno, Géo et Design (tiens ça ferait un bon nom de compagnie ça...). Merci à mon chum @SimonMercier qui est un véritable passionné de ce domaine émergeant et qui fait profiter sa tweetosphère de ses trouvailles:

OSM World par @stamen


Washington par @developmentseed

1 mars 2012

ConFoo & GeoTools

Voici quelques liens que j'ai trouvé intéressants suite à l'unique présentation, à saveur géospatiale, du Web Techno Conference (ConFoo) 2012.  Le conférencier est Andrei Zmievski et l'intégralité de sa présentation est disponible sur Speaker Deck:



29 février 2012

Plénière d'ouverture @confoo 2012

Je vais tenter de "live-bloguer" ma première journée à ConFoo 2012.  Vous devriez donc avoir l'information en temps réel en rafraichissant cette page:

NOTE: Le WIFI à 5.8Ghz est vraiment performant...pour l'instant

8:00AM: Arrivé au Hilton Bonaventure

8:50AM: La plénière d'ouverture n'est pas encore débuté... (déjà un retard de 20 minutes)

9:06AM: L'adapteur VGA est la cause du retard...

9:10AM: Je viens de me rendre compte qu'il n'y aura pas de présentation technique en ouverture.  Je vais donc modifier ce billet en fonction des présentations auxquelles je vais assister aujourd'hui (GIT, HTML5, Javascript, WebSocket)

9:30AM: "Git: a beginners guide for developers" par @MikeMcQuaid
Je connais Git mais pas suffisamment à mon goût.  J'espère en apprendre un peu plus sur les bonnes pratiques avec ce système de contrôle (versions) de code source.  Contrairement à SVN, Git n'est pas centralisé mais local sur votre ordinateur ce qui permet d'être totalement fonctionnel ("standalone") en mode déconnecté (sans connexion Internet) incluant tous les historiques.

Il est recommandé de ne pas utiliser un GUI pour accélérer l'apprentissage de Git.

gitx and gitk sont des meilleurs outils (que Git log) pour visualiser les statuts

Si vous avez de gros fichiers binaires à gérer, il semble que Git ne soit pas le meilleur outil (commentaires de quelques personnes dans la salle)

Le "branching" avec Git est BEAUCOUP plus simple qu'avec SVN.

Excellente référence pour Git: http://progit.org/

10:45AM: "HTML5: mode déconnecté et push" par @goldoraf
l'Application Cache permet de forcer la sauvegarde des ressources (html, js, css) même si l'utilisateur vide la cache de son browser.  Il faut ajouter un numéro de version dans ce manifeste de cache ce qui permet un rafraichissement des ressources advenant une mise à jour du manifeste.  Se référer à l'objet window.applicationCache pour plus d'information.  À noter que cette fonctionnalité n'est pas supporté par IE (éventuellement dans version 10+).

3 options pour stocker localement des données:
A) FileSystem API (Chrome seulement version 13+)
B) WebStorage (localstorage et sessionStorage) API.  (compatible avec la plupart des navigateurs)
Il est recommandé d'utiliser JSON.stringify et JSON.parse pour sauvegarder des objets dans cet hashmap persistent.  À noter qu'il y a un quota de 5Mo.  Dans les inconvénients on retrouve la performance et l'absence d'indexation dans le hash
C) IndexedDB (compatible seulement avec FF 8+ et Chrome 16+ et peut-être IE 10+)
Concepts intéressants de stockage, de requête (simili SQL) et d'indexation MAIS tout ça en local.

La librairie Lawnchair est très intéressante car elle utilise la meilleure méthode disponible pour stocker les données.

Il existe une superbe librairie Socket.IO qui permet d'utiliser les WebSockets dans TOUS les navigateurs (même sur IE 5, faut le faire).  Voir aussi la nouvelle norme Server-Sent event.  Pour faire du "push" avec du Python dans le back-end: Twisted.

13:15PM: "Migrating MVC to the front-end using Backbone JS" par Martin Drapeau
Salle pleine pour cette présentation très attendue (de ma part à tout le moins).  Désolé mais cette présentation était tellement intéressante que je n'ai pas été en mesure d'écrire des notes.  Un billet dédié à Backbone.js verra le jour sur mon blog éventuellement.




16 février 2012

Le HTML5 peut modifier vos données

J'affectionne particulièrement développer avec JQuery mais hier, je me suis buté à un problème important. En fait, le problème ne provient pas de JQuery lui-même, mais plutôt de sa conformité à la spécification W3C du HTML5 en matière de nommage des attributs non visibles.  Pour ceux, qui comme moi, aiment utiliser la méthode .data() de JQuery, cette spécification à une incidence assez importante; elle enlève systématiquement les tirets dans le nom de vos attributs...OUCH!

Si vous stockez la valeur 1 dans la variable Foo-Bar:
$('body').data('Foo-Bar', 1)
Vous pourrez ensuite la récupérer comme ceci:
console.log($('body').data('Foo-Bar')) = 1
Mais de façon interne, la valeur sera conservée sous FooBar:
$.each($('body').data(),function(i,e){console.log(i)}) = FooBar
Donc FooBar contiendra également la valeur 1:
console.log($('body').data('FooBar')) = 1
L'action suivante écrasera la valeur initiale:
$('body').data('FooBar', 2)
Dorénavant:
console.log($('body').data('Foo-Bar')) = 2
et évidemment:
console.log($('body').data('FooBar')) = 2

À partir du moment que l'on est conscient de ce problème comportement, il est facilement contournable.  Je fais partie de ceux qui essaient tant bien que mal de se conformer aux normes et spécifications dans le développement d'applications. Je dois par contre avouer que je n'aime pas que l'on altère mes données, SURTOUT sans même m'en avertir.  C'est probablement mon côté franco-canadien hyperprotecteur de mes données...

29 novembre 2011

Tragicace - Un mashup d'OpenData

Dans le cadre du Hackathon qui s'est tenu le 12 novembre dernier, @SimonMercier, @RooSoft, @jipiboily et moi même (@MartinOuellet) avons développé Tragicace.

Tragicace = 2 objectifs bien précis:
  1. Indiquer aux citoyens la présence (ou non) de travaux le long d'un itinéraire routier (entre A et B par exemple)
  2. En présence d'un chantier, il devait aussi proposer un parcours alternatif évitant ainsi lesdits travaux.

Comment ça fonctionne:
1- La liste des travaux (fournie par la Ville de Québec) a été géoréférencée (association d'une coordonnée pour chacun), stockée dans une base de données (PostGIS) et affichée sur un fond cartographique (Google Maps).

2- Après avoir récupéré les adresses de départ et d'arrivée (saisies par l'usager dans l'interface Web), le système effectue un appel au service Web de Google pour générer un parcours routier (ensemble de coordonnées formant une ligne) entre ces deux points

C'est à ce moment que ça devient vraiment intéressant:
3- Le tracé retourné par le service de Google (point #2) est décodé et converti dans un format plus compréhensible par un humain soit le WKT.

4- Cette ligne en format WKT est ensuite utilisée dans une requête SQL spatiale pour identifier si elle croise des travaux routiers (point #1)

5- Si la requête ne retourne aucun résultat, la madame est contente car elle peut se rendre à destination sans avoir à traverser un chantier et c'est ici que l'histoire se termine pour elle.

6- Par contre, si la requête retourne un ou plusieurs enregistrements, on doit trouver un parcours alternatif.

7- C'est à ce moment que AQRéseau fait son entrée dans l'équation. AQRéseau est un produit qui fournit les données officielles sur la localisation des routes (couverture de lignes), la toponymie et la classification routière de tout le Québec et ce, de façon gratuite.

8- Tout comme les travaux, nous avons donc procédé au chargement de ce jeu de données dans notre base de données spatiale (PostGIS)

9- À partir de la coordonnée du point du chantier à contourner (point #6), nous avons identifié des rues localisées autour de ce point à l'intérieur d'un certain rayon. De cette façon, nous avons obtenu une liste de rues potentielles pour éventuellement éviter le chantier.

10- Le service Web de Google nous permet d'ajouter, dans les paramètres d'appel, le nom d'une rue à utiliser pour générer des itinéraires. Ce nouveau paramètre (waypoints) retourne un nouveau tracé dans lequel le passage sur la rue en question a été forcé.

11- Cet exercice (point #10) est donc effectué en boucle (sur toutes les rues avoisinantes) jusqu'au moment ou l'utilisation d'une rue n'engendre plus d'intersection avec des travaux routiers.

http://tragicace.com/

Pas parfait:
Certains diront, avec raison d'ailleurs, que le parcours alternatif proposé par Tragicace n'est pas nécessairement le meilleur (le plus court ou le plus efficace). Il ne faut pas oublier que l'objectif premier du Hackathon était de démontrer le potentiel des données ouvertes. Dans cette optique, je considère que Tragicace en est un très bel exemple car il intègre au sein d'une même application des données provenant de deux paliers de gouvernement (municipal et provincial). Autre fait à ne pas négliger, Tragicace a été développé en quelques heures seulement par 4 personnes.

Bravo à ces organismes qui ouvrent progressivement l'accès à leurs données et merci à mes chums "geeks" avec qui j'ai passé une excellente journée le 12 novembre dernier!

Pour en savoir davantage sur les données ouvertes et le Hackathon:

22 septembre 2011

Top 10 coolest softwares discovered at FOSS4G

1) TileMill
  • Web platform for creating beautiful maps (from shapefile or PostGIS data) with a css-like online editor. It's also a tiling application (using Mapnik). 
2) GeoCat Bridge
  • This ArcGIS extension can easily publish metadata from a list of layers in the TOC into GeoNetwork BUT ALSO publish the data themselves to your WMS server (in the beta version) and keep the symbology (convert into a SLD for GeoServer or a mapfile for MapServer). 
3) Mapnik
  • Powerfull C++ library for creating beautiful maps (Desktop or Web). 
4) CartoDB
  • Online geospatial database with PostGIS in the backend (inspired from Google Fusion but OS). 
5) Node.js
  • Very powerfull javascript program to build scalable applications on server-side.
6) JQueryGeo
  • jQuery plugin that encapsulate a bunch of geolocation functionality into 6 APIs.
7) Polymaps and ModestMap
  • Two lightweight javascript libraries for displaying interactive maps on the Web.
8) CartoSet
  • Customizable geoportal solution that allows creation of nice looking maps and to publish them easily on the Web.
9) Stado
  • Very new product that enable powerfull and massively parellel processing (MPP) architecture with Postgresql and PostGIS. Seem really promising...
10) MapQuery
  • Another jQuery plug-in using OpenLayers library. 

15 septembre 2011

Openlayers Mobile (FOSS4G 2011)

Notes "en vrac" et presque "live" suite à la présentation portant sur Openlayers Mobile (FOSS4G 2011)

  • Présentateur: Tim Shaub et Éric Lemoine
  • Openlayers 2.0 sortie en 2005 (javascript non supporté à l'époque sur les appareils mobiles)
  • L'idée d'une version OpenLayers mobile provient du Code sprint à Lausanne
  • Sortie officielle de OpenLayers 2.11 la semaine dernière
  • Les événements de type "touch navigation" sont maintenant supporté:
    • pinch, pinch zoom, drag, sélection de feature, kinetic dragging
  • Les outils d'édition sont aussi implantés
  • OpenLayers n'offre pas beaucoup de "widgets" donc l'interface utilisateur doit être combiné avec d'autres frameworks tels que jQuery ou Sencha (extjs)
  • Le développement pour appareil mobile est TRÈS complexe:
    • petit écran, prolifération d'appareils (Android)
  • Il est difficile d'obtenir de la performance à cause des composantes physiques des appareils (cpu et mémoire limitée)
  • À venir:
    • meilleure documentation
    • gestion plus intelligente des projections
    • navigation plus fluide (expérience utilisateur)
    • fenêtre de type "popup" plus soignée
    • Améliorer et rendre plus simple la procédure pour "builder" les libraries d'OpenLayers en fonction de nos besoins afin de réduire la taille du fichier.

9 septembre 2011

I'm going to Disneyworld!

Plus que quelques jours avant mon départ pour Denver afin d'assister au Colloque "Free and Open Source Software For Geospatial (FOSS4G)" qui s'annonce pour être "Le Show" géospatial cette année. Je suis aussi excité que Patrick Roy en 1993 à l'approche de la finale de la coupe Stanley ou bien Tom Brady en 2002 avant sa participation au SuperBowl.  La liste impressionnante des commanditaires pour l'édition 2011 confirme la pertinence d'un tel événement et met en lumière tout le sérieux que les grands acteurs commerciaux de l'industrie accordent maintenant aux technologies OpenSource.

Denver, au coeur d'un pôle géospatial.
L'industrie géospatiale semble très active et prolifique dans la région nordique du Colorado. Le groupe de travail collaboratif "Rocky Mountain Geospatial Cluster", qui surveille la vitalité des compagnies et l'expertise oeuvrant dans le domaine vont jusqu'à utiliser le slogan suivant: “We’re not Silicon Valley, we’re the GIS Alley!

Pourquoi autant d'engouement pour cet événement
  • Le contenu des présentations rejoint la quasi totalité des solutions géopatiales OpenSource qui existent présentement ;
  • Les développeurs et architectes seront présents pour nous parler de l'état actuel de leur produit/logiciel/solution mais aussi des nouveautés à venir (ex: PostGIS 2.0 et OpenLayers mobile) ;
  • Organisé par des geo-geeks pour des geo-geeks ; 
  • Pour faire le plein de nouvelles idées/approches de développement ;
  • C'est l'endroit idéal pour bonifier/entretenir le réseau de contacts (élément primordial pour du développement basé sur des techno. OpenSource) ;
  • N'implique que des passionnés (conférenciers et participants), aucun vendeur blasé. 
Mon horaire de la semaine
Lundi AM - Workshop sur GeoNetwork ;
Lundi PM - Workshop avec OpenLayers ;
Lundi soir - Repos - Monday night football in Denver...Go Broncos Go!
Mardi AM - Workshop sur MapNik ;
Mardi PM - Workshop sur NodeJS et Polymaps ;

Mercredi au Vendredi - PostGIS (optimisation et nouveautés 2.0), WMS Shootout, Web Processing Service (WPS), OpenLayers mobile et sûrement bien d'autres trucs ou nouveautés dont j'ignore encore l'existence...

Vendredi - Repos - Match de baseball...Go Rockies Go!

En direct sur la toile
Pour ceux qui désirent en savoir un peu plus, je vous invite à me suivre tout au long de la semaine sur Twitter(@MartinOuellet) ainsi que sur mon blog car j'essaierai d'être très actif durant l'événement.

Prépare toi Mickey, j'arrive!

16 avril 2011

Foursquare day 2011 - QC

Je vous apprends sûrement qu'aujourd'hui, 16 avril 2011, c'est la journée mondiale du réseau social Foursquare© (4sqday). Pourquoi aujourd'hui?
  • 4 au carré (4square) = 16 
  • Avril = 4e mois de l'année 


À Québec, le 4sqday se déroule au Café le Nektar. Ce dernier est l'un des commerces le plus actifs à Québec en intégrant Foursquare© dans son programme de fidélisation de la clientèle. Je vous écris ces quelques lignes en direct de l'endroit, car je suis venu faire un tour (en espion avec ma fille) pour voir combien de personnes se sont spécialement déplacées pour venir souligner l'événement. Je compte entre 6 et 10 personnes (dont @NicolasRoberge et @dezjeff). Avec 22 000 nouveaux utilisateurs chaque jour (pour un total anticipé d'environ 10 millions en juillet 2011), je m'attendais à plus de monde.

Foursquare©, comparativement à Facebook© et Twitter©, est extrêmement dépendant de la mobilité. Les gens sont invités à partager leur expérience (« check-in », « tips») en temps réel et non pas de retour chez eux, les deux pieds sur le pouf. La position de force des différents fournisseurs en téléphonie mobile au Canada n'aide en rien en nous proposant des forfaits parmi les plus dispendieux du niveau mondial. De plus, les bénéfices qu'en retirent les participants sont davantage ludiques que réels (pour l'instant). Par contre, je persiste à penser que ce réseau va connaître une explosion dans le futur. Grâce à son assise géolocalisée, Foursquare© devrait éventuellement maturer et passer du simple jeu vers un puissant outil d'aide à la décision (voyage, activité culturelle, conseil gastronomique, analyse démographique et dans bien d'autres domaines encore) sans compter les « apps », les « mashup » ainsi que les « spin-off » qui en découleront.

En attendant, je retire encore un certain plaisir en accumulant les mairies et les « badges », mais ce que j'affectionne particulièrement c'est d'expliquer, à un non-initié, le fonctionnement de Foursquare et surtout les nombreuses possibilités à venir...

MartinOuellet (Foursquare "evangelist")

12 mars 2011

ConFoo Jour 2: Sous le signe de la performance

Ma deuxième journée à ConFoo fût pratiquement dédiée aux "best practices" en matière de développement Web.  Nous n'en connaissons jamais assez à ce sujet et nous oublions trop souvent de les appliquer correctement.  Sachant que 75% des visiteurs ne reviendront jamais sur votre site si la page d'accueil prend plus de 4 secondes à charger (source), mieux vaut s'y attarder.

Alors voici un rappel pour certains ou des trucs à découvrir pour les autres:
  • Les définitions de style (css) devraient toujours se retrouver dans l'entête des pages, de cette façon, le rendu de la page se fait progressivement
  • Lorsque possible (s'il ne comporte pas de document.write par exemple), le code javascript devrait toujours se retrouver à la fin des pages afin de ne pas bloquer le téléchargement simultané des autres éléments (ex: images)
  • Les fureteurs ne peuvent pas télécharger plus de 2 fichiers provenant du même domaine en même temps. Il est donc possible de les déjouer en utilisant des CNAMES différents qui pointent vers le même serveur
  • Les cookies sont choses du passé, regardez plutôt du coté des "client-side storage" du HTML5
  • Réduire le nombre d'appel HTTP-Request en regroupant le code css et js (lorsque possible) et en utilisant davantage les css sprites
  • Très important d'utiliser les outils de "minify" (Closure Compiler, YUI compressor)
  • Favoriser les data URIs 
  • Compresser le contenu (gzip)
  • Retirer les noeuds du DOM qui ne sont plus requis
  • Utiliser le doctype de HTML5 (plus léger et humainement compréhensible)
Faire du "caching":
Utiliser des outils de "monitoring":
Après tout cela, si votre site ne vous offre toujours pas les performances attendues, il vous reste le refactoring...

Excellent article de Yahoo sur le même sujet ici (avec plus de détails en anglais).

9 mars 2011

ConFoo Day 1 - Top 10 links

  1. Nice HTML5 video player: http://videojs.com/
  2. Single URL for everything video: http://vid.ly/
  3. Useless but impressive canvas video blower demo
  4. WebSocket protocol (thinks AJAX on steroids)
  5. Be aware of ClickJacking
  6. Location-based API for your apps: http://www.yellowapi.com/overview
  7. Lots of API to integrate into your apps: http://developer.mashery.com/apis
  8. High quality, cross-platform native application development with Titanium
  9. StatusNet, a flexible, Open Source, "twitter-like" enterprise social software
  10. Complementary libraries for JQuery: Underscore.js and Modernizr
Top tweet of the day (by @muhdiekuh):

OH thats actually a good way to generate a random password: let a windows user try to exit vim

Ready for day 2?

16 février 2011

La communauté "Open" de Québec

Une fois de plus, la communauté TIC de la ville de Québec a prouvé son dynamisme mercredi dernier (16 février) en réunissant plus de 80 personnes dans le magnifique auditoire de l'ENAP pour débattre du mouvement "OpenSource". La brochette impressionnante de commanditaires pour l'événement démontre assez clairement que ce mouvement est pris au sérieux (ou du moins, soulève énormément d'interrogations) dans le milieu des affaires.

OpenGov/OpenData/CloseQuebec

À l'heure actuelle, bien des villes et des gouvernements ont pris position en démocratisant l'accès à leurs données. Les villes de Vancouver, Edmonton, Ottawa et Toronto sont souvent citées en exemple tout comme l'initiative américaine http://www.data.gov/ qui est une réelle priorité pour l'administration Obama. Au Québec, le débat concernant l'accès aux données fait du sur-place depuis de nombreuses années. Nous accusons un retard important sur le reste du Canada et le fossé s'agrandit. Alors que nos données sont bien en sécurité dans des silos, ou bien revendues à d'autres membres de notre grande famille (villes, ministères, partenaires), certaines autorités, ailleurs dans le monde, les rendent disponibles au grand public (dans une version agrégée et anonymisée). Ils ouvrent ainsi la porte grande ouverte pour des produits et applications dérivés à forte valeur ajoutée.

Le Web sémantique

Dommage pour ceux qui n'ont pas encore pris le virage Web 2.0, car vous devrez bientôt accepter que nous soyons maintenant à l'ère du 3.0. Dans cette prochaine "version", le Web sémantique en sera vraisemblablement le fil conducteur. Personnellement, le terme "sémantique" m'a toujours effrayé. Par ignorance, je laissais aux autres le soin d'utiliser ce terme conceptuel et flou. Après avoir écouté attentivement la (trop courte) présentation de M. François Belleau à l'OpenCamp, ma peur s'est quelque peu estompée. La vulgarisation des concepts de base du Web sémantique dont il a fait usage a rapidement retenu l'attention de l'auditoire.

L'objectif ambitieux du Web sémantique vise à formaliser le contenu du Web afin de faciliter son utilisation par des programmes informatiques. Un formalisme qui permettrait à des MACHINES d'établir des liens à travers un ensemble de termes SANS aucune intervention humaine. Il s'agit d'une forme d'intelligence artificielle que l'on tenterait de greffer au réseau Internet tel qu'il est aujourd'hui. À première vue, ces concepts peuvent s'apparenter davantage à un quatrième épisode de la trilogie "The Matrix" mais sachez qu'il existe déjà des standards (RDF) et des langages (SPARQL) pour permettre ce type de recherches sémantiques.

Actuellement, le projet DBpedia, mené par l'Université de Leipzig en Allemagne, tente de formaliser le contenu de Wikipédia afin d'en faire une version "Web sémantique". Pour ceux qui, comme moi, ont besoin de voir pour mieux comprendre, je vous invite fortement à essayer le moteur de recherche Relfinder. Cet outil simple, et visuellement fort agréable, permet de faire ressortir des relations entre des objets (personnes, endroits, choses, etc.).

Formule gagnante

J'en étais à ma sixième participation à un événement de type "Camp". Je considère toujours que cette formule représente une plateforme exceptionnelle, car elle favorise les échanges ainsi que des débats d'idées, orchestrée par des passionnées de l'industrie. Dans une prochaine édition, il serait fort intéressant d'avoir une représentation plus importante de gestionnaires et de décideurs dans l'auditoire, car ce sont des acteurs importants qui pourront amorcer et endosser un changement de culture.

Bravo et merci aux organisateurs @ysadok @lucvaillancourt @lepatricecaron @francoisbelleau.

Fil Twitter parallèle de l'événement

13 janvier 2011

Sondage pour une formation avancée sur PostGIS?

Ce message s'adresse aux utilisateurs de PostgreSQL/PostGIS désireux d'en apprendre davantage sur ces technologies...

Montréal sera bientôt l'hôte du "Code Sprint 2011" de l'OSGeo (15-18mars). Il s'agit en fait d'un important rassemblement de développeurs/architectes des principaux logiciels "Open Source" soutenus par "The Open Source Geospatial Foundation". Pendant quelques jours, nous compterons sur la présence de plusieurs experts qui profitent de ce genre d'événements pour:
  • effectuer des corrections d'anomalies ;
  • ajouter de nouvelles fonctionnalités ;
  • décider de l'orientation future de leur logiciel.
Parmi ces gens, notons la présence de M. Olivier Courtin de la société Oslandia (France). Cette jeune entreprise est spécialisée en base de données spatiales "Open Source". Lors d'une récente discussion avec M. Courtin, ce dernier m'a confirmé son intérêt et sa disponibilité pour tenir une formation avancée sur PostGIS dans les jours qui précèderont le "code sprint".

Pour en savoir davantage sur la société Oslandia, son co-fondateur, M. Courtin ou sur le contenu proposé pour la formation, veuillez consulter la brochure suivante.

En résumé:
-Contenu: PostgreSQL/PostGIS (avancée)
-Date: 2 jours soit dimanche 13 et lundi 14 mars
-Endroit: Montréal (salle à déterminer)
-Coût: (env. 3200$CAD + salle) / (nb. participants)
-Inscription: 4 à 6 personnes

Dans un premier temps, je dois recueillir le nombre de personnes intéressées. Pour ce faire, veuillez me faire parvenir un courriel rapidement (d'ici lundi prochain le 31 janvier) en me mentionnant votre intérêt.

MartinOuellet (geomartino@gmail.com)

16 novembre 2010

Comment contourner l'absence d'entité géographique dans OSM ?

Dans le cadre des midis-conférences du CRG, j'ai assisté aujourd'hui à une présentation très intéressante de M. Stefan Keller (professeur à l'Université des sciences appliquées de Rapperwil en Suisse). M. Keller et son équipe se sont attardés à la situation suivante:

D'un point de vue SIG/GIS, la structure de donnée derrière OpenStreetMap (OSM) ne permet pas une symbolisation personnalisée par entité géographique (point, ligne, polygone)

Considérant les primitives de base d'OSM (nodes, ways, relations et tags), la possibilité de convertir ces éléments en entités géographiques devient très intéressante. Dans cette optique, les projets de recherche de M. Keller et ses étudiants ont méné à la création de OSM-in-a-box. Il existe présentement plusieurs outils de conversion pour OSM:
Par contre, ces outils demeurent étroitement liés au modèle original de données. OSM-in-a-box quant à lui, est un puissant outil (développé en JAVA) dont la pièce maîtresse est osm2gis. Ce dernier permet:
  • Extraction de données d'OSM (en supportant les filtres)
  • Conversion des données d'OSM en entités géographiques
  • Insertion automatique des données (converties) dans PostgreSQL/PostGIS
  • Récupération périodique et configurable des données afin de maintenir à jour votre base de données locale. Une fois le chargement massif initial terminé, seul le différentiel sera considéré.
Une fois les données emmagasinées localement au sein de votre base de données, elles pourront être diffusées facilement avec votre serveur WMS/WFS préféré et ce, en appliquant vos propres styles (à partir de fichiers SLD par exemple). Ce traitement était auparavant impossible à partir de la structure native d'OSM.

9 novembre 2010

Drupal: un CMS hautement spatialisé...

J'ai eu mes premiers contacts avec les CMS (Content Management System) il y a de cela quelques semaines seulement. J'avais comme objectif de mettre en place une application Web qui regrouperait les fonctionnalités suivantes:
  • Affichage d'une carte numérisée avec les options de navigation standard (zoom, pan)
  • Offrir la possibilité de dessiner des zones sur la carte (édition de point, ligne et polygone) et d'y associer du texte (formulaire)
  • Mettre en place une authentification simple mais obligatoire pour l'édition
  • Ajouter une section pour gérer les commentaires des visiteurs
Rapidement, j'ai retenu TileMapper pour tuiler la carte et Openlayers pour prendre en charge le volet de l'affichage cartographique ainsi que les options d'édition. J'étais sur le point de débuter la programmation du reste de l'application lorsqu'un collègue m'a interpellé en me disant:
"Tu sais, il existe des CMS pour gérer tout
cela et Drupal le fait très très bien!"

Il n'en fallait pas plus pour piquer ma curiosité. J'ai donc effectuer quelques recherches pour en savoir un peu plus sur ce Drupal. Ce que j'ai découvert m'a ravi :
  • Installation très simple (requiert Apache+PHP)
  • Compatible avec MySQL ou PostgreSQL
  • Excellente architecture du produit (templates, modules, "upgrade")
  • Communauté utilisateurs/développeurs importante et très active
  • Plus de 2000 modules qui viennent compléter l'application de base (Ajax, JQuery, etc...)
Mais ce qui m'a séduit davantage ce sont les nombreux modules qui touchent le géospatial:
  • Geo : pour le chargement de données géospatiales dans le SGBD ;
  • OpenLayers: affichage de carte, gestion des "overlay" et des autres sources de données (WMS, KML). Ne pas confondre avec la librarie javascript du même nom ;
  • GMAP: Intégre des Mashups Google facilement et sans connaissance de l'API ;
  • Location: Géocoder des adresses en points géolocalisés ;
  • nicemap, mapping kit et trackfield.
En conclusion, le CMS Drupal combiné avec quelques modules spécifiques m'ont permis de déployer une application Web rapidement, avec toutes les fonctions attendues et pratiquement sans programmation. Dans mon livre à moi, c'est un succès et une technologie à découvrir encore davantage.

2 novembre 2010

Installation de logiciels géo. pour les nuls...

Pour ceux qui travaillent sur une distribution CentOS ou RedHat, vous serez contents d'apprendre qu'il existe un dépôt/référentiel (de l'anglais "repository") de paquets (RPM) destinés aux principaux logiciels libres en géomatique.


On y retrouve entre autres les versions récentes suivantes:

Ceux qui ont déjà compilé le code source de ce type d'applications savent que cet exercice peut rapidement devenir un irritant majeur pour ceux qui, comme moi, ne baignent pas en permanence dans ce créneau. Munis d'un assistant comme YUM, l'installation de logiciels ainsi que la gestion de leurs dépendances devient un jeu d'enfants:
  • yum install PostGIS
  • yum install MapServer
En plus de l'application elle-même, les dépendances seront identifiées et installées AUTOMAGIQUEMENT.

Pour ceux sous Ubuntu, rassurez-vous car il existe aussi le même genre de dépôt: https://wiki.ubuntu.com/UbuntuGIS

Merci aux gens qui maintiennent ces paquetages et longue vie à ces "repository"!

28 juillet 2010

Si j'étais le CEO de Foursquare...

Je vais être franc, j'aurais aimé inventer Foursquare, je trouve c'est une excellente combinaison entre le buzz actuel envers les réseaux sociaux et la géolocalisation (mon domaine). Je me suis payé une "overdose" de "check-in" dans Foursquare le week-end dernier. J'ai visité environ 14 endroits différents, allant du parc de soccer de mon fils, du Subway, passant par le cinéma et l'épicerie du coin. J'ai amassé une quantité fulgurantes de points...mais pourquoi?.....pour qui? Malgré mon admiration pour le concept, et je ne suis pas le seul, je commence à avoir peur qu'il finisse par s'essoufler si aucun élément de motivation n'est offert aux participants/commerçants.

Ce qui m'irrite présentement:
  • Les gens qui ne portent pas attention de bien saisir les "venues". Ceux qui ne saisissent même pas l'adresse ou qui ne vérifient pas son existence avant d'en ajouter une.
  • Les gens qui ajoutent n'importent quoi comme "venues". J'ai vu des "quelques part dans le traffic" ou "la maison de Jean".
  • Le rayon permis autour d'une "venue" pour faire un "check-in" est trop grand. Je pourrais faire des "check-in" à mon épicerie en restant chez moi (mais je suis trop honnête et j'ai beaucoup trop peur de la police Foursquare)
  • J'ai tellement peu d'amis (de véritables amis que je côtoie dans la vraie vie) dotés d'un "smartphone" et qui sont branchés sur Foursquare que présentement, je suis informé des déplacements de gens que je connais à peine.
  • Comment je peux déloger un maire d'un commerce si ce dernier est un employé qui "check-in" probablement tous les jours en entrant au travail?
Si j'étais le CEO de Foursquare:
  • Je le vendrais immédiatement, je payerais mes dettes et je "starterais" autre chose, simplement pour le plaisir!

1 avril 2010

Qu'est-ce que je fais à un iPhoneDevCamp?

Professionnellement, je trouve important de se sortir parfois de son petit monde douillet et réconfortant, le mien étant la géomatique. Le fait de se questionner sur les façons d'exercer nos métiers et de s'ouvrir sur d'autres avenues nous permet de progresser. J'adore la géomatique et Google Maps est venu la démocratiser grâce à ses façons de faire innovatrices (API, AJAX, Mashups) mais aussi en revenant à la base en proposant des interfaces simples et conviviales pour la rendre accessible au commun des néophytes.

Il est évident que le monde du géospatial vit présentement un autre bouleversement majeur avec la popularité grandissante des appareils mobiles. Imaginez l'ampleur que prendra ce phénomène lorsque la technologie et les services de télécommunication seront enfin disponibles à des coûts raisonnables.

Vous savez maintenant pourquoi je me suis présenté hier (31 mars), en tant que spectateur, au iPhoneDevCamp de Québec. Voici en rafale, les sujets abordés durant la soirée:
  • Concevoir des interfaces simples avec peu de fonctionnalités
  • Ne pas réinventer la roue, pensez utiliser les contrôles natifs du SDK
  • Guide HIG d'Apple
  • Outil intéressant pour du design d'interface iPhone: Balsamiq
  • WebApps: développer pour iPhone sans se soucier du SDK et du AppStore
  • Exploiter le potentiel du HTML5 avec le fureteur "safari mobile" (@remi)
  • Outil pour les non-programmeurs iPhone: Dashcode (@brosseaub)
  • RTC Mobile, belle complicité entre un entrepreneur local (@martindemers) et le Réseau de Transport de la Capitale
  • Fil Twitter de l'événement (#iphonedevcampqc)
  • Je suis à deux doigts de m'acheter un MacBook et de me trouver une formation pour me lancer...
Bravo et merci à Mirego pour l'organisation de cet événement!

En terminant, je savais que le monde d'Apple était rigide et contrôlé mais est-ce vrai qu'il existe un accord de non-divulgation dans le contrat de téléchargement du SDK qui interdirait aux développeurs d'échanger des informations et de communiquer? Étions-nous 235 personnes dans l'illégalité hier soir à l'Ozone? J'aimerais bien entendre les commentaires des développeurs iPhone/iPad sur le sujet...