Conférence sur Python et sur la communication

Traditionnellement, Python est utilisé pour créer des services réseau, un backend sur le Web et, bien sûr, pour collecter et traiter des données, généralement Big. Nous essaierons de discuter de ces domaines à parts égales avec les rapports sur les écosystèmes lors du prochain Python Conf ++ de Moscou. Cette conférence pour les développeurs Python se tiendra à Moscou les 22 et 23 octobre et je dirige son comité de programme. On pourrait dire que le programme a souffert, nous avons réussi à le faire exactement comme nous l'avions prévu - diversifié. Le backend, le Big Data et les fonctionnalités du langage, nous les combinons harmonieusement avec des rapports sur les tests, l'intelligence artificielle, la sécurité et DevOps. Je voudrais partager le résultat avec vous à l'avance, je vous propose donc un examen des rapports sur les sections - ce qui ne vous concerne en aucune façon peut être ignoré.



Bien, attendez, ne vous précipitez pas pour passer au sujet suivant. L'image ci-dessus indique: «Conférence professionnelle» - c'est-à-dire qu'elle est destinée aux développeurs professionnels. Mais les invités que nous voyons ne sont pas seulement des développeurs Python eux-mêmes, mais aussi des programmeurs qui utilisent principalement une pile différente, mais qui s'intéressent aux capacités de Python pour les tâches auxiliaires. Les derniers qui restent sont des rapports, par exemple, sur Apache Kafka, Wagtail, SQLAlchemy ou linter.

Tous les rapports seront construits de manière à ce que vous puissiez comprendre même sans comprendre le sujet spécifique du discours, élargissant ainsi vos horizons, mais en même temps, les pros seront en mesure de résoudre les problèmes les plus complexes. Classiquement, il y a trois blocs de sujets et «divers»:


Notre conférence porte principalement sur la communication. Il est entendu que l'orateur pose un sujet intéressant, raconte sa vision, partage son expérience, suggère de discuter des approches possibles à ses collègues. Tout cela signifie que si vous parvenez à amortir votre propre introversion et à utiliser toutes les possibilités au maximum, alors après la conférence, vous serez plein de nouvelles idées et façons de résoudre les anciens problèmes. Quels problèmes seront discutés, lisez la suite.

Développement réseau, backend et web


Nous commençons l'examen par une section sérieuse et assez universelle, qui comprend près d'un tiers de tous les rapports.

Traitement de données hautes performances en Python


Python est actuellement le principal outil de conversion de grandes données non structurées. numpy et numba sont des bibliothèques populaires, mais en travaillant avec elles, il est facile pour un développeur de tomber dans le piège et de perdre toute productivité. Donald Whyte (Engineers Gate) expliquera comment numpy / numba fonctionne sous le capot et comment ils utilisent la vectorisation pour traiter rapidement de grandes quantités de données. Ces outils ont permis à Donald d'accélérer les calculs scientifiques de 10 fois ou plus , il sera très utile d'adopter son expérience.

Expérience avec Apache Kafka dans World of Tanks


Levon Avakyan dans son rapport expliquera comment Apache Kafka est utilisé dans les projets Wargaming, quelles difficultés surgissent à cet égard et comment les surmonter. Ce n'est pas un secret non plus que Wargaming utilise largement Python pour le développement. Levon partagera son expérience de l'utilisation de diverses bibliothèques pour Apache Kafka en Python .



Bergeronnette printanière: quand vous voulez quelque chose de plus agréable que juste Django


Dans le monde du développement PHP, il existe WordPress sur lequel presque tout le monde peut créer un site simple et connecter un spécialiste plus tard lorsque vous aurez besoin de développer ce site. Dans le monde Python, jusqu'à récemment, il n'y avait rien de tel. Mais maintenant, le projet Wagtail est apparu - un CMS à part entière basé sur Django pour les sites Web modernes. Igor Mosyagin de Lamoda vous expliquera comment fonctionne Wagtail, où il est pratique à utiliser et est-ce vraiment aussi simple que cela.

Django sous microscope


À partir du rapport du développeur Core Django Channels Artyom Malyshev (que nous connaissons déjà, par exemple, de cette présentation ), vous apprendrez tous les détails de la vie des mécanismes internes de Django du premier octet de la requête HTTP au dernier octet de la réponse .

Une véritable extravagance vous attend sur le fonctionnement des formulaires d'analyse, la compilation de SQL, la mise en œuvre du moteur de modèle HTML, la gestion du pool de connexions, etc. Tout cela par ordre chronologique de traitement des objets WSGI.

Au-delà de Jupyter. Systèmes de construction de pipelines de traitement des données


Andrey Popov vous dira quels frameworks pour Python sont utilisés par Positive Technologies pour collecter une énorme quantité de données et les analyser pour détecter les menaces. Un rapport se concentrera sur la manière de collecter correctement ces données et de les stocker sous une forme pratique pour les différentes équipes de l'entreprise. Mais en plus de cela, nous aborderons ces questions:

  • Quand est-il appropriĂ© d'utiliser le cĂ©leri / lapin et quand est-il prĂ©fĂ©rable de crĂ©er un pipeline de donnĂ©es.
  • Comparaison d' Airflow et de Luigi .
  • Luigi 101 - concepts de base et exemples de leur utilisation.

En conséquence, nous pouvons déterminer quelle technologie choisir dans un cas particulier et à quoi elle ressemblera dans le code.

Historique des mises Ă  jour de l'architecture du projet


Alexander Borgardt partagera une histoire plutôt non triviale de l'évolution d'un projet. Cela a commencé sur tornade, puis une partie a été réécrite en C ++ pour améliorer les performances de conduite. Puis est venu 2018, et il s'est avéré que de nombreux vieux hacks ne sont plus nécessaires . Le bundle asyncio + uvloop + aiohttp n'apportera le plus souvent aucune performance. Il s'agit d'un tel cas, à l'aide d'un exemple spécifique, avec des recommandations claires, dont nous parlerons dans le rapport d'Alexander.



50 nuances de céleri


Oleg Churkin est impliqué dans le développement de Python depuis 8 ans et joue désormais le rôle de techlide dans la startup fintech TechOps. Quand nous parlons de fintech, nous voulons dire - Big data . À partir du rapport d'Oleg , nous découvrons les subtilités de l'utilisation du planificateur Celery pour traiter les mégadonnées:

  • pour quels types de tâches le cĂ©leri peut et doit ĂŞtre utilisĂ©;
  • comment dĂ©marrer 500 000 tâches et laisser la base de donnĂ©es et les services externes en vie;
  • comment surveiller les performances des tâches;
  • comment ne pas perdre de tâches lors du dĂ©ploiement;
  • comment Ă©crire le code de tâche pris en charge.

Nous allons également jeter un œil aux bibliothèques de l'auteur, qui permettent de dimensionner avec succès Celery et de surveiller les files d'attente / tâches dans Grafana et Prometheus. Vous avez peut-être déjà vu des spoilers ici .

Langage Python, son évolution et son utilisation


Avant de passer à mon Python bien-aimé, je noterai que notre programme de conférence est tel que tout invité peut choisir un cas intéressant pour lui-même, écouter l'orateur et, surtout, communiquer avec toutes les personnes qui sont venues au même rapport.

Triche sociale. Plus le sujet du rapport est important, plus il est logique de s’asseoir. Tout d'abord, il sera plus pratique de poser des questions à l'orateur. Deuxièmement, d'autres spécialistes intéressés feront de même, vous pouvez discuter de la performance avec eux et continuer en douceur la discussion sur une pause-café.

Permettez-moi de vous rappeler que la conférence, à mon avis, concerne la communication, et cette opportunité ne doit pas être négligée.

Mettre Ă  jour Python 2.7 vers Python 3.6 et ne pas mourir


L'évolution est un phénomène naturel. Elle n'a pas non plus réussi Python, mais certains projets utilisent toujours Python 2.7 pour une raison simple - en raison de la complexité de la migration entre les versions . Alexander Polishchuk (Code de sécurité) propose de partager son épineux chemin de renouveau. Le rapport nous apprend sur le râteau et les cônes bourrés, et sur un exemple vivant, nous comprendrons que le résultat en vaut la peine.

Hollywood Linter Report


Nikita Sobolev, la fondatrice du studio wemake.services, a participé à plusieurs de nos réunions et vous connaît déjà. Nous avons réussi à attirer Nikita pour enregistrer le podcast Python Junior , au cours duquel l'application pour le rapport a été créée.

Comme son nom l'indique , cette fois-ci, nous nous concentrerons sur la vérification automatisée du code en Python. Ce linter a été développé directement dans le studio de Nikita, c'est-à-dire que nous aurons l'occasion de demander directement au développeur de l'outil. De plus, l' interactivité est promise, ce qui signifie qu'elle sera non seulement informative, mais aussi divertissante.

Comment enseigner aux gens la programmation et profiter de la vie


Le conférencier marmonne misérablement, expliquant le terme écrit au tableau. Votre voisin dessine quelque chose sur le bureau. Du sommeil, vous économisez seulement la nécessité d'écrire chaque mot du conférencier. Est-ce familier? Malheureusement, le processus d'apprentissage n'a pas beaucoup changé. Des conférences ennuyeuses transformées en webinaires ennuyeux, des tests ennuyeux transformés en tests en ligne ennuyeux, des tâches ennuyeuses transformées en tâches ennuyeuses et inutiles.

Ilya Lebedev est un développeur Python expérimenté et créateur de la plate-forme d'apprentissage devman.org. En tant que co-organisateur, MoscowPython développe et enseigne sur learn.python.ru depuis plusieurs années. Dans son rapport, Ilya soulèvera la question de l'éducation des programmeurs, avec qui tout n'est pas très très. De plus, en général. Un moyen simple d'embaucher des juniors parmi les diplômés d'une université, d'une faculté ou d'une spécialité particulière ne fonctionne pas. Ilya, sur la base de son expérience, tentera d'expliquer les difficultés rencontrées pour apprendre à se développer et donnera des conseils sur ce qu'il faut faire pour améliorer ses compétences et l'aider à se subordonner.

Refactoring en Python: modèles de conception et approches


Tin Marković de Kiwi.com (République tchèque) partagera son expérience dans l'organisation d'une énorme quantité de code Python extrêmement complexe . Comment restaurer l'ordre, comment mettre à jour le code, empêcher un nouveau gâchis de se développer et respecter généralement des normes élevées dans la base de code. Tout cela est la façon dont nous aimons sur des exemples réels et une expérience personnelle.

Pylint de l'intérieur vers l'extérieur. Comment fait-il


Maxim Mazaev développe en Python au CIAN, s'intéresse aux langages internes, à l'asynchronie et à la programmation fonctionnelle. Son rapport fait écho au rapport de Nikita Sobolev sur les linters , mais se concentrera sur un outil principal, que nous comprendrons parfaitement . Armés de ces connaissances, nous les appliquerons au nom de l'amélioration de la qualité du code - nous écrirons notre plugin pour Pylint .

Création de compilateurs DSL en Python


L'utilisation de petits langages de programmation pour des domaines individuels (DSL) vous permet de gérer la complexité des systèmes logiciels lorsque vous en avez besoin. En conséquence, le problème se pose du prototypage rapide des compilateurs DSL. Par exemple, avant Peter Sovetov de MIREA, cette tâche s'est posée dans le cadre de l'accélération du développement de cœurs de processeurs spécialisés sur FPGA . Peter racontera les étapes et les résultats impressionnants de son travail à Moscou Python Conf ++.

Bogues courants dans l'architecture des applications Django


Alexey Polovinkin d'Agima définit l'objectif ambitieux du rapport - montrer aux équipes de développement backend comment construire l'architecture des applications Django, comment ne pas contourner plus d'une centaine de pièges et ne pas expirer tous les délais. Considérez des exemples des erreurs d' équipe les plus courantes au stade initial du développement. Voyons comment concevoir l'architecture des applications Django, pourquoi vous devriez utiliser une architecture distribuée et garder les statiques à l'écart de Django. Oublions le refactoring , abordons de nombreuses questions importantes, familiarisons-nous avec l'expérience des développeurs Agima.

Apprentissage automatique, intelligence artificielle et visualisation des données


L'apprentissage automatique et Python sont un couple associatif persistant. Et, bien sûr, à Moscou, Python Conf ++ ne se passera pas de tout rapport à ce sujet.

Comment intégrer la ML moderne dans un héritage sévère


En ce qui concerne l'automatisation des modèles ML, le plus souvent, je veux dire, d'une part, de nouveaux projets, et d'autre part, Jupyter et une sorte d'environnement autour. Cette approche n'est pas adaptée à un système d'analyse dans une banque, où il y a généralement beaucoup d'héritage.

Cependant, Oleg Mangutov a réussi à se faire des amis modernes du Machine Learning avec un environnement où Oracle et SOAP sont utilisés à l'aide de la colle universelle - Python. À mon avis, la principale conclusion de ce rapport est qu'un développeur régulier, avec une diligence raisonnable, peut implémenter des algorithmes d'apprentissage automatique dans des projets existants sans tout réécrire à partir de zéro et sans étudier en profondeur le fonctionnement d'Oracle. Et l'avantage de cela peut être énorme, les utilisateurs professionnels en direct peuvent utiliser l'interface développée.

Théorie des réseaux de neurones


Beau Carnes possède une vaste expérience dans l'enseignement de sujets informatiques et prépare actuellement un nouveau cours d'apprentissage en profondeur. Son rapport sera divisé en deux parties (déjeuner au milieu pour digérer les connaissances). Dans la première partie du rapport, nous aborderons les concepts de base: éducation avec et sans enseignant; réseaux de neurones pour la prédiction; descente en pente. Nous discuterons de la façon dont les méthodes d'apprentissage en profondeur diffèrent des méthodes traditionnelles d'apprentissage automatique, et nous les traiterons, sans se limiter aux cadres.

Dans la deuxième partie de la présentation, nous attendons le codage en direct dans le Jupyter Notebook. Bo tout de suite en Python pur à partir de zéro créera un réseau neuronal qui apprend et reconnaît ... mais ce qu'il reconnaît, vous l'apprendrez le 22 octobre.

Comment protéger l'algorithme d'apprentissage automatique contre les exemples contradictoires


Lorsque nous utilisons des données publiques pour l'apprentissage automatique, nous devons nous en remettre à elles pour être complètes et propres. Cependant, comme il est facile de le remarquer sur l'exemple du traducteur Google, les données peuvent sembler correctes, mais en fait, au lieu de traduire correctement, enseigner au système des interprétations inattendues. Il s'agit d'une variante de l'exemple contradictoire.

Le spécialiste de l'analyse des données de sécurité numérique, Sergey Dudorov, nous présentera en détail ce problème, parlera des méthodes d'attaque, de défense et de test des algorithmes d'apprentissage automatique pour contrer ces manipulations à l'aide des bibliothèques CleverHans et Adversarial- robustness -toolbox .

Assistant virtuel Python


Oleg Plichko promet de démontrer que vous pouvez créer un bot de chat avec l'intelligence artificielle en utilisant des outils communs: TensorFlow, Celery, Django. Nous allons apprendre du rapport comment rendre notre assistant virtuel vraiment utile, et nous verrons un exemple d'un bot de chat très intéressant que beaucoup d'entre nous trouveront utile à l'avenir. Nous pouvons poser à Oleg toutes nos questions sur les bots et les services cognitifs.

Jupyter et PySpark sur Hadoop pour l'analyse de Big Data


L'apprentissage automatique est un nouveau domaine en pleine croissance; il n'y a toujours pas beaucoup de pratiques établies. Par conséquent, chaque scientifique des données met beaucoup d'expérimentation et veut le faire rapidement. Eh bien, si ce sont des hypothèses simples telles que s'il y a suffisamment de données et si elles sont correctes. Mais que se passe-t-il si vous devez appliquer une fonction auto-écrite complexe à un grand nombre d'objets? De plus, toutes les tâches doivent être résolues sur le cluster de production, sur lequel 50 autres personnes travaillent.

Pavel Tarasov vous expliquera comment tester rapidement des hypothèses complexes en utilisant le minimum d'outils et de code. Dans ce cas, Jupyter et PySpark sont ce à partir duquel vous pouvez construire un stand et ne pas passer une semaine à préparer l'environnement, comme c'est souvent le cas avec les mégadonnées, car elles sont grandes.

La conférence se tiendra à Infrasprismst, une petite salle sera réservée au contenu généré par les utilisateurs. Autrement dit, les mitaps que tout le monde peut collecter sont la principale chose que l'on trouve des personnes partageant les mêmes idées. Il sera possible d'organiser sur place, mais si vous vous inscrivez à l'avance, vous serez programmé.

Divers: test, sécurité, DevOps


En plus de rapports uniques, ils n'entrent pas dans de grandes sections, mais résolvent le problème de la diversité. Soit dit en passant, les sujets sont très importants et intéressants, une seule ingénierie sociale vaut quoi, ou voici un "guide de piratage".

Guide du pirate pour sécuriser les applications Web Python


J'espère que vos projets Web n'ont jamais été attaqués ou piratés, mais très probablement quelqu'un de vos amis a fait face à leurs tristes conséquences. Notre collègue, l'un des organisateurs de PyCon Nigeria, Eyitemi Egbejule affirme que, armé de pratiques de codage sécurisées et de bibliothèques utiles, vous pouvez oublier à jamais les vulnérabilités des applications Web Python. Sur la base de sa vaste expérience dans l'audit de sécurité des projets Web, Eyitemi vous dira quelles erreurs sont le plus souvent commises par les développeurs de services réseau, où rechercher les vulnérabilités en premier lieu et lesquelles sont les plus rapides à fermer. Ce ne sera pas nécessairement un logiciel, les problèmes peuvent être liés à la logique ou à l'utilisation de paramètres par défaut communs mais incorrects.

Nous espérons que ce rapport permettra aux développeurs de revoir leur code et peut-être même de commencer à appliquer des conseils dès la conférence.

Infrastructure de sélénium efficace


Utilisez-vous du sélénium pour des tests automatiques, mais vous en avez assez de gérer ses freins et ses collisions? Ensuite, une master class par Ivan Krutov (Aerokube) sur une infrastructure efficace en sélénium est pour vous.

Lors de la master class, Ivan promet de montrer comment déployer le cluster Selenium en quelques étapes simples à partir de zéro sur la base des projets open source Selenoid et Ggr , qui permettent de remplacer la grille de sélénium obsolète et d'arrêter de tourmenter avec le sélénium. Vous verrez à quel point il est facile d'enregistrer des vidéos de tests en cours, d'ajouter de nouvelles versions de navigateurs et de regarder les journaux en temps réel.

Il y avait tellement de matériel que cette master class durerait deux heures le 23 octobre - avant et après le déjeuner, afin d'avoir le temps de bien réfléchir à tout.

Dark Python: ingénierie sociale et piratage avec un taux de réussite de 70%


— , . Lukas Hurych Twisto.cz . — 70 % . Python .

, , UX.

SQLAlchemy


SQLAlchemy , ORM . . , . Qrator Labs ( ) , . SQLAlchemy ORM bulk- SQLAlchemy Core , 23 16:00.



kiwi.com , , . , , , — , , . , . dependency injection . .

, , , , . : , , , , .

( pdf ). , , : Python, , .

Moscow Python Conf ++ 2018 !

Source: https://habr.com/ru/post/fr425473/


All Articles