Revue de presse Inno #8

Spécial PyCon Canada 2017

Un numéro spécial PyCon cette semaine ! Fier commanditaire de la PyCon Canada 2017 qui se déroulait du 18 au 21 novembre à Montréal, Savoir-faire Linux vous partage dans cette nouvelle édition, les retours de nos spécialistes Python qui étaient sur place.

PyCon 2017

L’équipe de Savoir-faire Linux à la Pycon

Tutoriel : Writing Tests that Write Themselves ! Par David Kua

Par Ernesto Rodriguez Ortiz

Vous allez aimer la puissance des tests basés sur les propriétés !

Je viens de découvrir les tests basés sur les propriétés lors de la récente PyCon Canada 2017. Un grand merci à David Kua qui a préparé, présenté et partagé avec nous un excellent tutoriel autour des tests basés sur les propriétés en utilisant la librairie Hypothesis (Welcome to Hypothesis!). Le test basé sur les propriétés a été popularisé par la bibliothèque Haskell Quickcheck. Une belle découverte donc, qui me fait désormais oublier les contraintes liées aux tests !

Comment ça marche ?

L’hypothèse génère des données aléatoires correspondant à vos spécifications et vérifiant que votre garantie est toujours valable pour chaque cas de test. Regardez cet exemple vraiment simple :

# FILE NAME division.py

#! / usr / bin / env python
# - * - codage: utf-8 - * -

from hypothesis import given, settings
import hypothesis.strategies as st


# On a écris ces deux lignes trop vite ...
def division (x, y):
    retour x / y


# Hypothèse va nous montrer nos erreurs ...
@given (st.integers (), st.integers ())
@settings (max_examples = 1000)
def test_commutativity_pbt (x, y):
    affirmer la division (x, y) * y == x

Ensuite, lancez :

pytest --hypothesis-show-statistics division.py

Vous devriez voir comment Hypothesis a trouvé le cas :

ZeroDivisionError: division by zero

C’est un outil vraiment puissant, surtout si vous feuilletez l’excellent tutoriel de David Kua et consultez la documentation de Hypothesis.

Closing Keynote – Mariatta Wijaya

Par Sébastien Blin

Lors de la conférence de clôture, Mariatta Wijaya – Core Developer de Python – nous a présenté Python 3.6, en mettant de l’avant une PEP de cette version : la PEP 498: Literal String Interpolation. Mariatta est revenue sur l’histoire de cette PEP, en partant du courriel reçu de la liste de diffusion, il y a quelques années. Les “f-string” permettent d’améliorer la construction de chaînes de caractères contenant des variables, le tout de manière plus performante et plus lisible que l’opérateur % ou la fonction str.format :

>>> import datetime
>>> name = 'Fred'
>>> age = 50
>>> anniversary = datetime.date(1991, 10, 12)

>>> f'My name is {name}, my age next year is {age+1}, my anniversary is {anniversary:%A, %B %d, %Y}.'
'My name is Fred, my age next year is 51, my anniversary is Saturday, October 12, 1991.'

>>> f'He said his name is {name!r}.'
"He said his name is 'Fred'."

Elle a ensuite énoncé les autres PEP releasées avec Python 3.6 (dont la PEP 628 pour math.tau, qui n’existe pas, mais tau vaut 6.28). La liste complète des PEPs pour Python 3.6 est visible ici : Python 3.6 Release Schedule.

Dans tous les cas, Mariatta nous invite à passer à Python 3.6, dès aujourd’hui, ainsi qu’à contribuer à l’évolution de ce langage, au travers l’écriture de PEPs, sur ce dépôt Github.

Contributions

GitHub dévoile son outil de discussion par équipe

Par Romain Bertozzi

La contribution au logiciel libre, c’est avant tout du partage où la communication prend une place essentielle. Dans ce contexte, GitHub a annoncé lundi 20 novembre dernier, le déploiement de discussions par équipe avec Introducing Team discussions.

L’idée est de soulager les issues et pull requests de conversations dont certaines n’ont pas forcément leur place. Ces issues et PR gagneront donc en efficacité et en lisibilité.

De plus, ces nouvelles discussions, publiques ou privées, auront leurs URLs dédiées et pourront être efficacement partagées et citées. Chez Savoir-faire Linux, nous accueillons cette nouvelle avec enthousiasme.

Nous pensons en effet que cela amènera plus de clarté aux échanges qui façonnent la direction d’un projet. La centralisation et la facilité de partage des discussions sont des atouts qui permettront de favoriser la transparence et la pérennité des échanges.

Reste à voir comment cette fonctionnalité sera adoptée par les utilisateurs de Github, et si ces mêmes utilisateurs ne disposent pas déjà d’alternatives et d’habitudes bien ancrées.

Revue de presse Inno #3

Développement Web

PyCon 2017

Par Jacob Cook 

La PyCon Canada arrive à grands pas, c’est la plus importante conférence canadienne du monde Python qui aura lieu à Montréal cette année, du 18 au
21 novembre.
  
En tant qu’entreprise de développement logiciel bien ancrée dans les communautés Python et Django de Montréal, Savoir-faire Linux y
enverra un nombre important de ses développeurs. Pour les deux premières journées de la conférence, il y aura des keynotes et des 

discours sur les développements les plus utiles dans la communauté Python, et aussi plus généralement dans le développement logiciel de nos jours. Le dimanche 19 à 11h50, je vais présenter un panel sur les façons les plus efficaces de créer une application Django qui profite de la puissance front-end de React. Avec des présentations fortes intéressantes prévues, et 70 % des billets déjà vendus, la PyCon Canada de cette année s’annonce comme la plus grande de toute son histoire !

Communautés et Projets libres

#Hacktoberfest ou comment un projet libre en dormance est maintenant plus actif que jamais

Par Samuel Sirois

Istvan Szalaï et moi souhaitaient redémarrer un projet libre en dormance que nous avions démarré l’été dernier: RingMe.js.

Pour nous motiver un peu, Istvan a proposé d’inscrire le projet dans le cadre de l’initiative Hacktoberfert de DigitalOcean. Plus une forme de ludification de la contribution pour nous deux que pour attirer des bidouilleurs•euses à contribuer au projet, (nous avons eu la surprise de voir des contributeurs proposer du code) apportant des solutions à des tâches, anomalies et fonctionnalités auxquelles l’étiquette #Hacktoberfest a été ajoutée.

La clef du succès ?

Quelques hypothèses :

  • Les tâches, anomalies et nouvelles fonctionnalités sont précises, simples et d’envergure raisonnables (merci Istvan);
  • Le JavaScript est un language sexy en 2017;
  • La base de code est suffisamment simple et embryonnaires pour qu’il soit facile à de nouvelles•aux contributrices•eurs de comprendre le code et de proposer une solution cohérente;
  • Les fichiers README, CONTRIBUTING et des gabarits de soumission de code sont présents dans le projet (merci Emmanuel);
  • Les animateurs (Istvan et moi) essaient de répondre aux demandes de contributions et aux questions dans les 48 heures;
  • #Hacktoberfest est un événement Web populaire.

Merci à:

Merci à Istvan d’avoir eu l’idée d’inscrire ce projet au #Hacktoberfest.

Merci à Jacob de nous aider à valider des demandes de contributions de façon efficace grâce à sa connaissance de l’écosystème JavaScript moderne.

Merci à toutes les contributrices•eurs au projet (en date de publication de cet article):

Mobilité

Secret: Psss…  Sais tu comment fonctionne le Android View State storing ? 

Par Loïc Siret

Qui n’a jamais éprouvé des difficultés ou des comportements « bizarres » lors du stockage/restauration de vues personnalisées ?

Voici un article de elye qui explique le système de sauvegarde des vues et comment s’affranchir de ces problèmes : A must know secret about Android View State storing mechanism!