Revue de presse Inno #2

Mobilité

FireStore : la nouvelle base de données en temps réel de Google

En tant que développeur mobile, nous rencontrons une problématique récurrente : la gestion de la synchronisation des données avec un back-end et la prise en compte d’un mode déconnecté.

Google apporte une nouvelle réponse à cette question : FireStore. Ce service, encore en version bêta, fait partie de la suite FireBase. Il est présenté comme la nouvelle solution de stockage en temps réel de Google. Ce stockage est orienté document (NoSQL), cela signifie que l’on y stocke des collections de données organisées en couple clé/valeur, à la manière de JSON. Cette solution gère ainsi de façon transparente la synchronisation des données entre plusieurs appareils, mais également la perte de connexion. En cas de coupure réseau, les données sont alors toujours accessibles localement et les mises à jour sont répercutées de façon transparente à la reprise de connexion. Ci-dessous deux tutoriaux Youtube de Brian Advent vous montrent la facilité d’intégration de ce service dans une application de messagerie. Les deux tutoriaux d’intégration du SDK FireStore sous iOS de Brian Advent sont disponibles aux adresses :

Vous pouvez aussi accéder à la documentation officielle de FireStore.

RxSwift 4, supportant Swift 4, se précise en version RC.

Les développeurs, comme à chaque montée de version de Swift, travaillent d’arrache-pied pour mettre à jour leurs librairies et ainsi supporter la nouvelle version du langage. C’est bien entendu le cas pour les développeurs derrière RxSwift, qui ont déployé ce 8 octobre la version candidate de RxSwift 4. Cette version est disponible via les différents outils de gestion de dépendances et Github. Les auteurs d’RxSwift encouragent la contribution et vous présente les règles à suivre.

Découverte de l’architecture Model View Intent

J’avais un gros à priori sur l’architecture MVI, à cause de son nom. Pour moi, un Intent = new Intent(). Du coup, j’ai tout de suite pensé tomber dans un pattern d’architecture se basant sur les Intent Android, j’imaginais déjà le code spaghetti remplaçant RX par des IntentReceiver/Broadcaster. Un gros retour arrière donc. Mais suite à la Droidcon NYC, mes petits camarades ont assisté à une présentation MVI et ont eu l’air convaincu.
J’ai donc retroussé mes manches et mis les mains dedans. J’ai d’abord trouvé cet article par Hannes Dorfmann qui explique de façon très didactique les avantages du MVI. Tout d’abord, le MVI adresse une problématique non abordée dans les autres patterns comme le MVVM ou le MVP : le State ou l’état de l’application. 
En implémentant un Reducer, on peut être capable de gérer les changements d’état de l’application de façon déterministe.  
Hannes Dorfmann propose son implémentation du MVI, mais, elle est écrite en java et utilise l’héritage. La prochaine étape serait de proposer une implémentation, en Kotlin par composition/protocol.

Revue de presse Inno #1

Mobilité

Kotlin : Faster Lazy for Android

Par Loïc Siret

L’utilisation de Lazy en Kotlin permet de déclarer une Property sans l’initialiser immédiatement : Elle le sera lors de son premier usage ! Particulièrement utile lorsque que l’on veut mapper une Property sur le résultat d’un appel à une base de donnée par exemple.

iOS : Présentation de Weavy au CocoaHeads Meetup du 21 septembre dernier

Par Thibault Wittemberg (conférencier)

Dans le monde réel, le tissage implique l’utilisation d’un métier à tisser pour entrelacer deux ensembles de fils à angle : le “Warp” qui s’étend verticalement et le “Weft” qui la traverse horizontalement. Dans cette présentation, nous avons démontré qu’une technique aussi ancienne peut être très utile, notamment lors de la navigation dans une application iOS. L’objectif est de se débarrasser des limitations inhérentes aux “segues” ou au code technique de modèles de conception comme “Coordinator”.

Weavy est un framework open source, basé sur un tel modèle de tissage, qui favorise la programmation réactive, la navigation déclarative, l’injection de dépendance et la séparation des préoccupations.

Développement Web

Intégration de React dans Drupal Core

Par Alexandre Lision

Des discussions ont été entamées à la DrupalCon Vienna pour intégrer React dans Drupal Core. Pourquoi cette discussion maintenant ? Car React a beaucoup plus de traction que d’autres framework JS, et s’est démocratisé. De plus le récent retournement de veste sur la nouvelle licence de React sous MIT va dans la bonne direction pour considérer son intégration dans Drupal. Toutefois, le manque d’expertise JS au sein de l’équipe de contributeurs Drupal pourraient être un bloquant.
Le mix entre Drupal et React native permettrait de bénéficier d’un CMS démocratisé et robuste avec une solution Front-end moderne.

Actualités diverses

Après-midi Contribution, vendredi 29 septembre

L’après-midi Contribution est un événement récurent organisé par le département Innovation digitale, Web et mobilité de Savoir-faire Linux. Il permet à nos consultants de consacrer une partie de leur temps à contribuer à des projets open-source ainsi qu’à se former sur de nouvelles technologies.

Découverte d’un module Python de reconnaissance optique de caractères (OCR)

Par Kevin Barralon

Tesseract est moteur de reconnaissance optique de caractères (OCR) qui reconnaît plus de 100 langues. Il existe un module Python permettant d’utiliser le moteur en important le paquet. Le paquet reconnaît les formats jpeg, png, gif, bmp, tiff, et d’autres grâce au paquet PIL (ou Pillow). Une après-midi a été dédiée à la découverte du paquet et à son installation dans un conteneur Docker dans le but de l’utiliser conjointement avec le micro-framework Python Flask et de créer une API Rest avec notamment un endpoint qui permettrait de renvoyer les résultats de la reconnaissance des caractères d’une image soumise via l’API.

DebConf17 : un événement mondial 100% Debian à Montréal

                                    


Du 5 et 12 août, Savoir-faire Linux était l’un des commanditaires majeurs de la DebConf17 qui se déroulait cette année à Montréal. Une occasion en or de soutenir la communauté Debian et de renouveler notre engagement à l’un des plus grands projets Open Source au monde.

DebConf17, la conférence annuelle des développeurs et collaborateurs de Debian, a rassemblé cette année plus de 405 personnes venues du monde entier, autour de 169 événements dont 89 entretiens, 61 séances de discussion et 6 ateliers. Nul doute, la DebConf17 fut un succès ! Pleinement engagés dans cet événement et fiers contributeurs de logiciel libre, nous avons endossé tour à tour des rôles de conférencier, commanditaire, participant à la foire de l’emploi et même hôte de soirée durant l’événement.  Retour sur une semaine intense 100% Debian !

L’honneur de faire partie des commanditaires majeurs de la DebConf17

Chez Savoir-faire Linux, nous nous sommes engagés à bâtir une économie durable fondée sur la coopération et le partage du savoir. Nous croyons fermement que notre force repose sur la qualité de notre partenariat avec les acteurs du monde du logiciel libre et nos contributions à de nombreux projets communautaires. Dans la logique de cet engagement, nous avons forgé au fil des ans, de solides partenariats avec notamment  la Free Software Foundation, la Linux Foundation, la communauté Debian, Python et d’autres projets de logiciels ouverts et collaboratifs. Évidemment, lorsque nous avons appris que la conférence annuelle de Debian se tenait à Montréal, nous étions ravis de soutenir et d’accueillir ce rassemblement mondial chez nous !

Des employés à la fibre DebConf17

Lucas Bajolet en conférence

Aussitôt confirmé, nos équipes ont commencé à réfléchir et proposer des animations, ateliers et conférences. Impliqués plus largement dans diverses communautés Linux, nous avons proposé de nombreux sujets gravitant autour du thème :

 

Dans l’ordre, Alexandre Viau et Andreas Traczyk
Présentation d’Amir Taherizadeh
Foire à l’emploi avec notre président Cyrille Béraud

Une foire à l’emploi fructueuse et conviviale

Le samedi 5 août, nous avons participé à l’activité officielle de réseautage professionnelle. Notre président, Cyrille Béraud, s’est également joint à l’événement pour répondre personnellement aux questions et rencontrer les nombreux talents qui sillonnaient le hall. Les rencontres et les surprises furent nombreuses,  les discussions riches et passionnantes, aboutissant parfois sur la promesse d’une nouvelle rencontre et même, d’une future collaboration.

Soirée Ring on ! Célébrez et échangez avec l’équipe Ring

Ring est une plateforme de communication (texte, audio et vidéo) libre et universelle qui préserve la confidentialité et la vie privé des utilisateurs. Reconnu paquet GNU par la Free Software Foundation, cette application fonctionne sur de nombreuses plateformes et ne cesse de gagner en fonctionnalités et en stabilité.

L’équipe Ring de Savoir-faire Linux

Nous souhaitions profiter de l’effervescence de la DebConf pour célébrer la sortie de la version stable de Ring : Ring 1.0 – Liberté, Égalité, Fraternité. Avec l’aide des organisateurs de DebConf, nous avons diffusé l’invitation pendant l’événement et avons accueilli une foule d’invités remarquables ! Parmi nos invités figuraient, Daniel Pocock (Projet Debian), John Sullivan (Freee Software Foundation), Michaël Meskes (Credativ) ainsi que de brillants développeurs, passionnés et collaborateurs proches. La soirée a été marquée par la présentation de l’équipe Ring de Savoir-faire Linux, saluée avec les honneurs pour son travail acharné depuis des mois et la sortie cette dernière version de Ring.

De gauche à droite, Chloé Nignol de DeGama, Amandine Gravier, directrice des communications chez Savoir-faire Linux et Dorina Mosku, coordonnatrice du projet Ring
Au centre, Daniel Pocock du projet Debian et à droite, John Sullivan de la Free Software Foundation

 

 

 

 

 

 

DebConf17 touche à sa fin mais la mission continue !

La triste vérité est qu’encore une fois, nous devions dire au revoir à DebConf et à son public bigarré et attachant ! Mais le mot de la fin est : DebConf18 sera encore plus sensationnel ! Peu importe si  la DebConf17 se termine, parce que le projet Debian fêtera pour la Debconf18 ses 25 ans d’existence avec toujours plus de nouveautés, de partage et d’excitation autour du plus populaire système d’exploitation Linux !

Savoir-faire Linux reçoit l’attestation de performance au programme ICI ON RECYCLE!

Montréal, le 27 juin 2017 – Savoir-faire Linux s’est vu décerner la plus haute distinction au programme ICI ON RECYCLE!, soit l’Attestation de performance de niveau 3. Il s’agit d’une reconnaissance officielle du gouvernement du Québec, instaurée par RECYC-QUÉBEC afin de souligner les efforts remarquables des industries, des commerces et des institutions (ICI) qui ont implanté, dans leur établissement, des mesures permettant la gestion responsable de leurs matières résiduelles.

L’Attestation de performance ICI ON RECYCLE! de niveau 3 est remise aux organisations qui atteignent des standards élevés conformément aux objectifs de la Politique québécoise de gestion des matières résiduelles 1998-2008. Rappelons que le programme ICI ON RECYCLE! comporte trois niveaux de reconnaissance : le Niveau 1 – Engagement, le Niveau 2 – Mise en œuvre et le Niveau 3 – Performance. Ce dernier, obtenu par Savoir-faire Linux, vise à reconnaître les efforts des établissements qui atteignent un taux élevé de mise en valeur de leurs matières résiduelles, en plus d’avoir réalisé des activités d’information et de sensibilisation auprès de leurs employés et d’avoir mis en place des mesures de réduction à la source et de réemploi.

Tête première dans les poubelles

Cette reconnaissance fait directement suite à l’activité de caractérisation Tête première dans les poubelles, organisée plus tôt dans l’année par le Comité environnemental de l’entreprise et ses employés bénévoles.

L’activité avait permis de démontrer que les taux de mise en valeur obtenus pour chaque type de matières caractérisées entraînaient une performance globale de 71,6%, un résultat honorable qui soulignait toutefois quelques points à améliorer, notamment sur la revalorisation des déchets et des matières putrescibles.

Un engagement inscrit dans l’ADN de Savoir-faire Linux

Pour Savoir-faire Linux, l’obtention de cette distinction est un élément de fierté confirmant son engagement en faveur de la protection de l’environnement. Savoir-faire Linux s’investit depuis 2011 dans une démarche de développement durable qui s’inscrit parfaitement dans son ADN. Elle promeut des pratiques responsables, à travers une politique environnementale qui vise à internaliser les problématiques environnementales dans sa conception/production, économiser au maximum les ressources naturelles et minimiser ses impacts sur les écosystèmes. Par ailleurs, l’entreprise, qui développe et implante des logiciels libres, mise depuis sa création sur la coopération et la mutualisation des connaissances pour favoriser, dans une économie digitale en plein boum, un partage et une réutilisation des biens. Une fibre écoresponsable qui fait donc directement écho à sa mission et à sa vision d’un avenir durable et solidaire.

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 !