Why we migrated from Python to Node.js
Un retour d'expérience (à nuancer comme toujours) sur une migration de Python vers Node justifiée par la difficulté d'écrire du code asynchrone avec Python.
— Permalink
Un retour d'expérience (à nuancer comme toujours) sur une migration de Python vers Node justifiée par la difficulté d'écrire du code asynchrone avec Python.
Un retour d'expérience (à nuancer comme toujours) sur une migration de Python vers Node justifiée par la difficulté d'écrire du code asynchrone avec Python.
Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.
✍ Aymeric Geoffre-Rouland, le mardi 14 octobre 2025.
C’est le grand jour. Après une décennie de bons et loyaux services, Windows 10 s’éteint. La fin du support intervient aujourd’hui pour la majorité des utilisateurs, mais les Européens obtiennent un délai supplémentaire. Entre migration forcée, solutions de contournement et émancipation vers le libre, plusieurs chemins s’ouvrent désormais.
Et aussi:
✍ Martin Clavey, le lundi 13 octobre 2025.
Après avoir mené un premier gouvernement pendant 14 h il y a une semaine, Sébastien Lecornu a de nouveau proposé une liste de ministres au président de la République, Emmanuel Macron. Approuvée, cette liste a été publiée au Journal officiel.
Et aussi:
✍ Alexandre Laurent, le lundi 13 octobre 2025.
L’École polytechnique aurait finalement pris la décision de reporter sine die la migration programmée de ses services vers les outils hébergés de l’offre Microsoft 365, révèle la Lettre dans son édition du 10 octobre.
Et aussi:
✍ Steven Vaughan-Nichols, le lundi 13 octobre 2025.
En Allemagne, le Schleswig-Holstein est passé de Microsoft Exchange et Outlook à Open-Xchange et Thunderbird pour sa messagerie électronique.
Et aussi:
Commentaires : voir le flux Atom ouvrir dans le navigateur
Le mardi 14 octobre 2025, Microsoft devait arrêter le support gratuit de Windows 10. Sous la pression de la pétition de l’association HOP (Halte à l’obsolescence programmée), le délai de fin est prolongé d’un an, obligeant à de nouvelles contraintes. Ne restons pas sous le joug de cette multinationale américaine et quittons ce système d’exploitation privateur ! Sans attendre, libérons nos ordinateurs !
![]()
L’April, l’association pour la promotion et la défense des logiciels libres, lance une opération Adieu Windows, bonjour le Libre ! Si vous aussi, vous voulez être délivré·es, ou libérer vos proches, si vous ne voulez pas ou n’avez pas les moyens de passer à Windows 11, alors les systèmes libres s’offrent à vous. Vous pouvez en installer un de façon autonome, chez vous, mais si vous pensez avoir besoin d’aide, les bénévoles de très nombreuses associations locales (des GULL mais pas que) se sont organisé·es pour vous recevoir et répondre à vos questions.
Cette opération se tient sur un an, donc continuellement en cours de remaniement avec des ajouts permanents d’évènements. Ces évènements d’Adieu Windows seront annoncés sur la page Évènements de ce site et sur notre site de recensement des événements locaux et d’organisations locales en lien avec le logiciel libre, l’Agenda du Libre.
Les organisations souhaitant proposer des évènements dans le cadre de cette opération sont invitées à consulter la page Organiser un évènement.
Cette opération Adieu Windows, bonjour le Libre ! n’est possible que grâce à la mobilisation des personnes et organisations qui ont proposé ces événements. L’April tient à les remercier très chaleureusement.
Si vous ne trouvez pas votre bonheur parmi les évènements proposés, il existe d’autres initiatives que la nôtre pour libérer votre ordinateur, comme les Journées Nationales de la Réparation du 16 au 19 octobre 2025, Aide GNU/Linux qui propose une carte collaborative de marraines et de parrains en mesure d’aider à l’installation, Fin de Windows 10, Non à la taxe Windows et la démarche NIRD « pour un numérique libre et écocitoyen dans les établissements scolaires ! ».
Windows 10 est un logiciel privateur, qui répond à ce titre et avant toute autre considération aux intérêts de Microsoft qui a ainsi tout loisir d’imposer unilatéralement l’arrêt du support de son système d’exploitation. Conséquence : sans mises à jour régulières, sans correctif de sécurité, sans assistance technique, Windows 10 devient vulnérable, donc dangereux à l’usage. C’est exactement ce qu’on appelle de l’obsolescence logicielle ! Un matériel qui fonctionne encore, mais qu’il faudrait mettre au rebut parce que le système d’exploitation devient obsolète et que la nouvelle version disponible n’est pas compatible avec lui.
Et tout cela pour pousser à la consommation : nouveaux PC, nouveaux abonnements, nouvelles licences dont il est parfois impossible de connaitre le prix, c’est ce qu’on appelle de la vente forcée. C’est tout sauf écologique. Si toutes les personnes, toutes les associations, toutes les entreprises, toutes les administrations et toutes les collectivités changent de matériel pour acheter du neuf, c’est même un écocide. Il a été estimé que jusqu’à 400 millions d’ordinateurs dans le monde sont incompatibles avec cette nouvelle version de Windows, dont certains achetés il y a moins de trois ans !
Cet arrêt du support gratuit de Windows 10 va donc forcer à migrer vers Windows 11, qui, lui aussi forcément, imposera les mêmes restrictions techniques : puissance, mémoire, absence de compatibilité avec des logiciels plus anciens et DRM (menottes numériques) intégrés.
Ce prolongement de support gratuit n’est possible que si les personnes enregistrent leur compte sur le site de Microsoft. Ce faisant, elles lieront leur ordinateur à leur adresse e-mail, et laisseront un accès total à leur matériel, permettant ainsi à la multinationale américaine de collecter des données, de plus en plus nombreuses (avec des paramètres de confidentialité complexes à désactiver.), et lui laissant un pouvoir de contrôle technique, à distance, sans passer par l’étape de l’accord explicite. Ce prolongement du support gratuit est en fait un piège pour influencer les gens et les amener à installer Windows 11.
Il existe pourtant de très nombreuses alternatives libres GNU/Linux qui peuvent remplacer Windows, pour n’en citer que quelques-unes : Debian, Ubuntu, Mageia, Fedora, Primtux (cette dernière étant spécialement conçue pour enfants). Idem pour les logiciels. Consulter le site Framalibre de l’association Framasoft pour en découvrir.
Pour migrer vers un système libre, il faut le vouloir, c’est un choix personnel, politique, économique, voire écologique… Pour ne pas jeter vos appareils numériques, pour préserver vos données et celles des autres, pour retrouver votre autonomie, libérez-vous et délivrez vos ordinateurs. Adieu Windows !
![]()
L’émission de radio Libre à vous ! de l’April du mardi 9 septembre 2025 était consacrée au thème de la migration vers un système libre sur le poste de travail. Vous pouvez écouter le podcast ou lire la transcription.
Commentaires : voir le flux Atom ouvrir dans le navigateur
À l’heure où la fin du support de Windows 10 nous oblige à faire des choix, un collectif enseignant de la forge des communs numériques éducatifs invite les établissements scolaires à s’engager progressivement vers un Numérique qui soit davantage Inclusif, Responsable et Durable (NIRD).
Condition nécessaire mais non suffisante, l’adoption concrète et graduelle du système d’exploitation libre GNU/Linux au sein de l’établissement scolaire constitue à la fois le socle et le levier de la démarche. Pour équiper le parc informatique (mais aussi les familles ou les écoles aux alentours) en y menant notamment des projets de reconditionnement si possible avec les élèves. Pour engager petit à petit l’ensemble de l’établissement scolaire vers un usage du numérique qui soit davantage aligné avec ses missions de service public.
« La démarche NIRD est un projet très ambitieux car non seulement elle souhaite voir à terme une majorité d’écoles, collèges et lycées équipés majoritairement en Linux, mais elle souhaite aussi et surtout s’intégrer pleinement dans la stratégie numérique et écologique des établissements scolaires, ce qui implique notamment la mobilisation des collectivités et le soutien de l’institution. »
![]()
La démarche tire son nom d’une expérience réussie au lycée Carnot de Bruay-la-Buissière témoignant que c’est possible.
La forge des communs numériques éducatifs est un projet soutenu par le ministère de l’Éducation nationale mettant à disposition des enseignantes et enseignants une instance GitLab CE pour qu’ils créent et partagent eux-mêmes leurs propres logiciels et ressources éducatives libres. Ouverte en avril 2024, la forge compte à ce jour plus de 5000 dépôts.
Commentaires : voir le flux Atom ouvrir dans le navigateur
253e émission « Libre à vous ! » de l’April. Podcast et programme :
Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune. Vous pouvez nous laisser un message sur le répondeur de la radio : pour réagir à l’un des sujets de l’émission, pour partager un témoignage, vos idées, vos suggestions, vos encouragements ou pour nous poser une question. Le numéro du répondeur : +33 9 72 51 55 46.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Il y a exactement deux mois, un incident était survenu suite à un redémarrage brutal du serveur hébergeant les conteneurs de production et de développement ayant entraîné une attribution inattendue d’adresses IP. Et des réponses techniques 502 Bad Gateway pour notre lectorat.
Ce 26 août, vers 15:22, un message peu engageant est arrivé par pneumatique sur nos téléscripteurs (via Signal pour être précis) : « Tiens c’est bizarre j’ai perdu accès au site. Et au serveur oups. » L’après-midi et la soirée furent longues.
Le serveur répond au ping et permet les connexions TCP port 22, mais pas le SSH. Et les services web ne répondent plus. Souci matériel ? Noyau en vrac ? Attaque en cours ? Les spéculations vont bon train.
La connexion au serveur revient par intermittence, permettant à un moment d’exécuter quelques commandes, à d’autres d’attendre longuement pour l’affichage d’un caractère ou l’exécution de la commande tapée.
Le premier contact réétabli avec le serveur est assez clair (une forte charge) :
$ uptime
15:06:59 up 2 days, 2:54, 1 user, load average: 50,00, 205,21, 260,83
(dernier redémarrage le week-end précédent, mais surtout une charge système moyenne respectivement de 50, 205 et 261 sur les 1, 5 et 15 dernières minutes)
Initialement on suppose qu’il s’agit d’un trop grand nombre de requêtes ou de certaines requêtes tentant des injections de code sur le site (bref le trafic de fond plutôt habituel et permanent), et on ajoute des règles de filtrage péniblement et lentement pour bloquer les IP qui ressortent le plus dans nos logs.
Le site est alors inaccessible pendant plusieurs périodes. On arrête et relance ensuite plusieurs fois les services en pensant avoir ajouté suffisamment de filtrage, mais rapidement le serveur se retrouve englué. Les services sont alors arrêtés plus longuement le temps d’analyser les logs au calme. Au calme inclut notamment ne pas juste disposer d’une connexion ssh depuis un smartphone, mais plutôt d’un clavier et d’un grand écran par exemple, de l’accès à tous les secrets et toute la documentation aussi.
Finalement le trafic n’est pas énorme (en volume total) et si les requêtes hostiles sont bien présentes, rien ne semble inhabituel. Par contre les processus de coloration syntaxique partent en vrille, consommant chacun un processeur et aspirant allègrement la mémoire disponible. Avant d’être éliminés par le noyau Linux.
La console est remplie d’élimination de processus de ce type :
![]()
Mais si rien n’a changé niveau logiciel sur le conteneur LXC de production et si les requêtes ne sont pas inhabituelles, qu’est-ce qui peut bien écrouler le serveur et créer ces processus gourmands ?
Pendant les phases d’attente lorsque le serveur ne répondait plus vraiment, nous avons noté qu'une nouvelle entrée de suivi a été créée (merci BAud et merci RSS/Atom pour nous avoir permis de la voir alors que le serveur ne répondait déjà plus). Elle indique que la coloration syntaxique ne marche plus sur le site. Notamment l’exemple donné dans la documentation.
Pourtant le rendu fonctionne en testant en ligne de commande avec pygmentize.
Mais oui en testant l’exemple donné via le site, il est créé un processus Python2 pygment qui commence à se gaver de ressources.
Et en regardant les différents contenus et commentaires créés sur le site autour de l’incident, en filtrant sur ceux contenant des blocs avec de la coloration syntaxique, la dépêche (alors en préparation) sur G'MIC 3.6 apparaît. Et en testant cette dépêche, il est bien créé quatre processus Python2 pygment qui se gavent de ressources et ne semblent jamais vouloir se terminer. À rapprocher par exemple d’une page qui a été servie en 6785.9978s.
![]()
OK, le souci vient de requêtes tout à fait habituelles de coloration syntaxique, reste à comprendre pourquoi ces processus tournent mal.
Un petit strace pour suivre les appels système en cours sur un des processus infernaux relève une boucle assez violente :
(...)
close(623199355) = -1 EBADF (Bad file descriptor)
close(623199356) = -1 EBADF (Bad file descriptor)
close(623199357) = -1 EBADF (Bad file descriptor)
(...)
Il semble y avoir une immense itération sur des descripteurs de fichiers, en vue de les fermer, mais à l’aveugle, sans savoir s’ils existent réellement.
En regardant le code du composant utilisé (pygments), il semble n'y avoir qu'un seul appel à close() :
# close fd's inherited from the ruby parent
import resource
maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
if maxfd == resource.RLIM_INFINITY:
maxfd = 65536
for fd in range(3, maxfd):
try:
os.close(fd)
except:
pass
Donc on itère sur tous les descripteurs entre 3 et le maximum déterminé…
>>> import resource
>>> print(resource.getrlimit(resource.RLIMIT_NOFILE)[1])
524288
>>> print(resource.RLIM_INFINITY)
-1
Un demi-million de fois ici donc. L’objectif initial de la boucle est de fermer les descripteurs de fichiers provenant du processus Ruby père, issue du fork via Open3.popen3. La version suivante du composant la remplace d’ailleurs par un ajout de l'option :close_others, qui précisément « modifie l’héritage [des descripteurs de fichiers du processus parent] en fermant les non-standards (numéros 3 et plus grands) ».
Sur une Debian 12, la limite du nombre de fichiers par défaut, c’est 1 048 576. C’est déjà probablement bien plus que la valeur qui prévalait à l’époque où a été écrit la boucle Python (on avait des limitations à 4096 à une époque reculée). Mais il s’avère que durant le week-end l’hôte du conteneur de production a été migré en Debian 13. Sans modification du conteneur de production pensions-nous. Sans modification directe du conteneur de production. Mais quid d’une modification indirecte ? Par exemple si la limite par défaut des « Max open files » était passée à 1 073 741 816 sur l’hôte, soit 1024 fois plus que quelques jours auparavant. Et donc des boucles nettement plus longues voire sans fin, sans libération de mémoire.
On ne peut mettre à jour le composant pygments dans l’immédiat, mais on peut limiter les dégâts en abaissant la limite du nombre de descripteurs de fichiers à quelque chose de raisonnable (i.e. on va gaspiller raisonnablement des cycles CPU dans une boucle un peu inutile mais brève…). Une édition de /etc/security/limits.conf, un redémarrage du conteneur de production et on peut vérifier que cela va nettement mieux avec cette réparation de fortune.
Le conteneur LXC portant le service epub de production a assez mal pris la surcharge du serveur, et vers 20h08, systemd-networkd sifflera la fin de la récré avec un eth0: The interface entered the failed state frequently, refusing to reconfigure it automatically (quelque chose comme « ça n’arrête pas d’échouer, débrouillez-vous sans moi »). Le service epub est resté en carafe jusqu’au 27 août vers 13h31 (merci pour l’entrée de suivi).
Voir ce commentaire sur la dépêche de l’incident précédent expliquant la séparation du service epub et du conteneur principal de production (en bref : dette technique et migration en cours).
Le serveur était très occupé. Au point de n’avoir pas le temps de mettre à jour les graphiques de temps en temps.
Rétrospectivement les processeurs du serveur ont travaillé dur : 140 de charge sur le graphique (mais avec des pics jusque 260 d’après la commande uptime), contre moins de 5 en temps normal (un petit facteur de 28 à 52 ô_Ô)
![]()
Et l’utilisation de la mémoire montre aussi de brutaux changements de comportement : libération intempestive de mémoire (Free, en vert), utilisation mémoire plus importante que d’habitude (Used, en jaune), là où le comportement normal est d’avoir le maximum en cache (Cached, en orange) et des processus tellement peu consommateurs en RAM que cela n’apparaît normalement pas.
![]()
Dans les actions en cours ou à prévoir :
rrd des métriques concernant les interfaces réseauDe façon cocasse, ce nouvel incident et le temps passé à parcourir les différents logs ont permis de retrouver les infos de la carte d’administration distante et d’expliciter l’origine du redémarrage serveur intempestif. À quelque chose malheur est bon, si on peut dire. Ceci n’est pas une invitation pour un prochain incident.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Je pense que les questions posées sont orientées.
Je cite une des questions de l'étude
La France devrait-elle autoriser des étrangers à venir vivre en France ?
Pour ma part, oui tout à fait d'accord avec ça. Seuls les débiles voudraient totalement fermer nos frontières. Du coup si 69 % sont d'accord avec cette question ça n'est pas étonnant.
D'ailleurs l'article dit que moins de 69 % des français interrogés sont d'accord avec ça, mais 1% c'est aussi moins de 69% donc c'est quoi le vrai chiffre ? Il faut lire le rapport de 300 pages pour le savoir... En anglais si on ne parvient pas à trouver la traduction dans sa propre langue.
Mais passons, si nous posons la question suivante :
=> Quelles seraient les réponses ?
Une variante plus rigolote
=> Quelles seraient les réponses ?
Autres questions à poser
Selon l'Observatoire de l'Immigration l'immigration illégale alimente principalement les réseaux mafieux (drogue, proxénétisme, gangs, etc), selon faut-il faire appliquer les OQTF ?
Selon vous, que faire si un immigré clandestin expulsé récidive et revient sur le territoire national après son expulsion ?
Selon l'Observatoire de l'Immigration 900 000 immigrés clandestins séjournent de manière illégale en France, faut-il les expulser ?
En fonction des questions d'un sondage, on peut orienter les réponses car chaque question peut créer un sentiment qui va influencer les réponses suivantes. Quand on nous présente un sondage, le seul réflexe est de se demander qui a commander ce sondage. Pourquoi ? Car réaliser un sondage, surtout dans toute l'Europe, ça coûte un pognon de dingue ! Donc il s'agit forcément d'un groupe ayant des moyens colossaux et l'auditeur ne va certainement pas conclure quelque chose qui embêterait son plus gros client.
— Liens directs