Retours sur le DrupalCamp 2018 de Montréal

En juin dernier, Savoir-faire Linux a participé à la 10ᵉ édition du DrupalCamp Montréal, qui a eu lieu à l’Université Concordia. Ce fût l’occasion de voir une bonne partie de la communauté de développeurs Drupal montréalaise, d’échanger avec les autres entreprises qui travaillent avec cette technologie et de faire l’état de l’évolution de Drupal de cette dernière année et à l’avenir.

Voici quelques retours des sessions du DrupalCamp écrit par notre développeur senior Drupal, Maxime Turcotte :

Migrez en un, migrez les tous : Migrons ensemble vers Drupal 8

Avec les avantages qu’offre Drupal 8 comparativement à Drupal 7, en particulier au niveau du support multilingue, de plus en plus de sites font la migration vers la dernière version et ce, malgré certains obstacles. Par exemple, bien que l’API du système de migration ait été depuis peu stabilisée, les migrations des traductions de contenus ne sont pas encore totalement supportées.

En plus de fournir un excellent aperçu du processus de migration et de la création de migrations personnalisées, cette présentation apporte des solutions et des exemples pour ceux et celles qui cherchent à migrer leurs sites multilingues de Drupal 7 à Drupal 8.

Besoin d’héberger des sites Drupal ? Utilisez Aegir !

Que ce soit pour un seul site ou pour une plate-forme multi-site, si vous aimez bâtir votre propre infrastructure avec des solutions libres et gérer vos sites à l’aide d’une interface web ou d’un outil en ligne de commande, Aegir est pour vous.

Dans cette présentation, on apprend les raisons historiques qui ont fait naître un système comme Aegir, les défis architecturaux, les problèmes actuels de cette architecture, quelques conseils et idées pour des situations courantes, les projets de refonte et d’amélioration des versions à venir et bien d’autre choses.

Ce que j’ai appris depuis 10 ans en gérant une boutique Drupal

Diriger une entreprise de services dans un milieu compétitif et en constante transformation comme le Web est très difficile. Quoi de mieux que de bénéficier de l’expérience accumulée par deux professionnels qui ont démarré leur entreprise Drupal il y 10 ans?

Tout le monde fait des erreurs et il y en aura toujours d’autres à faire, c’est une des leçons de cette présentation. Le risque est bien sûr nécessaire pour réussir dans ce domaine, mais la gestion du risque est ce qui différencie parfois ceux et celles qui réussissent des autres qui échouent. Que ce soit dans la recherche et le développement, dans le choix des contrats que l’on courtise ou dans les dépenses que l’on accepte ou refuse de faire, il faut être capable de prévoir si le risque en vaut la peine.

Mais outre le risque et la compétition, la collaboration et l’implication dans la communauté est ce qui semble rester le plus important pour ces deux chefs d’entreprise.

Les push notifications dans le logiciel de communication Ring

Les push notifications dans le logiciel de communication Ring

Essentielles aux applications de messagerie, de courriels ou tout autre type de communication, les push notifications sont maintenant disponibles pour Ring dans ses versions Android et iOS. Retour sur l’ajout de cette nouvelle fonctionnalité permettant d’informer l’utilisateur de nouveaux messages ou appels lorsque son téléphone intelligent est en veille.

Pour plus de détails, rendez-vous sur : https://ring.cx/fr/nouvelles

 

Revue de presse Inno #7

Mobile

Protocoles génériques et Type Erasure en Swift

Avec Swift, vous pouvez définir des protocoles en leur associant un ou plusieurs types génériques. Ces types sont définis en utilisant le mot-clé « associatedtype ».  L’appellation « type générique » est un peu usurpée ici, nous devrions plutôt parler d’un espace réservé pour un type inconnu. En effet, nous verrons que de tels protocoles n’offrent pas une grande souplesse d’utilisation lorsqu’il s’agit de réellement les considérer comme génériques.
En savoir plus :

Développement Web

Django 2.0 Release Candidate désormais disponible

Par Kévin Barralon

Le framework Django dont la prochaine version 2.0 est prévue autour du 1er décembre vient de publier sa version Candidate ce jeudi 15 novembre. Contrairement à ce que l’on pourrait penser, cette nouvelle version ne va pas apporter d’incompatibilités majeures au sein du framework. Les changements seront donc du même acabit que les versions précédentes.

Cependant, le changement important de cette version 2 sera l’incompatibilité avec Python 2.7, dont la fin du support est programmée pour 2020. Django 2.0 supportera donc au minimum la version 3.4, même s’il est chaudement recommandé de passer directement à la dernière version de Python (3.6 actuellement).

Routage d’URL

Au niveau des nouveautés, la nouvelle fonction django.urls.path() rend la syntaxe du routage des URL beaucoup plus simple et lisible. Ainsi, au lieu d’écrire : url(r'^articles/(?P[0-9]{4})/$', views.year_archive)

vous pourrez écrire : path('articles/<int:year>/', views.year_archive)

Cette nouvelle syntaxe permettra également de recevoir dans la vue (views) les arguments avec le typage défini (un nombre entier dans le cas de year au lieu d’une string).

Dans cet exemple, il n’y a toutefois pas de possibilité d’ajouter une contrainte (une année à 4 chiffres dans notre exemple). Pour cela, la fonction actuelle django.conf.urls.url() sera remplacée par django.urls.re_path(), qui permettra de conserver la possibilité de mettre des expressions régulières dans la définition de l’URL.

La fonction django.conf.urls.include() sera également directement disponible via django.urls. Pour pourrez ainsi importer vos modules de la manière suivante from django.urls import include, path.

Autres nouveautés

  • Pour les autres nouveautés : L’admin de Django 2.0 sera désormais responsive, donc adapté aux appareils mobiles.
  • Une nouvelle classe Window a été ajoutée afin de permettre l’utilisation du mot-clé OVER dans les requêtes SQL.
  • Une liste de tous les ajouts mineurs est disponible dans le communiqué officiel.
En savoir plus :

Déployer des services entiers avec Docker Swarm et Gitlab CI

Chez Savoir-faire Linux, je travaille (entre autres) sur l’infrastructure de déploiement pour plusieurs services que l’on héberge, et je suis toujours à l’affût de méthodes innovantes pour améliorer notre pratique DevOps. Présentement, le système de déploiement est axé autour de l’utilisation de Ansible pour « provisioner » un service dans une machine virtuelle, et l’ajuster au besoin après. Mais pour améliorer la stabilité de nos builds, de déploiements et l’agilité avec laquelle on peut faire des déploiements en continu, nous regardons d’autres approches DevOps, comme l’utilisation des containeurs Docker hébergés dans un Registry et déployés par un outil comme Gitlab CI.
Parmi les outils disponibles pour déployer une architecture de « microservice » (créée avec docker-compose), nous trouvons Docker Swarm. En utilisant un certain nombre de serveurs proprement configuré, on peut déployer un « stack » de containeurs avec un simple docker stack deploy. Docker va choisir par la suite la meilleure configuration pour le déploiement des différents containeurs à travers l’infrastructure du Swarm. Il va même aller jusqu’à configurer la réseautique entre les containeurs automatiquement, comme si tu utilisais docker-compose sur un ordinateur en local.
 
La meilleure partie, c’est le fait que ça marche bien avec notre système d’automatisation des builds déjà existant, GitLab CI. Nous pouvons faire le pipeline « build – test – release – deploy » à travers toute notre infrastructure avec GitLab CI et le GitLab Container Registry. Il y a toujours des parties casse-têtes à régler, mais ce système représente déjà un grand bond vers l’avant pour la simplicité et l’efficacité de notre pratique DevOps.
En savoir plus :

Le logiciel de communication Ring fait son apparition sur Android TV

Ring continue de surprendre ! Il est désormais offert sur les télévisions intelligentes et box sous Android TV. Ring devient ainsi le seul logiciel de communication disponible sur le Google Play Store Android TV, depuis l’arrêt du support et de la version TV de Skype en juin 2016. Cette offre est une déclinaison de l’application Ring, déjà disponible sur différents dispositifs tels que mobiles, tablettes, Mac et PC.

Disponible sous la licence GPLv3+, Ring est un logiciel de communication libre, distribué et universel. Les utilisateurs de Ring peuvent communiquer de différentes façons, en l’utilisant comme un téléphone, un outil de partage de médias (audio et vidéo), une messagerie, ou encore comme un socle de communication pour les objets connectés. Souvent perçu comme une alternative libre et open source à Skype, le succès et la différenciation de Ring reposent notamment sur l’utilisation d’un réseau distribué et décentralisé afin de garantir une très haute confidentialité et une meilleure protection de la vie privée des utilisateurs. En développement continu, le projet, devenu paquet GNU en 2016, bénéficie de l’appui d’une communauté de contributeurs à travers le monde et de la Free Software Foundation.

Repenser Ring pour Android TV

Afin d’offrir la meilleure expérience utilisateur, les développeurs ont retravaillé l’interface de l’application Ring Android pour s’adapter aux standards Android TV. Pour obtenir le résultat actuel, il a été nécessaire de repenser l’ergonomie  ainsi que la navigation au sein de l’application Ring pour fonctionner avec une télécommande et les composants graphiques offerts par la plateforme.

Le pattern d’architecture mis en œuvre dans l’application Ring Android a permis aux développeurs de mutualiser toute la partie métier et données de la version mobile et de se concentrer sur la partie interface graphique.

Les contraintes d’utilisabilité ont conduit les développeurs à se concentrer sur des fonctionnalités clés comme :

  • la recherche de contact
  • l’appel audio-vidéo en ligne
  • l’affichage d’écran partagés de votre interlocuteur

Ces fonctionnalités demeurent réduites, mais le développement se poursuit pour offrir dans les prochaines semaines, des possibilités d’usage élargies. Ring s’intègre pour l’instant aux  télévisions intelligentes et box sous Android TV, comme un logiciel de communication audio/vidéo simple et intuitif, dédié à un usage familial mais aussi professionnel, en se substituant aux téléphones de conférence dans les salles de réunion.

Ring sur Android TV dans les bureaux de Savoir-faire Linux

Aidez-nous à améliorer Ring !

Ring s’améliore sans cesse pour offrir le meilleur de la communication. Comme le logiciel est en processus de développement actif, quelques bugs subsistent toujours et de nombreux défis attendent encore notre équipe de développeurs. Les évaluations que nous fournissent la communauté d’utilisateurs, de testeurs et développeurs sur la qualité et l’utilisation de la plateforme sont essentielles pour nous aider à identifier les problèmes, à les résoudre et à améliorer l’expérience.

Pour la sortie de Ring sur Android TV, nos questionnements se portent sur la compatibilité des systèmes et des caméras Web autres que Logitech ainsi que sur le matériel NVHI. Aussi, nous encourageons les curieux, utilisateurs et passionnés de logiciels libres à tester Ring sur différents supports et dans différents environnements. Votre expérience a été une réussite ? ou des crashs subsistent avec votre matériel ? Faites-nous part de vos commentaires en écrivant à Ring@savoirfairelinux.com. Vous participerez vous aussi à l’amélioration de Ring !

Téléchargez Ring sur Android TV

Si vous souhaitez essayer cette nouvelle expérience de communication, sachez que Ring est dès à présent disponible en téléchargement gratuit sur le Google Play Store

Revue de presse Inno #5

Développement Web

Node.js publie la branche 8.x en LTS

Le calendrier de publication de Node.js planifie des mises à jour sur le support à long terme (LTS) chaque octobre normalement, et cette année ne fera pas d’exception. Node.js offre aux développeurs un joyeux cadeau d’Halloween cette année en qualifiant sa version actuelle (8.x) comme une version LTS stable. Cela signifie que les fonctionnalités qui ont été à la fine pointe du développement depuis le début de l’année 2016 ont finalement été rendues disponibles aux utilisateurs qui ont besoin de l’environnement stable et bien testé qui leur est offert par une version LTS.
 

Les nouvelles fonctionnalités très attendues de Node.js 8.x incluent le support au complet pour async / await dans le noyau même de Node.js, des mises à jour au moteur V8, une implémentation HTTP / 2, une nouvelle version de NPM qui permet le versionnage des paquets par épinglage avec les lockfiles, et bien plus encore.

Pour en savoir plus :

Mobile

Firebase Dev Summit

Le Dev Summit de Firebase vient de se terminer et plusieurs annonces ont été faites:
 
Suite au rachat de Fabric par Google, Crashlytics va être intégré à la console Firebase. Ce nouveau système de remontée de crash bénéficiera d’accès aux autres services de Firebase, notamment aux Cloud Functions; ce sont des fonctions (lambdas) déclenchées sur la base de trigger interne à Firebase ou externe par le biais d’une API REST.
L’avantage ici sera de pouvoir déclencher une Cloud Function en réponse à certains crashs remontés. Un crash dans le flow principal d’utilisation de l’app pourrait déclencher l’envoi d’un email à toute l’équipe pour accélérer sa résolution. Une CloudFunction pourrait également se charger de créer une demande sur un outil de gestion.  

Google met le machine learning à l’oeuvre avec un nouveau service, Predictions permettant d’identifier des groupes d’utilisateurs en se basant sur leurs utilisation de l’application. Cela permet ensuite via Firebase de proposer à ces groupes des offres ou des fonctionnalités exclusives afin de conserver leur engagement.
Pour les autres annonces c’est par ici: