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)