LCC 227 - Télétravailler une corona dans une main et un gamin dans l'autre
Cet épisode parle du coronavirus, des conférences annulées, de la popularité des langages, de GraphQL, de Ghostcat et pleins d’autres choses encore. L’intro date un peu : les infos sur le coronavirus étant encore plus fréquentes que les nouveaux frameworks JavaScript.
Enregistré le 13 mars 2020
Téléchargement de l’épisode LesCastCodeurs-Episode-227.mp3
News
Corona virus
Les actions des grosses boites
- pas de meeting
- conf annulées
- limite du travail au bureau
Langages
RedMonk ranking - Le langage au top est…
- JavaScript Python Java
- Typescript dans le top 10
- R monte
- Rust stable comme Go (+1)
- Kotlin 19, Scala 13
- Java 8 le plus déployé en prod, 25 % Java 11 et non LTS derrière
- Spring 60-80 %
- IntelliJ 60-80 %, Eclipse 20-25 %
- maven vs Gradle 66-33 ou 50-50
- 7 ans de dev
- not binary compatible with 0.6 nor 1.0RCx
- Écrire en scala des applications front
- interop avec les libraries JavaScript
GraalVM se dote d’un advisory board
- Gluon, Red Hat, Amazon, Microdoc, Shopify, Twitter, OCI, Neo4J, Pivotal, ARM et Oracle bien sûr
Gros round d’investissement dans Azul
- investissement / achat: 340 M$
Librairies
Eclipse MicroProfile GraphQL 1.0
- GraphQL : spec pour généraliser les endpoints en leur donnant de la flexibilité en termes de requêtage et graph retourné
- make GraphSQL schema available
- execute GraphQL requests
- code first approach
Apache Camel 3.1 et 3.0 déprécié
Le guide de migration de Camel
- amélioration de mémoire
Lightbend reçoit 25M d’investissement
- de Dell capital
- pour la partie reactive
- spécifiquement pour le “serverless”
- pas de mention de Scala
OPTIONNEL LightBend - Article sur pourquoi une architecture reactive est importante pour le cloud native
- bonne piqure de rappel
- data localisée par microservice
- les avantages des systèmes event based
Middleware
ElasticSearch en prod, les choses a savoir
- les concepts de base (Clusters, Nodes, Indices and Shards)
- Quorum
- comment des noeuds rejoignent le cluster
- segments et le merge
- gestion de la memoire (compressed pointers /!\ inversé, 30GB, 2x memoire sur la machine par rapport au heap) voir https://stackoverflow.com/questions/25120546/trick-behind-jvms-compressed-oops#25120926
- options par workload (write heavy vs read heavy
- topology
- monitoring
Infrastructure
La M&A de have i been p0wned: l’histoire de l’abandon
- societe KPMG
- due diligence
- des milliards de questions
- les doutes
- exclusivité
- le risque du changement de stratégie
Cloud
Les gens râlent car les clusters GKE vont avoir un cout de management de 10c/heure, ce qui change la relation du cluster au développeur (nombre de clusters en parallèle)
Une comparaison des prix des clusters en fonction de leur taille et de leur host provider
Amazon annonce Bottlerocket
- Mise a jour par image recrée plutôt que par package mis a jour
- plus immuable et donc facile en rollback
- par contre chaque host goes down et up
- si orchestrateur c’est ok
Outillage
- un IDE pour le big data !
- deja integration avec Zeppelin S3
- nouveau Spark, HDFS, Paquet
Architecture
Les systèmes simples ont moins de downtime
- facile à comprendre, facile à corriger
- plus rapide de monter en competence
- trouver la cause est plus rapide
- solutions simples, plus d’alternatives disponibles
- règles : les fonctionnalités ne justifient pas la complexité, les idées complexes amènent des implémentations complexes, modifier avant d’ajouter
- challenge de l’automation pour faire avec moins de gens ?
OPTIONNEL 11 raisons pour lesquelles vous allez rater vos microservices
- voir les titres de section
OPTIONNEL Retour d’expérience sur l’usage incorrect d’un outil bloom filters
- problème idéal pour bloom filters
- mais suspicieusement plus long que prévu
- profilers
- random access memory » sequential reading (trop grand pour L3)
- alternative plus simple qui réduit le nombre le chargement memoire, pas la conso memoire
Méthodologies
- rebasing, la course au collègue
- garder master green pour la CD
- impossible de faire trop de merge en parallèle ou doit faire pleins de rebase
- merge train séquentialise et batch les merges
- pas intuitif (merge bidirectionnels dans le temps entre develop, feature branch, release branch, hotfix et master) et cout cognitif haut
- risque grandi de merge conflit
- peut pas rebaser
- continuous delivery != trop de barrières
- en cas de repos multiples ou mono repos, impossible a gérer (microservices)
- ok pour des cycles de release par trimestre avec des équipes sur des releases en parallèle
Mesure de la complexité de code: une meilleure mesure
- cyclomatic complexité est un mauvais oracle de la complexité de code
- les logiques conditionnelles emboîtées utilisent notre mémoire de travail (~indentation)
- les fonctions avec des dos d’ânes d’indentation multiples sont les pires
- refactorer pour externaliser chaque
Dans Sonarqube cela s’appelle Cognitive Complexity. Voici un exemple sur du code XWiki ou l’on voit très bien visuellement ce que cela veut dire : https://sonarcloud.io/project/issues?id=org.xwiki.commons%3Axwiki-commons&issues=AWzY6RXo8pMOHxUYvkyE&open=AWzY6RXo8pMOHxUYvkyE
Sécurité
Ghostcat: la faille dans Tomcat de 6 à 9
- dans le protocole Apache JServ (implicitement trusté par Tomcat (cs une requête)
- peut lire le contenu des web apps
- si la webapp peut uploader => activer un remote execution
- upgrader Tomcat 7, 8, 9, si 6, vous êtes dans la merde
- attention Tomcat est embarqué dans pleins d’outils comme Wildfly, Spring Boot etc
Letencrypt révoque 3 millions de certs a multiples domaines
Loi, société et organisation
Amicus brief sur le copyright d’API par IBM et Red Hat
- computer interfaces ne sont pas copyrightable
- moteur de l’économie du logiciel
- va être entendu au printemps
Amicus brief de chercheurs attaqué par Oracle
- payés par Google
OPTIONNEL Les hackers de Equifax condamnés pour crime
- DOJ charge 4 militaires Chinois
- Struts CVE
Rubrique débutant
La tonte de Yak appliquée à Donald Knuth
- écrire un livre
- écrire un programme pour écrire un livre
- invente un langage de programmation pour écrire le programme
- invente un mode de pagination
- design une police de caractère
- écrit un outil pour construire les polices de caractère
- invente un système de version pour son programme
- implémente un langage d’abstraction maison pour les documents imprimés
Conférences
ANNULÉ - Breizhcamp du 25 au 27 mars 2020
ANNULÉ - MiXiT du 29 au 30 avril 2020
VIRTUEL - GitHub Satellite les 6 et 7 mai
ANNULÉ - RivieraDev du 13 au 15 mai 2020
Devoxx UK du 13 au 15 mai 2020
NewCrafts les 28 et 29 mai 2020
AlpesCraft les 4 et 5 juin 2020
ANNULÉ - Best of Web les 4 et 5 juin 2020
DevFest Lille le 12 juin 2020 - (Le CFP est ouvert)
Voxxed Days Luxembourg du 17 au 19 juin 2020
ANNULÉ - Serverless Days Paris le 1 juillet 2020
NOUVELLE DATE - Devoxx France du 1 au 3 juillet 2020
Sunny Tech les 2 et 3 juillet 2020
Et encore plus sur Developers Conferences Agenda/List ….
Liste d’Aurélie
Nous contacter
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/