Le “Quick-Phone”, découvrez notre interphone fait maison avec écran tactile !

L’équipe Ingénierie de produits de Savoir-faire Linux, ainsi que l’équipe du projet Ring, se sont récemment installés dans les nouveaux locaux sur la rue Clark à Montréal. Mais après le bonheur de l’emménagement, un problème apparut : à l’heure du déjeuner, les livreurs devaient cogner à la porte pour rentrer. Notre équipe a donc imaginé, conçu et construit un système d’interphone surnommé « Quick-Phone » (inspiré de QTQuick) pour gérer l’accès au bureau. Et voilà comment l’histoire du « Quick-Phone » fait maison commence.

Une idée de départ
Comme la plupart des entreprises, nous disposons tous ou presque d’un téléphone de bureau qui se connecte à un réseau interne en utilisant le protocole SIP. Nous décidons d’utiliser le serveur open source Asterisk afin de simplement installer un téléphone SIP régulier sur le mur extérieur pour établir une connexion entre les invités qui se tiennent à la porte et les personnes à l’intérieur. Nous voulions allé même plus loin. Pourquoi ne pas concevoir un interphone SIP moderne, sexy avec écran tactile ? Un développement open source dans un système embarqué avec une interface utilisateur… Facile, c’est ce que nous développons tous les jours pour nos clients !

Avec Technologic Systems
Pour démarrer, nos amis de Technologic Systems nous ont généreusement fait parvenir leur nouveau système tactile TS-TPC-7990 pour les besoins de notre interphone maison. Cette carte intègre un CPU ARM Quad Core NXP i.MX6 de 1 GHz avec un puissant GPU et un ensemble de codeurs / décodeurs matériels pour prendre en charge les applications graphiques et multimédia.

Système embarqué TS-7990 de Technologic Systems complet avec écran tactile capacitifn

Nous avons défini l’objectif de valeur minimum pour que le produit ait une interface simple qui répertorie tous les utilisateurs pour appeler directement une personne du département. Pour ce faire, nous avons conçu notre interface utilisateur (UI) avec Qt QML, en profitant de l’accélération matérielle pour obtenir plus de  réactivité. QML est un outil génial pour la création d’interfaces UI complexes avec OpenGL. Avec l’aide du GPU, QML offre un fonctionnement sans accroc sur les plateformes embarquées. Puis, nous avons utilisé «Qt-cinématique expérience 3D» qui fonctionne à merveille sur TS-7990, en ne consommant qu’environ 20% de la capacité de l’UC.

De plus, en utilisant un décodeur matériel dans le pipeline GStreamer, nous avons pu décoder 720p h24 stream avec presque aucune utilisation du CPU. Même si nous avons décidé de ne pas ajouter d’appels vidéo pour cette première version, ces expériences ont montré que cette carte était déjà capable de supporter des applications multimédia. En ce qui concerne le système technologique prêt à l’emploi, il fournit déjà un support pour Qt QML dans leur couche Yocto. Nous avons profité de cette opportunité et nous avons commencé à coder dans la langue QML et par la même occasion,  contribuer à la communauté open source Yocto.

Pour alimenter le système avec des données,  nous avons récupéré dans un premier temps tous les noms d’utilisateurs, numéros de postes et photos du trombinoscope présents dans notre système de gestion intégré (la plateforme ERP open source Odoo). Nous les avons stockés dans un fichier avec un simple client REST. Une étape simple mais nécessaire pour s’assurer que l’ordinateur intégré ait accès à son propre fichier indépendant de données.

Ensuite, nous avons intégré une célèbre SIP stack, pjsip et son python wrapper pour développer un simple appelant SIP. Nous avons choisi pjsip pour trois raisons. Tout d’abord, c’est une bibliothèque de communication multimédia fiable, écrite en langage C. Nous avions auparavant déjà utilisé ses bibliothèques de bas niveau pour notre téléphone DHT / SIP : Ring, et le fonctionnement était très satisfaisant. Deuxièmement, le pjsip est très efficace. Ses bibliothèques de haut niveau supportent déjà un ensemble de codecs audio tels que les codecs Speex, iLBC, GSM, G711, G722 et L16. Enfin, nous connaissions très bien les tenants et les aboutissants. En fait, en quelques heures, nous avions développé un SIP basé sur le python pjsip pour gérer les appels depuis l’interphone.

Tout assemblé, tout connecté !
Avec la soirée d’inauguration des nouveaux bureaux, nous savions que c’était le bon moment pour installer le prototype – un petit cadeau d’ouverture pour ainsi dire ! C’était aussi l’occasion de démontrer notre expertise, plus précisément notre capacité de développement logiciel et d’assemblage avec un composant industriel pour en faire un objet connecté dernier cri  ! Restait le montage de la planche sur le mur d’entrée. Nous avions besoin d’une boîte en bois sur mesure, d’une alimentation et d’une connexion, tout en disposant d’une sortie «Ethernet».

Le processus de confection de la boîte en bois par des ingénieurs de produits

Quelques problèmes ont été rencontrés, car la carte ne prenait pas en charge ‘Power-Over-Ethernet’. Nous avions besoin jusqu’à 19W (à <28V), différent d’une configuration PoE typique. Nous avons donc manipulé un injecteur PoE passif afin d’utiliser notre propre alimentation et piraté un câble Ethernet pour diviser l’alimentation du tableau. En ce qui concerne la boîte en bois, nous avons conçu un cadre personnalisé quelques coups de bombes de peinture et le tour était joué !

Test driving the ‘PoE’ setup

Après avoir monté l’appareil, nous avons fait un peu plus de débogage afin de réduire la vitesse du lien. C’était nécessaire car notre câble Ethernet piraté n’était plus correctement blindé. Mais à la fin, deux heures avant l’arrivée des invités d’inauguration, nous étions fiers : nous pouvions établir le «premier appel» entre le couloir et notre bureau. Le lendemain, le livreur est entré avec un sourire radieux sur son visage : Il n’attendait plus à la porte !

Une petite ligne de commande pour déboguer et la magie opère.

Tout en open source
L’ensemble du projet a été construit à l’aide d’outils et de bibliothèques open source. En fait, toute personne intéressée peut suivre des étapes simples afin de créer sa propre version. Visitez le dépôt GitHub pour obtenir des instructions sur la façon de construire votre propre image pour un TS-TPC-7990. Le code source de l’application QML est également disponible sur GitHub.

Un travail d’équipe
Ce fut un projet amusant qui a le mérite de fonctionner efficacement, comme une unité clé en main. Nous avons usé de l’expertise et de l’inspiration de toute l’équipe pour ce petit défi technologique. C’est ce à quoi nous nous concentrons tous les jours. Pour ce projet interne, nous avons utilisé la même «Méthodologie de développement agile» que nous utilisons pour nos clients. Nous avons définit les acteurs du

Une fin heureuse pour l’équipe prête à accueillir le monde !

projet : deux parties prenantes, un propriétaire de produit et l’équipe de développement. Nous avons organisé de courtes réunions pour comprendre les besoins, fixer les priorités, estimer l’effort pour effectuer chaque tâche, et les diviser en itérations de courts métrages. Nous avons également fixé des délais d’itérations régulières, le premier étant la journée d’inauguration. Maintenant, nos intervenants sont satisfaits, mais bien sûr, ils ont demandé quelques améliorations supplémentaires. Nous poursuivons le travail. Histoire à suivre !

Sous-chef, un projet innovant à la fois social et collaboratif

Sous-chef, un logiciel libre au service d’organismes à but non lucratif figure parmi les finalistes du Gala de reconnaissance en environnement et développement durable de Montréal 2017. Découvrez cette initiative sociale et solidaire, fruit d’une collaboration montréalaise inédite !

Il y plus d’un an démarrait l’aventure Sous-chef, un logiciel de gestion de popote roulante, piloté par Savoir-faire Linux pour les besoins de Santropol roulant, un service unique au Québec de popote roulante qui cuisine, prépare et livre plus d’une centaine de repas chauds, sains et nutritifs chaque jour à des personnes en perte d’autonomie. En 2016, Santropol Roulant souffrait de ne pas disposer de système d’information puissant et notamment d’une base de donnée pour faciliter sa gestion.

Sous-chef. Planifier. Livrer. Aider !

L’idée de Sous-chef est alors née ! L’objectif : simplifier la logistique en améliorant certains processus comme la gestion des données, le module de facturation et la livraison. Sous-chef tend également à augmenter l’impact communautaire en développant une meilleure gestion des restrictions alimentaires, en améliorant l’autonomie d’alimentation des bénéficiaires ainsi que l’expérience des bénévoles.

Sous-chef joue donc un rôle clé dans la chaîne de services. Il permet de :

  • Concilier restrictions alimentaires des clients rencontrant des enjeux de santé ;

  • Générer les plans de route changeant quotidiennement pour les bénévoles qui feront la livraison  ;

  • Identifier au mieux les envies, les aptitudes des clients et proposer des activités adaptées à leurs besoins (ateliers de cuisine, événements ou infolettres).

Et ses impacts socio-économiques sont nombreux ! L’apparition de Sous-chef a permis de soutenir l’accès à une saine alimentation et à l’agriculture urbaine en servant des repas équilibré, notamment par la réappropriation d’espace agricole en ville. Il renforce le développement de l’économie sociale et solidaire, en facilitant la mission des popottes roulantes. Il incite à l’utilisation des transports actifs et collectifs, en centralisant les commandes et en optimisant les déplacements et la livraison des repas. Enfin, il contribue au rayonnement de la culture locale en développant une collaboration étroite avec les fournisseurs locaux.

Née de la culture du libre

Créé dans la culture du libre, Sous-chef est un logiciel entièrement réutilisable par d’autres acteurs. Distribué sous licence libre, le logiciel est disponible et gratuit et donc chacun peut utiliser, installer et même le modifier pour l’adapter à ses besoins. Ainsi, d’autres popotes roulantes peuvent utiliser le logiciel sans frais et la durée de vie du projet se trouve prolongé par la capacité à réutiliser le code de ce projet.

Ce projet rassembleur repose sur une collaboration enrichissante des mondes communautaire (le Santropol Roulant), universitaire (la Maison du logiciel libre), professionnel (Savoir-faire Linux), sans oublier l’énergie et le dynamisme des communautés de développeurs et bénévoles impliqués (Python Montréal, Pyladies Montréal et Montréal Django).

L’engagement social de Savoir-faire Linux a représenté un investissement caritatif total de 1300 heures, avec un total de 16250 lignes de codes générées lors de divers Hacknight animés par nos équipes.

Initiative pilote du programme Initiatives Solidaires

Ce projet constitue une initiative pilote du programme Initiatives Solidaires pour Savoir-faire Linux qui est aujourd’hui en voie de généralisation. En effet, Savoir-faire Linux considère le logiciel libre comme étant un bien commun et s’engage à aider à combler les besoins en TI des OBNL. Le programme Initiatives Solidaires est destiné à renforcer l’engagement de Savoir-faire Linux comme acteur dans l’économie sociale et solidaire au Québec et à tisser des liens entre les communautés de développeurs bénévoles et le milieu associatif. Ce programme nous permet également de sensibiliser nos partenaires et employés au rôle du logiciel libre et à l’engagement citoyen.

Nous sommes donc très fiers de Sous-chef, qui incarne le premier projet solidaire de Savoir-faire Linux et qui souligne par sa réussite et sa nature libre,  l’importance des logiciels libres dans l’accès aux ressources et au savoir pour un monde plus solidaire.

Trois défis technologiques pour adapter FFmpeg aux standards TR-03

L’industrie de la radiodiffusion aujourd’hui

« Aujourd’hui, la magie du cinéma et de la télévision, c’est une histoire de sorcellerie technique » (SMPTE, 2017). Les grands radiodiffuseurs (comme Radio Canada) dépendent en grande partie d’équipements de radiodiffusion professionnels aux standards développés par la Société des Motion Pictures et Television Engineers® (SMPTE®). En plus d’arrimer par des standards universels, les diffuseurs et les fournisseurs d’équipements, la SMPTE contribue à faire progresser l’ingénierie de l’image dans l’industrie mondiale de la radiodiffusion. Présentement, l’industrie se base sur des équipements puissants mais lourds, capables de transmettre des données brutes (c’est-à-dire des signaux vidéo numériques non compressés et non cryptés) vers des équipements (terminaux) de télédiffusion (TV, ordinateur, mobile, etc.). Récemment, notre équipe d’ingénieurs s’est lancée dans l’aventure (soutenue financièrement par Radio Canada) pour tester une hypothèse technologique : Transmettre des données brutes de 3,5 Gbps, à l’aide de la plateforme FFmpeg et d’un serveur standard, le tout, sans passer par un équipement spécialisé.

Savoir-faire Linux relève le défi
L’hiver fut froid et enneigé à Montréal. Nous nous sommes donc réchauffés en passant du temps sur l’antre de FFmpeg. Notre but était de mettre en place un pipeline TR-03/SDI pouvant traiter plusieurs flux HD sur un serveur standard, tout en fabricant des dérivés basse définition du même flux grâce à FFmpeg.
Image result
Logo de FFmpeg

Plusieurs enjeux sont apparus sur notre chemin. Tout d’abord, le format TR-03 ; celui-ci n’était pas supporté dans la version upstream de FFmpeg. Le second fut la quantité de données à traiter : on parle d’un débit d’environ 3Gb/s, ce qui, d’après les développeurs de FFmpeg, n’était probablement pas possible à traiter. Enfin, il nous fallait ajouter du transcodage dans le pipeline, ce qui impliquait une charge encore plus importante sur le CPU.

L’implémentation de TR-03 ne fut pas le plus grand défi car le format vidéo était relativement simple. Nous avons donc rapidement mis en route un émetteur en utilisant GStreamer, qui possédait déjà les capacités nécessaires à l’envoi d’un tel volume de données.

Big Buck Bunny est un court métrage d’animation animé de l’Institut Blender, publié sous la forme d’un film open source sous Creative Commons License Attribution 3.0.

Une fois le flux de données en place, les freins à la performance sont devenus plus évidents. Pour identifier clairement ces freins, nous avons écrit plusieurs scénarios de référence utilisant des tests unitaires et LTTng (le roi des traceurs système sur Linux). Cela nous a permis de mettre le doigt où nous perdions des paquets, en l’occurrence, ici au niveau de la socket dans le noyau, et au niveau des buffers de l’interface réseau. Étant donné que nous contrôlions étroitement le traitement des données, il fut relativement facile d’ajuster la taille de ces buffers tout en conservant des délais acceptables. Ensuite, nous avons remarqué que le thread de FFmpeg responsable de la collecte et de décodage des données monopolisait à lui seul tout un cœur du CPU, causant occasionnellement une perte de paquets lorsque nous n’étions pas assez rapide à récupérer les données du buffer de la socket. Pour palier à ce problème, nous avons découplé le travail de collecte des données du travail de décodage. La mise en place consciencieuse de ces étapes nous a permis d’obtenir un pipeline complet ne souffrant d’aucune perte de paquets. Nous avons donc pu célébrer notre réussite avec un bon gâteau, quelque verres et un film HD que nous pouvions enfin regarder (je ne m’attendais pas à ce que Big Buck Bunny soit si drôle à regarder).

La dernière mise à jour et les nouveaux défis

Le 5 avril dernier, les contributions développées et affinées par l’équipe ont finalement été intégrées à FFmpeg, ce qui signifie que leur preuve de concept a rencontré les normes énoncées par la communauté FFmpeg et fait désormais partie de la plateforme open source.

Pour notre équipe Ingénierie de Produits, c’est une aventure trépidante et prometteuse. En dépit de tous les risques et défis, notre équipe a empiriquement démontré la possibilité d’exécuter des pipelines de traitement SDI sur un serveur standard utilisant la plateforme FFmpeg. Cette expérience est une réussite, révélant en bout de ligne l’immense potentiel de FFmpeg dans l’industrie de la radiodiffusion. Pour continuer à adpater FFmpeg aux normes de SMPTE 2110 – en constante évolution – notre équipe fait désormais face à un autre défi de taille. FFmpeg ne supportant pas la synchronisation comme décrit dans SMTPE 2110, nos experts évaluent maintenant la possibilité d’apporter les contributions nécessaires pour relever ce nouvel enjeu !

Auteurs :

  • Damien Riegel,
  • Eloi Bail, et
  • Stepan Salenikovitch.

Savoir-faire Linux, prête pour la 7e édition du WAQ !

Fière partenaire du WAQ, Savoir-faire Linux vous attend dès mardi prochain au Terminal du Port de Québec pour vivre une expérience numérique forte en apprentissage et découvertes !

Plus grand événement numérique francophone en Amérique du Nord, le WAQ accueillera pour sa 7e édition pas moins de 1200 participants et 83 conférenciers, du 4 au 6 avril au Terminal du Port de Québec. Cinq salles de conférence aux thématiques distinctes sont prévues dans lesquelles les plus grandes tendances techniques et technologiques du Web y seront abordées.

En nouveauté cette année, l’équipe du WAQ  réunit 8 sommités du milieu qui offriront 8 classes de maître de niveau avancé. Les participants pourront y approfondir des sujets comme l’intelligence artificielle, le Deep Learning ou encore le Marketing digital.

Chaque année, la programmation du WAQ se distingue par sa grande qualité : des conférences de haut niveau, des tables rondes et des ateliers autour des meilleures pratiques du Web. Devenu un incontournable pour les acteurs de l’industrie, le Web à Québec est également reconnu pour être un espace de réseautage professionnel privilégié.

Depuis cinq ans, Savoir-faire Linux soutient avec fierté cet événement phare de la Semaine Numérique de Québec. Cet accompagnement à plusieurs niveaux nous permet à la fois de partager notre expertise à l’ensemble de la communauté Web au Québec et d’échanger avec elle. Cette 7e édition ne fera pas exception !

Savoir-faire Linux animera deux ateliers et une soirée Années 80 le mercredi 5 avril !

Le premier, sous la houlette de Frédéric Guimont, l’un de nos développeurs front end, portera sur le format SVG. Le second sera l’occasion pour nos développeurs Anthony Guimard et Alexis Pieplu de démystifier react.js.

Le mercredi 5 avril,  Frédéric Guimont, bédéiste et développeur Web, sera insatiable sur la résurgence du format SVG ainsi que ses nouvelles utilisations. Il fera part de ses recherches en la matière pour montrer que le SVG ne sert pas uniquement à créer des icônes en haute définition.

Puis, nos experts en react.js, Anthony Guimard et Alexis Pieplu feront une présentation de cette bibliothèque JavaScript, qui, de prime abord, semble complexe… Heureusement, ils s’attacheront à la démystifier et à vous montrer pourquoi elle est si attractive !

Enfin, pour terminer cette journée de façon remarquable, rejoignez-nous pour un 5@7 aux couleurs fluo et aux tubes mémorables sur le thème des Années 80 !

Bon WAQ 2017 à tous !

Savoir-faire Linux et le CTIC s’unissent pour la numérisation des petites entreprises d’Ontario

Logo CITC        Logo Savoir-faire Linux

Toronto, le 29 mars 2017. Le CTIC et Savoir-faire Linux s’unissent dans le cadre de l’Initiative de Numérisation des Petites Entreprises (INPE), un programme de formation à temps plein qui rapproche les jeunes et les petites entreprises pour résoudre les nombreux défis numériques auxquels font face les entreprises d’aujourd’hui. Une centaine de jeunes âgés de 20 à 29 ans, de niveau post-secondaire sans emploi ou sous-employés, auront ainsi accès à une formation gratuite pendant 24 semaines pour devenir des chefs de file de la transformation digitale. Une première session de cours a déjà commencé à Ottawa le 23 janvier dernier et ce projet pilote devrait s’étendre à de nouvelles cohortes d’étudiants au cours des six prochains mois, à North Bay et à Toronto en mars, puis à Ottawa et Toronto en avril.

Financée par le gouvernement de l’Ontario, l’INPE permet aux jeunes et aux petites entreprises de répondre ensemble aux défis que représente la transformation numérique des entreprises. Le programme vise entre autres l’acquisition de compétences d’affaires et de leadership, ainsi que des compétences techniques que les jeunes pourront mettre à profit au cours d’un stage 60 jours au sein des entreprises participantes. Dans ce nouvel environnement, chaque participant approfondira ses compétences en gestion de projets, en collecte et en intelligence de données, en entrepreneuriat et en prise en main de progiciel de gestion intégré (ERP), sans oublier les notions fondamentales en vente, en marketing et en comptabilité pour mettre en place des solutions technologiques efficaces et ainsi améliorer les opérations de l’entreprise.

Savoir-faire Linux assure plus de la moitié des formations en classe. Dès le départ, les étudiants sont immergés dans l’univers des affaires avec un cours intensif sur la stratégie et l’innovation, dans lequel les formateurs de Savoir-faire Linux mettent l’accent sur la 4ème révolution industrielle entraînée par le numérique. Le cours se concentre essentiellement sur l’automatisation des opérations administratives, le rôle des technologies dans la réduction des coûts d’exploitation des petites entreprises et l’amélioration des services auprès des clients. La formation de Savoir-faire Linux est en prise directe avec la réalité. En classe, les formateurs aident les étudiants à comprendre et à utiliser les technologies pour répondre aux besoins d’affaires, tandis qu’en entreprise, ils mettent ce savoir en application sur des enjeux concrets et complexes. Ce programme donne ainsi aux étudiants la chance d’obtenir des expériences et des enseignements précieux en classe et en milieu de travail, tout en soutenant la croissance et l’effort d’innovation des petites entreprises ontariennes.