Published: July 19, 2022, 6:42 a.m.
Cet \xe9pisode marathon sera d\xe9coup\xe9 en deux morceaux pour \xe9viter \xe0 vos oreilles une \xe9coute marathon. Cette deuxi\xe8me partie couvre des sujets d\u2019architecture et de loi soci\xe9t\xe9 et organisation ainsi que les conf\xe9rences \xe0 venir. Logging, Migration Java 8 vers 11, Xerox Park, (manque de) s\xe9curit\xe9, courbes elliptiques, sondage d\xe9veloppeurs.
Enregistr\xe9 le 8 juillet 2022
T\xe9l\xe9chargement de l\u2019\xe9pisode LesCastCodeurs-Episode\u2013282.mp3
News Architecture
Pour ou contre le logging Contre puis pour
- tous les langages et plateformes utilisent les logs
- debugging, tracing, journaling, monitoring, and printing errors
- impact sur les performances (allocation sup\xe9rieure sur un log que sur le code m\xe9tier
- log = m\xe9moire, CPU (GC), I/O
- risque de securit\xe9 (d\xe9pendances et fonctionnalit\xe9s sans besoin)
- format des log: pour lecture humaine main volume impose traitement automatique
- log level la bonne abstraction (souvent trop et pas ce que l\u2019on veut \xe0 la fois
- debugging -> utiliser un debugger ; journaling -> event sourcing ou solution d\xe9di\xe9e ; tracing > open tracing ; monitoring -> monitoring solution via metrics et health check
- bons usages de logging: en dev (println), fin de jobs automatiques, erreurs non r\xe9cup\xe9rables ou innatendues, pas les erreurs utilisateur (logger les erreurs qui cachent un bug),
- dans les container, S\xe9bastien utilise System.out et System.err vu que les logs sont g\xe9r\xe9s par la plateforme
- la r\xe9ponse pour maintenant
- les logs peuvent etre structur\xe9s
- performance, on peut \xe9viter les concatenations de String (parameterized logging), memory allocation est bien meilleure depuis 2012 (e.g. Shenandoah), vu des probl\xe8mes dans des cas plus rare de genre MDC.getCopyOfContextMap
- disk I/O: ok mais disque cape a 200 MiB/s donc bon\u2026: si c;est le cas, s\xe9pare I/O log du reste (disque vs network par exemple)
- gros fan de logs structures via JSON ; log line sur console et JSON en fichier
- log plus de mani\xe8re conditionelle
- tracing th\xe9oriquement bon mais limite dans son contexte m\xe9tier et peu d\u2019infos passables
- system.out probl\xe8me de scalabilit\xe9 d\u2019usage, etc et appel blocant println (async usage n\u2019est pas bon)
LinkedIn et sa migration de Java 8 \xe0 11
- 1000 apps sur 320k hosts
- Migration Java 8 vers 11 avec en vue G1
- regard\xe9 depuis 2018
- Jetty, Hadoop, Play, Samza: focalis\xe9 sur Jetty
-
- Mettre a jour le syst\xe8me de build, 2. Faire des tests de performance 3. Automatiser la migration
- mise. a jour vers gradle 5
- G1 80% des applis CMS 20%
- pris 20 apps representatives
- focalis\xe9 sur les applications avec les tailles de piles les plus grosses
- de \xe9quipera jusqu\xe0 200% plus de latence et throughput: zones G1, Shenandoah et ZGC
- automatis\xe9 la migration du reste et tourn\xe9 les builds de tests qui ont identifi\xe9 les probl\xe8mes de migration
- quelques probl\xe8mes: suppression de certaines classes Java EE, changement du type de classloader par d\xe9faut, casting de classe plus stricte
- ils ont utilis\xe9 -release 8 et ont limit\xe9 les usages des features Java 11
- les options de CLI de la JVM ont beaucoup chang\xe9
- LinkedIn fait du microsercices ce qui veut dire que beaucoup de repositories sont li\xe9s \xe0 d\u2019autre par un graphe de d\xe9pendance: euh c\u2019est pas le principe des microservices d\u2019\xe9viter \xe7a???
- mise a jour de 500 librairies 3/4 de l\u2019ann\xe9e
- Quelques challenges vus
- La JVM respecte groups et donc moins de thread GC sont cr\xe9es
- aussi ils pouvaient piquer des cycles CPUs avant et plus maintenant
- Java 11 a un usage de m\xe9moire hors pile plus important
- reduction de latence p99 par 10% et le throughput par 20% sans changer le type de GC
- C\u2019est un bon retour qui sent le type de d\xe9veloppement de la vrai vie
M\xe9thodologies
Un article sur Xerox park et comment ils ont invent\xe9 le futur
- article de 1985
- Xerox ach\xe8te un constructeur de mainframe, et ils ont cr\xe9e un lab de recherche pour aider les usages
- Macintosh et la souris et les fen\xeatres, les cartes m\xe9t\xe9os color\xe9es, imprimante laser, r\xe9seaux d\u2019ordinateurs, lasers semi-conducteurs qui lisent les disques optiques, langages de programmation structur\xe9s
- developer l\u2019architecture de l\u2019information
- project proposes et faite en bottom up
- PARC construisait ses propres hardware ce qui a cr\xe9er des inventions et qui devaient etre construits pour 100 utilisateurs (scale)
- recherche en construisant concr\xe8tement, pas en papier th\xe9orique acad\xe9mique
- bit map, distributed computing, email, frame buffer, LAN, object oriented programming
- Cree Alto un ordinateur \xab personnel \xbb qui a permis aux chercheurs de tester leurs id\xe9es, beaucoup en avaient un.
- donc ils ont du inventer le LAN et Ethernet (packet) via une personne avec passe de radio amateur (medium partag\xe9 et non reliable
- premier projet distribu\xe9. (Un protocole d\u2019impression)
- antialiasing : ils am\xe9lioraient en testant pour de vrai
- un gars a construit un proto de souris pour prouver que les curseurs \xe9taient plus efficace: tests avec des dans la rue et IO a perdu :D
- concept de modal (insert, delete) vers comportement non modal, plus simple pour l\u2019utilisateur
- small talk: un langage si simple qu\u2019un enfant peut l\u2019utiliser (simulation based programming)
- overlapping windows ont \xe9t\xe9 d\xe9velopp\xe9es en small talk
- autre groupe strong type system
- Xerox ne savait pas convertir ces recherches en produits et les amener sur le marcher (sauf l\u2019imprimante laser)
S\xe9curit\xe9
Travis CI fuit encore des mots de passe
- permet d\u2019acc\xe9der au compte priv\xe9 des d\xe9veloppeurs open source qui ont mis en place travisCI
- c\u2019est la quatri\xe8me fois
- token offre acc\xe8s lecture et \xe9criture aux repos
- risque d\u2019attaque de supply chain
- tokens github, AWS ou DockerHub apr exemple mais aussi les bases de donn\xe9es utilis\xe9es dans la CI
- via l\u2019API TravisCI
HDMI peut-\xeatre un vecteur d\u2019attaque et d\u2019infection de vos ordinateurs
- Un hack d\u2019un adaptateur HDMI peut potentiellement infecter un video-projecteur, et qui \xe0 son tour pourra r\xe9infecter les prochains ordinateurs qui s\u2019y connecteront
- Cet article propose de construire une sorte de connecteur qui sert de firewall HDMI pour \xe9viter ce genre d\u2019infection
- il y a des pr\xe9servatifs USB aussi qui ne laissent passer que la puissance et pas les donn\xe9es
Un guide pour prot\xe9ger son macOS
- Une suite de conseils comme de faire une installation toute fraiche, de mettre les mises \xe0 jour logicielle automatiques, n\u2019autoriser que les applications sign\xe9es, appliquer le chiffrement du disque\u2026
- Mais aussi utiliser par exemple un gestionnaire de mot de passe, \xe9viter les extensions de navigateur, faire tourner un firewall
- Et des liens vers des guides de s\xe9curit\xe9s plus avanc\xe9s
- un truc que je n\u2019ai pas fait mais qui me tente c\u2019est un outbound firewall comme little snitch ou lulu
Comment choisir un algorithme de courbes elliptiques
- un article qui d\xe9taille le pour et le contre de certaines courbes elliptiques
- cas d\u2019usage, notamment gouvernemental
- faiblesses (timing attaques etc)
- pour les curieux mais la premi\xe8re courbe cit\xe9e est celle la plus utilis\xe9e en ce moment
Loi, soci\xe9t\xe9 et organisation
Stackoverflow sort son sondage sur les d\xe9veloppeurs
- 70% apprennent a coder en ligne (les plus de 45 ans dans les bouquins)
- stackoverflow derri\xe8re la doc technique puis les blogs ; video 60% des gens ; podcast 7,21% damn!
- presque 60% ont moins de 10 ans d\u2019exp\xe9rience ; si t\u2019es pas VP ou CxO a 17 ans d\u2019exp\xe9rience, tu as rat\xe9 ta vie
- 9% cloud infra engineers
- 22% ont neuro atypiques
- Docker passe dans la cat\xe9gorie outil fondamental (69% d\u2019usage)
- les frameworks 3D genre Unity 3D ou Unreal Engine sont des outils que des non d\xe9veloppeurs pro apprennent
- Rust technologie la plus aim\xe9e, Rust et Python en plus demand\xe9es
- Java 6eme position mais 4\xe8me pour ceux qui apprenent
- Angular.is en framework le plus redout\xe9 / react.is le plus demand\xe9
- Docker et Kube sont les plus aim\xe9s et demand\xe9
- ind\xe9pendants on augment\xe9 de 5% et 4% pour les temples pleins
- 85% des dev sont dans une orga partiellement distanci\xe9 le
- 62% des devs pro cherchent des r\xe9ponses pendant plus de 30 minutes par jour, 25% 11h
- Azure prend la deuxi\xe8me place des cloud, OVH 3,7%
- Spring framework le plus populaire de Java
- VSCode 74%, IntelliJ 28%, vim 23%, Eclipse 12%, EMacs 4,5%
- pleins d\u2019outils asynchrone (tickets etc) que je ne connais pas
- salaires ont augment\xe9 de 23% en median
JavaScript change de licence open source
- toujours la licence Ecma international license, assez restrictive qui interdit le fork, mais avec certaines provisions pour l\u2019int\xe9gration et la reproduction
- mais aussi une nouvelle licence d\xe9riv\xe9e de la W3C Document & Software License, un peu plus ouverte, qui permet d\u2019int\xe9grer et s\u2019int\xe9grer plus facilement avec les autres standards du Web
Conf\xe9rences
de la part de Youen
Cette ann\xe9e Codeurs en Seine, c\u2019est le 17 novembre et le cfp est ouvert
N\u2019h\xe9sitez pas \xe0 amener un peu de JVM dans l\u2019appel \xe0 orateur. (ca commence \xe0 se faire rare). Pour rappel : codeurs en seine c\u2019est 1000 personnes autour des m\xe9tiers du d\xe9veloppement dans une des plus grande salle de Rouen, le kindarena.
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/