11 Matching Annotations
  1. Nov 2025
    1. Synthèse du projet Sympa

      Résumé Exécutif

      Sympa est un gestionnaire de listes de diffusion open-source (GPLv2), développé en Perl depuis 17 ans.

      Initialement conçu au sein de l'université Comète-Résu, il est aujourd'hui hébergé par Renater, le réseau national de télécommunications pour la technologie, l'enseignement et la recherche en France.

      Bien qu'il assure les fonctions de base d'un gestionnaire de listes, Sympa se distingue par des fonctionnalités avancées qui en font un outil puissant pour les grandes organisations.

      Ses principaux atouts sont sa capacité d'intégration profonde avec les systèmes d'information existants (bases de données, annuaires LDAP, systèmes d'authentification), ses mécanismes d'industrialisation pour la création et la gestion de milliers de listes, et un système d'autorisation par scénarios extrêmement flexible et expressif.

      Le projet, bien que mature et utilisé par des institutions prestigieuses (90% des universités françaises, ministères, entreprises comme Orange et Atos), fait face aux défis d'un code historique de 17 ans.

      Pour y répondre, l'équipe de développement a entamé une refonte majeure du code pour la future version 7.0.

      Cette version introduira une architecture modernisée, des tests unitaires, une nouvelle interface web et une migration vers Git pour faciliter les contributions externes.

      La vision à long terme inclut le déploiement en mode SaaS, la diffusion de messages multi-supports (SMS, web) et un système de plugins.

      Le projet lance un appel actif à la communauté pour contribuer au développement, à la documentation, au support et à la gestion du projet, offrant même un service d'hébergement gratuit pour la communauté Perl afin de promouvoir l'utilisation d'outils libres.

      1. Introduction à Sympa

      Définition et Origine

      Nom : Sympa est l'acronyme de "Système de Multi-postage Automatique".

      Âge : Il s'agit d'un logiciel mature, dont la première version a été publiée le 1er avril 1997, soit il y a 17 ans au moment de la présentation.

      Fonction de base : Comme Mailman ou PHPList, Sympa permet d'envoyer un seul e-mail à un serveur qui se charge de le distribuer à un grand nombre d'abonnés.

      Hébergement et Licence : Le projet est hébergé par Renater, l'équivalent français du réseau national pour la recherche et l'éducation. C'est un logiciel libre sous licence GPLv2.

      Philosophie Perl : L'équipe revendique fièrement l'utilisation de Perl, affirmant que malgré les questions sur l'utilisation d'un langage "plus moderne", Sympa reste l'un des meilleurs gestionnaires de listes de diffusion et "il fonctionne".

      Statistiques et Utilisateurs Clés

      Sympa est utilisé par une base d'utilisateurs majoritairement internationale, malgré son origine française.

      Métrique

      Chiffre Record

      Contexte

      Plus grande liste

      1,6 million d'abonnés

      Plus grand nombre d'hôtes virtuels

      30 000

      Sur un seul serveur, par l'hébergeur Infomaniac

      Plus grand nombre de listes

      32 000

      Sur un seul serveur

      Plus grand nombre d'abonnés

      3 millions

      Sur un seul serveur

      Principaux utilisateurs :

      Recherche et Éducation : 90% des universités et centres de recherche en France.

      Secteur Public : Plusieurs ministères français.

      Entreprises privées : Orange, Atos.

      Hébergeurs : Infomaniac, Switch (fourni par défaut à leurs clients).

      Organisations non gouvernementales : riseup.net, NAA, UNESCO, CGT.

      2. Fonctionnalités Principales et Différenciatrices

      Au-delà de l'envoi d'e-mails, Sympa se distingue par des capacités avancées conçues pour les environnements complexes.

      Gestion Avancée des E-mails

      Envoi en masse optimisé : Sympa permet de regrouper les e-mails par domaine et de personnaliser la fréquence d'envoi pour éviter d'être identifié comme un spammeur tout en assurant une distribution rapide.

      Support des standards (RFC) : Il prend en charge S/MIME (signature et chiffrement), DKIM et offre une protection contre DMARC, ce qui a été crucial lorsque Yahoo a modifié sa politique en avril, cassant de nombreux systèmes de listes de diffusion.

      Gestion des erreurs : La gestion des bounces est automatique et gérée par Sympa, non par l'expéditeur original. Le support de VERP (Variable Envelope Return Path) permet de traiter automatiquement les erreurs pour les adresses e-mail transférées.

      Suivi des e-mails : Un suivi respectueux de la vie privée (sans "spy pixels") permet de savoir ce qui est arrivé à un e-mail pour chaque utilisateur, en se basant sur les RFC.

      Personnalisation (Mail Merging) : Il est possible de fusionner des données utilisateur dans un e-mail pour envoyer des messages personnalisés.

      Archives Web : Sympa dispose d'archives web avec un contrôle d'accès fin.

      Intégration aux Systèmes d'Information (SI)

      Sympa est conçu pour s'intégrer nativement avec les briques logicielles d'un système d'information d'entreprise ou d'université.

      Composant

      Technologies Supportées

      Serveur de messagerie (MTA)

      Sendmail, Postfix, Exim

      Base de données (SGBDR)

      MySQL, PostgreSQL, Oracle, SQLite, Sybase ("sans espoir")

      Serveur Web

      Apache, lighttpd, Nginx

      Sources de données (Référentiels)

      Bases de données relationnelles, LDAP, fichiers plats, services web (texte brut)

      Systèmes d'authentification

      Natif (email/mot de passe), CAS, Shibboleth, LDAP

      Industrialisation de la Gestion des Listes

      Pour les environnements nécessitant la création de centaines ou de milliers de listes (par exemple, chaque année dans une université), Sympa offre des mécanismes d'automatisation.

      1. Création Manuelle : Un simple formulaire web où l'utilisateur remplit les informations de base (nom, objet, propriétaire).

      Les valeurs par défaut sont fournies par la configuration globale et un modèle de liste (Template Toolkit - tt2).

      2. Familles de Listes : Un mécanisme pour créer des listes en masse.

      Il utilise un modèle tt2 commun et un fichier XML qui définit les paramètres spécifiques de chaque liste à créer.

      Une seule commande permet de générer ou de mettre à jour toutes les listes de la famille.

      3. Listes Automatiques : Conçues pour les cas où il existe un très grand nombre de listes potentielles mais où seulement une fraction sera utilisée.

      ◦ Le nom de la liste contient lui-même les paramètres (ex: prefix-field1_value1-field2_value2).  

      ◦ La liste n'est créée dynamiquement que lors du premier envoi d'un message à cette adresse.   

      ◦ Une interface web a été développée pour simplifier la composition de ces adresses complexes.

      4. Familles de Familles : Il est possible de créer des familles de listes automatiques, permettant une industrialisation à plusieurs niveaux.

      Mécanisme d'Autorisation par Scénarios

      C'est l'une des fonctionnalités les plus originales et puissantes de Sympa.

      Principe : Les autorisations pour chaque action (envoyer un message, consulter les archives, etc.) sont définies dans des fichiers appelés "scénarios" (ex: send.scenario).

      Structure d'un scénario : C'est une séquence de règles évaluées de haut en bas.

      Chaque règle a la forme : test(arguments) 'auth_method' -> decision.

      Évaluation : Le traitement s'arrête à la première règle dont le test est vrai.

      Tests : De nombreux tests sont disponibles (is_subscriber, is_list_owner, etc.).

      Il est possible d'ajouter des tests personnalisés via des modules Perl (custom_condition).

      Méthodes d'authentification : Permettent d'appliquer des règles différentes selon la robustesse de l'authentification (ex: smime, smtp pour le champ From:, md5 pour un utilisateur authentifié sur le web).

      Décisions : Vont au-delà du simple "oui/non". Les décisions possibles incluent do_it (accepter), reject (rejeter), owner (modération par le propriétaire), etc.

      Ce système offre une grande expressivité pour définir des politiques d'accès très fines.

      Capacités de Gestion de Groupes

      Sympa peut être utilisé comme un gestionnaire de groupes pour des applications tierces.

      Interface SOAP (et REST en développement) : Une interface SOAP permet à d'autres applications d'interroger les données internes de Sympa (créer une liste, abonner un utilisateur, etc.).

      Intégration : Des plugins pour des applications comme DokuWiki ou LimeSurvey permettent d'interroger Sympa pour savoir à quelles listes (donc à quels groupes) un utilisateur appartient.

      L'application tierce peut alors accorder des privilèges en fonction de cette appartenance.

      Hiérarchie de groupes : Sympa permet d'inclure des listes dans d'autres listes, créant ainsi des groupes plus larges.

      Personnalisation Poussée

      Presque tous les aspects de Sympa sont personnalisables à différents niveaux (serveur global, hôte virtuel, liste individuelle) selon un principe de cascade.

      Interface Web : Entièrement basée sur des modèles Template Toolkit.

      Messages de service : Les messages envoyés aux utilisateurs (bienvenue, etc.) peuvent être modifiés.

      Modèles de création de liste.

      Scénarios d'autorisation.

      Paramètres de liste : Il est possible de créer ses propres paramètres en plus de la centaine existante.

      Attributs utilisateur : Possibilité d'ajouter des champs personnalisés pour les utilisateurs, qui pourront être synchronisés avec LDAP ou une base de données dans une future version.

      3. Architecture et Fonctionnement Technique

      Le flux de traitement d'un e-mail illustre l'architecture modulaire de Sympa :

      1. Réception : Un e-mail est envoyé à une liste et arrive sur le MTA entrant.

      2. Traitement Initial : Le MTA transmet l'e-mail au démon sympa.pl, qui évalue les autorisations, personnalise le message, etc.

      3. Stockage : Si le message est autorisé, il est stocké dans une base de données relationnelle (SGBDR). L'utilisation d'une base de données permet un accès concurrentiel sécurisé.

      4. Distribution : Un démon dédié, bulk.pl, se charge exclusivement de l'envoi des e-mails.

      Il lit les messages dans la base de données et ouvre de multiples sessions SMTP pour une distribution rapide et parallélisable sur plusieurs serveurs.

      5. Archivage : Simultanément, une copie du message est traitée par le démon archived.pl pour être ajoutée aux archives web.

      4. Le Projet Sympa : Développement et Communauté

      Gouvernance et Équipe

      Développeurs principaux : Le projet est passé de 2 développeurs historiques à une équipe élargie de 5 personnes, dont 3 externes à Renater.

      Mark (Strasbourg) : Gourou Perl.   

      Guillaume : Responsable sécurité, expert en bonnes pratiques.    ◦ Soji (Tokyo) : Spécialiste des e-mails et des problèmes d'encodage (a mené la migration vers UTF-8).   

      Etienne : Développeur polyglotte.  

      David Verdin (le présentateur) : "Homme à tout faire" (documentation, gestion de communauté, présentations).

      Contributions : Le projet bénéficie de nombreuses contributions de la communauté Perl.

      Défis d'un Logiciel Ancien

      Avec 17 ans d'histoire, le code de Sympa est devenu très hétérogène, avec des styles de codage variés issus de nombreux contributeurs.

      Base installée : L'importante base d'utilisateurs en production impose une grande prudence lors des modifications du code.

      Dépendances : L'ajout de nouveaux modules CPAN est compliqué car les utilisateurs en production préfèrent installer via des paquets de distribution, qui doivent donc exister pour ces modules.

      Absence de tests : Historiquement, le logiciel n'avait pas de tests unitaires ; les tests étaient effectués "en direct" sur les serveurs de production.

      5. L'Avenir de Sympa : Feuille de Route et Vision

      Versions à Venir (6.2, 7.0, 7.1)

      Version 6.2 : Presque finalisée, elle subit actuellement des tests manuels intensifs avant une sortie en bêta.

      Version 7.0 : Il s'agit d'une refonte majeure.

      Nouveau code : Réécriture complète menée par Guillaume pour moderniser l'architecture. 

      Tests unitaires : Implémentation systématique de tests.    ◦ Nouvelle interface web : Plus simple, plus moderne et ergonomique, développée par un contributeur de Nouvelle-Zélande.  

      Migration vers Git : Pour faciliter le fork et les contributions externes (par exemple sur GitHub).

      Version 7.1 et au-delà :

      Mode SaaS (Software as a Service).  

      Diffusion multi-supports : Envoi de messages via SMS ou mise à jour de services web.  

      Système de plugins : Pour permettre l'ajout de petites fonctionnalités sans attendre une intégration au cœur du logiciel.  

      Support des adresses e-mail internationalisées.

      Orientations Stratégiques

      Un objectif clé est de maintenir la double capacité de Sympa :

      1. Grandes installations : Capable de tourner sur des clusters en mode SaaS.

      2. Petites installations : Rester simple à installer et à faire fonctionner sur un petit serveur autonome.

      6. Appel à la Participation et Offres à la Communauté

      Opportunités de Contribution

      Le projet recherche activement de l'aide, y compris non technique :

      Développement : Correction de bugs, ajout de fonctionnalités.

      Documentation : La documentation est un wiki modifiable par tout utilisateur abonné à la liste sympa-users.

      Support : Aider les autres utilisateurs sur les listes de diffusion.

      Packaging : Créer des paquets pour différentes distributions Linux.

      Gestion de projet : Partage d'expérience sur la gestion d'un projet logiciel en pleine croissance.

      Offre d'Hébergement Gratuit

      Pour contrer l'utilisation de services comme Google Groups par les communautés du logiciel libre, l'équipe Sympa propose de fournir un service d'hébergement de listes de diffusion gratuit pour la communauté Perl mondiale.

      L'infrastructure de Renater permet de déployer un nouvel hôte virtuel en 30 minutes.

      7. Questions et Réponses Clés

      Nouvelle interface web (v7.0) : Elle sera plus simple, avec moins d'options par défaut pour ne pas submerger les nouveaux utilisateurs.

      L'ergonomie sera plus moderne et proche de ce que l'on trouve sur les réseaux sociaux.

      Interface REST : Une interface REST existe déjà pour la gestion de groupes (basée sur OAuth), mais la refonte du code vise à rendre toutes les fonctionnalités de Sympa accessibles via toutes ses interfaces (ligne de commande, SOAP, REST, web et e-mail).

      Stockage des e-mails et des pièces jointes : Les e-mails des archives sont stockés de façon permanente.

      L'anonymisation est un défi juridique et technique complexe.

      Les pièces jointes sont stockées et accessibles via un lien.

      Pour les listes qui le souhaitent, les pièces jointes volumineuses peuvent être automatiquement détachées et remplacées par un lien pour alléger les e-mails.

      Support des bases de données : MySQL est celle qui reçoit le plus d'attention car c'est la plus utilisée par l'équipe.

      PostgreSQL et SQLite sont également très bien maintenus et leurs schémas sont mis à jour automatiquement.

      Le support d'Oracle est plus difficile.

  2. Jun 2024
    1. Résumé de la vidéo [00:00:04][^1^][1] - [00:06:04][^2^][2]:

      Cette vidéo explore les différences entre les sexes, depuis la fécondation jusqu'à l'âge adulte, en abordant les aspects biologiques et sociaux. Elle examine les variations chromosomiques, les tendances comportementales chez les enfants, les changements physiques à la puberté, les questions de fertilité et les implications sociales des différences entre les sexes.

      Points forts: + [00:00:04][^3^][3] Fécondation et chromosomes * Détermine le sexe du bébé * X et Y pour un homme, XX pour une femme * Cas des personnes intersexes + [00:01:18][^4^][4] Enfance et comportement * Garçons plus actifs et intéressés par les objets * Filles moins actives et douées pour les langues * Difficulté à distinguer les différences biologiques et sociales + [00:02:03][^5^][5] Puberté et adolescence * Changements physiques marqués * Différences de force et d'endurance * Questions d'identité et d'orientation sexuelle + [00:03:31][^6^][6] Âge adulte et fertilité * Risques et investissements différents pour les sexes * Influence des différences sur les préoccupations concernant l'infidélité * Diminution de la fertilité avec l'âge et implications sociales Résumé de la vidéo [00:03:31][^1^][1] - [00:06:04][^2^][2]:

      La vidéo explore les différences entre les sexes, en particulier pendant la puberté, la vie féconde et l'âge adulte. Elle examine les changements physiques et comportementaux, les préoccupations liées à la paternité et la maternité, ainsi que les implications sociales et légales des différences entre les sexes.

      Points forts: + [00:03:31][^3^][3] La vie féconde * Les deux sexes sont aptes à concevoir * Les hommes et les femmes font face à des risques différents * Les implications de l'infidélité varient entre les sexes + [00:05:01][^4^][4] Le milieu de l'âge adulte * La fertilité diminue avec l'âge * Les femmes atteignent la ménopause * Les hommes restent féconds plus longtemps + [00:05:37][^5^][5] La fin de l'âge adulte * Les femmes vivent plus longtemps que les hommes * Les hommes meurent souvent plus tôt d'une insuffisance cardiaque * Les différences de longévité peuvent être liées au mode de vie

  3. Mar 2023
  4. Sep 2022
    1. “That’s the mantra of web3, to be open and composable, and with CC0 no one owns the rights to the intellectual property. This creates huge potential for what can be created in the future. But the bigger corporations are coming into the space and trying to close things down, tracking wallets and essentially bringing web2 into web3. I don’t want that. I want web3 to continue to be built by the people, for the people, which is why all these public goods are crucial for the future of web3.”

      This is extremely interesting: the conviction that public domain approach is what differentiates web3 from web2. Quite different from a. typical spin that attributes this to the technological stack - here the stack is law + norms.

    2. “Chain Runners was the first community where I spent a significant amount of my time in their Discord server,” Beans recalls. “It was different because I wasn’t solely in it for profit, but rather talking about how cool the tech was. The CC0 vibe was far different than other projects I encountered; everyone in the server was talking about pushing the space forward.”
  5. Dec 2021
  6. Nov 2018
  7. Sep 2018
  8. Feb 2018