Québec 24/7 (quebec247.org) est un tableau de bord public permettant de superviser en permanence différentes métriques librement accessibles au Québec. Il agrège sur une même page des informations en temps réel concernant les hôpitaux, l’infrastructure DNS, les services en ligne des banques, les transports en commun, les principaux sites web du gouvernement, etc. Initié au mois de juin par l’équipe Supervision de Savoir-faire Linux, ce projet libre et ouvert est prêt à recevoir de nouvelles contributions sur Github.

Page d'accueil de Québec 24-7

Pour chaque métrique, des niveaux d’alerte ont été choisis, et s’ils sont dépassés, la métrique apparaît en orange (alerte) ou en rouge (critique). Cela permet de voir en un coup d’œil ce qui fonctionne ou pas.

Les sources de données

Québec 24/7 utilise trois différents canaux pour récupérer ses données :

  • Il les demande à des API (interfaces de programmation permettant de créer des liens entre différents logiciels).
  • Il les calcule en vérifiant, par exemple, que les sites web du gouvernement répondent correctement aux requêtes HTTP.
  • Il les extrait de pages web.

L’application va ensuite regrouper ces données par type (hôpitaux, fournisseurs d’accès Internet, etc) afin de les agréger et d’en afficher la synthèse sur la page d’accueil. Un clic sur une boîte permet d’accéder à plus de détails.

Feuille de route et améliorations

La prochaine étape pour Québec 24/7 est l’historisation des données et l’ajout de graphes. Il est en effet très intéressant d’observer les corrélations entre différentes métriques : par exemple, le nombre de vélos Bixi en utilisation est-il lié à l’indice UV ? :-)

Nous aimerions également ajouter de nouvelles métriques au tableau de bord et sommes donc en permanence à la recherche d’API ou de données en temps réel. Le projet est hébergé sur Github et, bien entendu, ouvert à la collaboration.

» Plus de détails sur Quebec247.org

Capture d'écran (Scrabble)J’ai plus de 120 applications installées sur mon téléphone intelligent. Oui, je sais, c’est beaucoup, d’autant que certaines disposent d’une foule de permissions. Régulièrement, mon système d’exploitation mobile m’informe que l’une d’entre elles n’en a pas encore assez. Il lui en faut plus, mais l’éditeur ne dit pas pourquoi. À première vue, cela me semble dangereux, mais qu’en est-il vraiment?

Pour le savoir, j’ai discuté cette semaine avec Émeric Vigier et Alexandre Lision, deux ingénieurs logiciels de Savoir-faire Linux impliqués dans plusieurs projets d’applications mobiles, dont SFLphone pour Android, actuellement en phase bêta.


Christian – Récemment, j’ai envoyé un courriel au développeur d’un jeu de Scrabble dont la mise à jour réclamait cette nouvelle permission : « Accès aux images, vidéos et fichiers audio stockés sur l’appareil, ainsi que sur un support de stockage externe. » Je voulais savoir pourquoi. Il m’a répondu que « le systeme Android ne permet pas un contrôle très fin des permissions. La seule action potentielle visée par cette permission consiste à enregistrer (par un appui long sur le bouton « Mélanger ») une capture d’écran qui peut m’être envoyée par mail à des fins de débogage. » Puis-je le croire sur parole? Et pourquoi ne pas l’expliquer clairement dès le départ?

Émeric VigierÉmeric Vigier – C’est une réponse sensée. Aujourd’hui, la plupart des applications mobiles demandent également l’accès aux photos et au système de fichiers afin de pouvoir changer un avatar, créer un fond d’écran, etc. S’il s’agit d’une application en laquelle tu avais confiance auparavant et qui a bien fonctionné jusqu’ici, la nouvelle autorisation correspond probablement à l’ajout d’une fonctionnalité.

Aurais-tu des exemples d’applications qui t’ont trahi ou qui ont vendu des photos de nus présentes sur ton téléphone? (rires) Les applications d’ordinateur n’ont pas besoin d’autorisation pour accéder à ces données et personne ne trouve cela inacceptable.

Alexandre LisionAlexandre LisionJe suis d’accord avec Émeric. Les nouvelles autorisations ne sont pas forcément injustifiées et correspondent souvent à l’ajout de fonctionnalités. Le NFC ou la nouvelle génération de composants Bluetooth Low Energy, par exemple, offrent de nouvelles possibilités qui se traduisent par de nouvelles fonctionnalités et, donc, de nouvelles permissions. Google a le mérite de lister clairement à l’utilisateur la liste des autorisations avant le téléchargement. Et puis les permissions ont été grandement affinées, regarde la liste.

Alors, certes, il est toujours possible qu’une permission soit détournée de son usage premier, mais si tu pars de ce principe, tu ne fais plus grand chose avec ton téléphone. Les permissions pourraient être encore plus affinées (par exemple ne donner accès qu’à un dossier de photo spécifique au lieu de tous) mais cela alourdirait considérablement la configuration d’une application. Et la liste de permissions ressemblerait aux conditions d’utilisations d’iTunes, que personne ne lit ou à peu près.

ChristianD’accord. Reste qu’une saine transparence de la part des développeurs pourrait s’inscrire parmi les bonnes pratiques de l’industrie, non? Si les développeurs prenaient la peine d’informer le public des objectifs précis visés par chaque permission, ils informeraient et éduquerait le public qui, actuellement, ne s’en soucie guère. Cette divulgation constituerait aussi un engagement explicite de leur part de ne pas dépasser un périmètre d’action donné. Cela permettrait à des geeks, des médias ou des associations de vérifier qu’ils sont effectivement de bonne foi. En cas d’activité non documentée, le public finirait par le savoir. Bref, cette communication ouverte permettrait de maintenir un lien bidirectionnel de confiance et d’imputabilité entre les deux parties.

Émeric – C’est un vœu pieu, mais à mon avis idéaliste. Rien n’empêcherait un hacker de programmer une application réalisant une fonction de retouche d’image et documentant le fait qu’il a besoin d’accéder à tes images pour le faire. Tu l’accepterais et, en arrière-plan, l’application ferait de la reconnaissance d’image sur tes photos pour potentiellement reconnaître (feu) Oussama Ben Laden et transmettre l’info au gouvernement américain. Aucune divulgation volontaire ne pourrait empêcher les applications frauduleuses.

AlexandreIl faut quand même noter que Facebook s’est lancé dans l’explication de chacune des permissions que son application Android demande. Je n’ai pas d’autre exemple en tête, mais je sais que certains développeurs Android donnent la raison des permissions requises par leur application sur le Play Store. Au final, l’utilisateur devient quand même responsable à partir du moment où il clique sur le bouton « Accepter ». C’est à lui d’évaluer les risques qu’il est prêt a prendre.

En cas d’abus, un utilisateur geek aura évidemment plus de chance de tirer la sonnette d’alarme et de propager l’info. De nombreux outils permettent de vérifier le fonctionnement d’une application – wireshark pour la capture du traffic réseau, android debug bridge pour afficher la console d’événement du téléphone dans un terminal, etc. Les moins geeks auront intérêt à n’installer que des applications bien notées dans le Play Store ou provenant d’une source sûre. Il est en revanche beaucoup plus dangereux d’installer une application téléchargée sur un site inconnu et recommandée par personne, car il est peu probable qu’elle soit passée par un quelconque processus de validation.

ChristianÀ cet égard, est-ce que les utilisateurs de iPhone sont mieux protégés que ceux d’Android?

Émeric – Les dernières versions d’Android sont beaucoup mieux protégés que les précédentes. Le problème, c’est que très peu d’utilisateurs ont la dernière version, car le travail de mise à jour est dévolu au manufacturier de l’appareil et que celui-ci ne fournit que rarement cet effort lorsqu’il s’agit de téléphones bon marché.

Avec iOS, c’est différent. Apple fournit le matériel ET le logiciel. Ils ont infiniment moins de modèles différents à maintenir. C’est ainsi que Tim Cook peut se vanter que 90 % des utilisateurs d’iPhone ont la dernière version. Et c’est en ce sens qu’ils sont mieux protégés que les possesseurs d’Android.

D’un autre côté, le modèle « Google et Apple contrôlent tout » n’est pas mieux. Il faut bien comprendre que dans tous les cas, même si tu n’installes aucune application, tes données personnelles seront quand même accessibles par le constructeur (Apple, Samsung, etc.), donc par un certain nombre d’employés, de partenaires ou d’organisations. [NDLR: voir à ce sujet les conjectures récentes de Jonathan Zdziarski sur iOs]

Le dernier paragraphe de cet article propose que les utilisateurs d’Android puissent activer ou désactiver chacune des permissions de leurs applications. Cela donnerait pour sûr du travail aux développeurs qui devraient s’assurer que la leur fonctionne dans de nombreuses configurations différentes. Mais cela pourrait répondre efficacement à tes craintes.

AlexandreIl faut aussi tenir compte des réactions humaines. Avec Apple, tu ne découvres pas les permissions requises lors de l’installation de l’application, mais pendant son utilisation. Tu peux alors en refuser certaines, mais le fait est que l’utilisateur est mis devant le fait accompli, ce qui peut avoir un effet plus pernicieux. Au lieu de s’interroger sur la logique de l’application ou sur la crédibilité du développeur, on va souvent se dire&nbsp: « Bah! À quoi bon m’inquiéter maintenant alors que je ne suis plus qu’à un clic de ce que je veux faire! ».

Mais, comme l’indique Émeric, Apple a démontré que l’on peut utiliser une application de façon partielle, tant et aussi longtemps que les permissions ne sont pas interdépendantes. Android adopte d’ailleurs également ce système sur certains points sensibles, comme la géolocalisation ou l’activation du Bluetooth, par exemple.

Émeric – Blackberry OS 10 (BB10) a un fonctionnement similaire : l’utilisateur peut activer et désactiver les autorisations de chaque application de manière précise. Evidemment, s’il désactive toutes les autorisations requises, il y a peu de chance que l’application fonctionne correctement. Quant à Firefox OS, je n’ai pas encore eu l’occasion de le manipuler mais j’ai l’impression, d’après ce que je vois ici, qu’il a un fonctionnement plus proche d’Android sur ce
point.


Ce que je retiens de ce bref échange, c’est que je me fais peut-être un peu trop de souci à ce sujet, mais il est évident que je ne suis pas le seul et que la situation est perfectible.

  • Dans la société hyperconnectée d’aujourd’hui, sans voir le mal partout ni renoncer au téléphone intelligent, il est préférable d’être conscient des risques qui l’accompagnent et de les maîtriser.
  • Ainsi, tout effort visant à mieux informer le public, à l’éduquer aux aspects techniques de la mobilité numérique et à lui donner plus de contrôle sur les options de confidentialité représente, à mon avis, un pas dans la bonne direction.
  • Même si cela complique les choses en fragmentant l’écosystème, le fait d’avoir le choix entre plusieurs plate-formes permet de choisir en connaissance de cause celle dont l’approche nous convient le mieux.

Qu’en pensez-vous?

sflphone - The free software enterprise-class softphone for GNU/Linux

L’équipe de développement du client SIP/AIX2 pour Linux SFLphone est fière d’annoncer la sortie de SFLphone 1.4.0. Voici les principales informations accompagnant la sortie de cette nouvelle version.

Maturité de la vidéo

Parmi les nombreux changements et améliorations, notons que l’implémentation de la vidéo a été retravaillée en profondeur afin d’assurer une meilleure robustesse dans des conditions très diverses et de rendre la configuration plus flexible. Il est maintenant possible de diffuser en temps réel plusieurs types de flux vidéo ou de fichiers image et d’activer le partage d’écran en cours d’appel.

Améliorations audio

Autre fonctionnalité remarquable : le support du système audio JACK, largement utilisé dans l’industrie de l’audio professionnelle.
Grâce à l’amélioration de la mise en cache temporaire (buffering), de la latence et du rééchantillonnage audio, la qualité sonore est également sensiblement meilleure.

Journal des changements

Démon

  • Support JACK Audio
  • Support vidéo par défaut
  • Fonction de partage d’écran
  • Possibilité de diffuser des fichiers vidéo, images et texte
  • Support de GnuTLS comme alternative à OpenSSL
  • Configuration caméra persistante (par caméra)
  • Changement de source vidéo en cours d’appel
  • Activation ou désactivation de la vidéo pour chaque compte
  • Masquage des pertes de trame
  • Support RTCP
  • Compilations réalisées avec clang

Client KDE

  • Gestionnaire de contacts aux fonctionnalités complètes :
    • Ajout, modification et gestion des sources de contacts
    • Suppression de contacts depuis l’interface
    • Sources de contacts disponibles pour la saisie automatique (auto-completion) ou l’indicateur de présence
  • Effets vidéo de base tels que rotation et rapport hauteur/largeur défini
  • Mode vidéo plein écran

Client Gnome

  • Vidéo à fenêtre unique
  • Nouvelles icones
  • Validation partielle des certificats SSL

Processus de design dans le cadre de projet web adaptatif

Depuis l’agrandissement du bureau Savoir-faire Linux de Québec subséquent au rachat de L3interactive, une entreprise spécialisée dans le développement web en logiciel libre, l’équipe design et, plus largement, frontend travaille et améliore son processus de design.

Ce processus est souvent passé en revue et amélioré en fonction des post-mortem ou des simples observations consignées au fil du déroulement des projets.

Pourquoi établir un processus de design?

Les raisons sont multiples mais, principalement, cela nous permet d’optimiser le déroulement du travail au cours d’un projet et de contrôler la qualité du produit livré. Les étapes de création deviennent aussi très claires pour le client.

Un processus peut-être considéré comme une feuille de route théorique des étapes et des bonnes pratiques à suivre, dotée d’une certaine flexibilité en fonction des équipes, du projet ou du client.

Le cas des projets web adaptatifs

C’est sans doute là que le processus est le plus nécessaire. Étant donné la complexité de ce type de projet, il est important d’avoir une bonne feuille de route qui soit compréhensible et bien comprise par l’ensemble des intervenants du projet.

 

Le processus en détails

Pour chaque projet nous adoptons la méthodologie agile, ce qui permet principalement de voir le projet se monter au fur à mesure des itérations et de le réorienter au besoin. Chaque étape de ce processus est de plus soumise à une assurance qualité du visuel et des fonctionnalités garantissant la conformité et la qualité de nos livrables.

Processus de design - Site web responsive - Savoir-faie Linux

1. Recherche et définition

Recherche et définition en début de projet web

Un premier rendez-vous est nécessaire pour apprendre à se connaître, pour nous assurer que nous comprenons le secteur d’activité et la nature de l’entreprise cliente. Nous abordons entre autres les motifs de la refonte, les objectifs à atteindre, les cibles visées et les appareils à supporter.

Dès cette première réunion, nous établissons les protocoles de communication, les étapes, les livrables, les échéanciers, les rôles et les attentes.

Les informations utiles sont retranscrites dans la documentation.

 

2. Documentation

Documentation projet web

Véritable bible, le document de référence est mis à jour dès le début du mandat et jusqu’à la fin des maquettes filaires. Il permet d’expliquer, d’annoter tout ce qui est nécessaire à la bonne compréhension du projet. Chaque intervenant, chez Savoir-faire Linux comme chez le client, est ainsi à même de bien comprendre le projet. L’arborescence des sites est intégrée au document.

Exemple de documentation

 

3. Les maquettes filaires (wireframes)

Exemple de wireframe

Une fois que nous avons tous les éléments en main, des premières maquettes filaires (ou wireframes) cliquables sont produits. Afin de réduire le coût, nous ne produisons que celles qui sont nécessaires à la couverture de l’ensemble des besoins. Elles sont déclinés dans les deux résolutions extrêmes (ordinateur de bureau et mobile).

Même si le projet comporte la portabilité sur tablette, en règle générale, nous ne nous attaquons à celle-ci qu’à partir du prototype. Le projet ayant déjà été pensé aux deux résolutions extrêmes, nous réutiliserons alors les comportements conçu soit pour le mobile, soit pour l’ordinateur de bureau.

Exemple de maquette filaire

 

4. Le prototype

Exemple de prototypage rapide

Cette étape permet de projeter rapidement les wirefames et d’être sûr que tout fonctionne bien. Le prototype est un bon outil pour vérifier les hypothèses établies en phase de wireframe. Plus tôt l’on se rendra compte des ajustements à faire, moins cela aura d’impact sur le projet en termes de calendrier ou de budget.

Exemple de prototype html

Exemple de prototypage rapide (animation de jpeg)

 

5. Les maquettes graphiques

Exemple de maquette graphiques

En accord avec la charte graphique de l’entreprise ou selon la direction que celle-ci souhaite donner à son projet web, nous développons des maquettes graphiques pour ordinateur et mobile. Toutes les maquettes filaires ne sont pas forcément déclinés. Le but consiste à couvrir les gabarits nécessaires de façon à donner une projection cohérente du futur site web. Souvent, au lieu de faire une page, nous extrayons ses composants que nous designons directement dans une page UI, composée de tous les éléments nécessaires du site web.

Exemple de maquettes graphiques

 

6. Le guide de style

guide-de-style

La création d’un guide de style est une pratique plutôt émergente mais nécessaire, surtout dans le cadre d’un projet adaptatif ou d’un site comportant beaucoup de contenu. Ce guide rassemble une collection de règles ou de composants définissant les conventions de style à utiliser pour le projet. En général, on retrouve les éléments de la page UI, mais de façon interactive. Cette étape est faite par un intégrateur graphique, qui retranscrit les éléments des maquettes en code pouvant être interprété par les navigateurs. On cherche ainsi à réduire le coût tout en augmentant la qualité. Le client pourra par ailleurs réutiliser ce document pour d’autres projets.

Guide de style

 

7. L’intégration graphique

intégration graphique

Nous finalisons l’intégration graphique en repartant du prototype développé et y intégrant les éléments du guide de style, en commençant par la version mobile afin d’optimiser ses performances. Nous faisons en sorte que tout le contenu soit régi par la feuille de style (CSS), que son intégration soit conforme aux normes du W3C ainsi qu’aux principes d’accessibilité. Le respect de ces standards à notamment un impact positif sur le référencement.

SIte web de la SSQ

 

8. Lancement

La récompense de tant d’efforts est arrivée. Nous avons pour coutume de dire que la mise en ligne n’est pas la fin d’un site internet, mais au contraire, son commencement. En effet, un site web est une matière vivante qui nécessite une entretien régulier afin d’être toujours à son meilleur.

 

Exemples de réalisation

Logo OpenStackAmazon est sans contestation possible le numéro un de l’infonuagique publique. Son succès tient en une recette secrète dont on connaît les ingrédients : élasticité horizontale, répartition des charges (load balancing) et service à la clientèle. Mais si Amazon a su s’imposer grâce à son avance technologique, l’hébergeur a aussi des défauts…

Lisez la suite de ce billet dans mon blogue de Direction informatique Lien.