Vue normale

Reçu avant avant-hier

Sortie d’AgentJ en 2.1 - Une nouvelle version majeure depuis la 1.6

AgentJ est une solution anti-spam utilisé pour filtrer et bloquer les messages indésirables (spams) en entrée et en sortie.
Ce logiciel est une solution sous licence GNU Affero General Public License V3.

Voici une description générale de ses fonctionnalités :

  • Filtrage du spam : Identifie les messages non sollicités ou suspects (spams) à l'aide d'algorithmes qui analysent le contenu, les adresses d'envoi, et d'autres facteurs.
  • Apprentissage automatique : Utilise des techniques d'apprentissage automatique pour s'adapter aux nouveaux types de spam et améliorer son efficacité au fil du temps.
  • Blocage des adresses : Peut bloquer ou mettre sur liste noire certaines adresses e-mail, domaines, ou adresses IP connues pour envoyer des spams.
  • Authentification humaine : La première fois qu'un nouvel expéditeur vous contacte, un mail de confirmation lui est envoyé pour vérification
  • Rapports et statistiques : Fournis des rapports pour suivre le nombre de spams bloqués, les tendances, et d'autres informations utiles pour les administrateurs.
  • Personnalisation : Permet de définir des règles spécifiques, de créer des listes blanches (whitelist) et noires (blacklist), et d'adapter le niveau de filtrage en fonction des besoins.
  • Gestion multi domaines mail distincts ou miroir.
  • Rapport quotidien pour les utilisateurs qui les informe des mails en attente de déblocage.

Logo AgentJ
Cette nouvelle version 2.1 amène son lot d’améliorations, mais elle est surtout marquée par une amélioration majeure : la gestion des mails envoyés / le filtrage de mail en sortie.

Filtrage de mails en sortie

Cela permet de gérer l’ensemble du flux de mails sortants.

Apprentissage des mails sortants

Cette fonctionnalité permet que, lors d’un envoi de mail par un utilisateur interne, les destinataires (to, cc et cci) soient automatiquement autorisés.
Nous retrouverons les adresses autorisées comme les adresses actuelles avec comme précision « autorisée par envoi de mail ».

Paramétrage du taux d’envoi de mail

L’objectif est de permettre le paramétrage du nombre de mails par heure, par utilisateur. Le paramétrage pourra se faire soit pour le domaine mail, soit pour un groupe d’utilisateur, soit pour un utilisateur.
Sur un compte utilisateur, il sera indiqué le taux en vigueur et l’usage actuel pour l’utilisateur.

Alerte sur évènements indésirables

Cette fonctionnalité permettra de paramétrer un envoi d’alerte à un ou des mails spécifiques.
Les alertes pourront être envoyées lors des événements suivant :
• Spam (le niveau considéré comme Spam sera réglable)
• Virus
• Dépassement du taux d’envoi

Recherche de mail

Nous avons ajouté une recherche de mail avancé pour l’administrateur.

Recherche mail

Libération depuis le rapport mail

Maintenant, il n’est plus nécessaire de se loguer pour libérer un mail depuis le rapport quotidien envoyé par AgentJ un simple clique suffit.

Amélioration du tableau de bord

Nous avons amélioré le rendu du tableau de bord des statistiques

Tableau de bord

Prévisualisation sécurisée des emails

Vous pouvez désormais prévisualiser vos emails bloqués avant de décider de les libérer (ou non).

Prévisualisation mail

Test de performance

Nous avons effectué des tests de performance sur un VM avec 4 cœurs et 4 Go de RAM avec les paramétrages par défaut. AgentJ traite 10 000 mails en 11 min. Pour précision, les tests ont été effectués avec l’envoi de mail valides, car ils sont les plus longs en traitement comparé à des spams.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Zaibu, une alternative libre pour les amateurs de dégustation

19 février 2025 à 08:59

Cette dépêche présente Zaibu, une application web auto-hébergeable permettant de conserver un journal structuré de ses dégustations de bières et de vins. Développée avec SQLPage, elle met l’accent sur la simplicité, l’indépendance et le respect de la vie privée. Contrairement aux solutions centralisées comme Untappd ou Vivino, Zaibu ne collecte aucune donnée et reste entièrement sous le contrôle de l’utilisateur.

Logo de Zaibu

Note : n’ayant absolument aucune compétence ni aucun talent en graphisme, le logo a été créé avec Bing Image Creator et retravaillé et vectorisé par mes soins. Je sais, çaymal.

Sommaire

L’alcool est dangereux pour la santé, même en petite quantité. Le vin et la bière, comme les autres alcools, induisent une dépendance et tuent. Il est recommandé de ne pas consommer plus de 2 verres par jour, et de ne pas boire d’alcool au moins 2 jours par semaine. Si vous avez des doutes sur votre consommation, n’hésitez pas à contacter un professionnel de santé.

Pourquoi créer Zaibu ?

Zaibu répond avant tout à un besoin très concret : garder une trace de ses dégustations de boissons (uniquement bières et vins pour l’instant) sans dépendre d’applications trop encombrées ou propriétaires qui exploitent les données de leurs utilisateurs.

Ce projet est en fait l’évolution d’un simple fichier texte mis en forme selon une structure plus ou moins régulière. Il était à l’origine partagé via Nextcloud, un service de stockage et de synchronisation de fichiers, libre et auto-hébergeable. Pour passer de ce fichier brut à une véritable application, plusieurs outils ont été utilisés:

  • Makefile : un fichier de configuration pour GNU Make, permettant d’automatiser diverses tâches (ici, la conversion du fichier texte).
  • Gawk : une version libre de l’outil AWK, qui lit et transforme le contenu du fichier texte pour l’adapter au format voulu.
  • textql : un utilitaire en ligne de commande qui interprète des fichiers texte (CSV, TSV…) comme des tables SQL, ce qui facilite le chargement des données dans une base SQLite.

Grâce à cette chaîne d’outils, le fichier texte initial a pu être converti en une base de données exploitable, pour ensuite alimenter l’application Zaibu.

Pour ceux qui collectionnent les bouteilles comme d’autres collectionnent les timbres, c’est un outil pratique et léger, conçu pour être maîtrisé de bout en bout : le code source est distribué sous licence libre (AGPLv3), l’application est facile à héberger sur son propre serveur, et consomme très peu de ressources.

Un objectif secondaire était de tester les capacités de l’outil SQLPage pour le développement rapide d’applications de gestion de données.

Un besoin personnel

Il peut être difficile de se souvenir d’une bonne bière artisanale goûtée l’année passée ou du vin qui vous a tant plu à un mariage. Un carnet de notes ou un tableau dans un logiciel de bureautique peuvent dépanner, mais on s’y perd vite, et ce n’est pas toujours très pratique à consulter sur son téléphone quand on est en pleine dégustation.

Zaibu propose un formulaire simple où vous pouvez renseigner le nom, le producteur, le style, l’amertume, le taux d’alcool, vos impressions… Une fois la dégustation terminée, vous conservez une trace précise, consultable à tout moment. En un coup d’œil, vous pouvez comparer vos différents coups de cœur ou vous rappeler pourquoi un vin particulier ne vous avait pas convaincu.

Une occasion de tester SQLPage

Zaibu a aussi été conçu comme une démonstration technique. Il a servi de terrain d’expérimentation pour un nouvel outil, SQLPage, qui permet de créer une application web de gestion et d’affichage de données complète sans s’encombrer de milliers de lignes de code. En partant de requêtes de bases de données très simples, on obtient un site fonctionnel rapidement.

Ici il s’agit d’une application de type CRUD dans sa plus simple expression, donc parfaitement adaptée à être écrite en pur SQL. Même si certains traitements nécessitent de se creuser un peu plus la tête quand rien d’autre n’est disponible, il existe généralement une manière d’arriver à ses fins (et on découvre parfois avec bonheur des subtilités du langage qu’on ignorait !).

C’est le framework parfait pour créer rapidement ses propres outils tout en gardant la maîtrise complète de sa donnée, en utilisant une base de données que l’on peut héberger soi-même facilement.

Une approche libre et auto-hébergeable

De nombreuses applications existent déjà, mais elles imposent souvent la création d’un compte, exploitent les données des utilisateurs et monétisent leur activité via la publicité ou des abonnements. Zaibu prend le contre-pied en offrant une solution entièrement libre, légère et indépendante.

L’application repose sur SQLite, un système de gestion de base de données qui se distingue des bases de données traditionnelles comme MySQL ou PostgreSQL. Contrairement à ces dernières, qui nécessitent un serveur dédié fonctionnant en arrière-plan pour gérer les requêtes et stocker les informations, SQLite est une base de données embarquée.

Cela signifie que toutes les données sont enregistrées directement dans un fichier unique sur l’ordinateur ou le serveur où l’application est installée. Il n’y a donc pas besoin d’installer et de configurer un logiciel supplémentaire pour gérer la base de données. Cette approche simplifie considérablement l’installation et l’utilisation de l’application, surtout pour des utilisateurs qui ne sont pas familiers avec l’administration de serveurs.

Et puis bien sûr, son code est ouvert. C’est comme une bière artisanale : vous savez exactement quels ingrédients sont utilisés, comment ils interagissent, et si l’envie vous prend, vous pouvez modifier la recette pour l’adapter à vos préférences. Vous pouvez la brasser tel quel, y ajouter une touche personnelle, ou même la partager améliorée avec d’autres passionnés. Ici, tout est transparent et modifiable.

Une interface simple et accessible

Pensée pour une utilisation mobile et desktop, l’interface de Zaibu permet d’ajouter rapidement une dégustation, sans fioritures. Sur smartphone, il devient facile de consulter ses notes en magasin ou chez un caviste pour retrouver une référence appréciée ou éviter une déception.

capture d'écran du menu principal de l'interface mobile

capture d'écran du formulaire de saisie de dégustation de bière de l'interface desktop

Et maintenant ?

Zaibu est encore jeune et perfectible. L’application pourrait évoluer avec des fonctionnalités comme le partage entre utilisateurs ou l’intégration d’une base collaborative… N’hésitez pas à faire vos retours dans les commentaires !

Et si le principe vous intéresse, vous pouvez aussi découvrir Mon petit potager du même auteur et construit sur le même framework, cette fois pour suivre les récoltes de son jardin et la pluviométrie.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Entrevue avec Herman BRULE, développeur d'Ultracopier et de CatchChallenger

Herman BRULE est l’auteur et le mainteneur de deux applications (libres sous licence GPL v3, mais aussi proposées dans des versions payantes « Ultimate ») : l’utilitaire Ultracopier et le jeu CatchChallenger.

Sommaire

Bonjour Herman, peux-tu te présenter ?

Bonjour !

Sur le plan professionnel, je suis DG de Confiared (hébergement Web et VPS) et de Confiabits (fabrication et assemblage de circuits imprimés), et directeur de la technologie chez CTO chez DanSolutions (FAI).
Par ailleurs, j’aide des associations locales (j’habite en Bolivie) dans des domaines techniques comme les télécoms ou le développement logiciel, j’interviens parfois comme conférencier sur ces sujets.
Enfin, je participe au conseil d’administration de la section bolivienne de l’Internet Society (ISOC Bolivie).

Peux-tu nous raconter ton parcours ?

J’ai étudié l’électronique (BTS STI), puis le développement web. J’étais d’ailleurs encore étudiant quand j’ai commencé à développer Ultracopier.
J’ai longtemps travaillé dans l’e-commerce, puis pour des raisons personnelles je suis allé vivre en Bolivie.
J’ai été plutôt déçu par la qualité des offres locales, ici en Bolivie, dans le secteur des technologies de l’information, c’est pourquoi j’ai décidé de proposer mes services.

Peux-tu nous parler de ces deux logiciels ?

Ultracopier

Logo de Ultracopier

Comment est né ce projet ?

J’avais besoin d’un utilitaire avancé pour la copie de fichiers, comme Supercopier, pour une utilisation sous Linux mais ce dernier n’était pas disponible sur cette plateforme.
Ultracopier est donc né non pas comme un fork de Supercopier mais comme un projet indépendant : à l’époque, Supercopier était écrit en Pascal, et je préférais écrire en C++.

Au final, quand toutes les fonctionnalités ont été implémentées et qu’Ultracopier a disposé d’un skin Supercopier, une redirection a été mise en place.

Aujourd’hui, après 20 ans, le projet est toujours actif et maintenu, malgré les problèmes de tentative de piratage, bug, DDOS, et les évolutions technologiques.

Quels sont les points marquants qui ont, selon toi, marqué son développement ?

Après la reprise de Supercopier, qui a permis de fédérer sa base d’utilisateurs autour d’Ultracopier, il y a eu de nouvelles fonctionnalités au fil du temps :

  • la prise en charge de gros volumes (>5TB >10 millions de fichiers)
  • les extensions (plugins) et thèmes graphiques (skins), dont le développement m’a poussé à standardiser l’interface pour la réutilisation par des applis tierces.

Quel est le modèle économique ?

C’est assez peu connu mais Ultracopier est proposé dans deux versions : une gratuite (installable depuis le gestionnaire de paquets d’Ubuntu notamment) et une version « Ultimate ». Cette version, payante, est enrichie de fonctionnalités comme

  • la mise en pause,
  • la limitation du taux de transfert,
  • d’autres options de performance selon le système d’exploitation utilisé et inclut un support technique.

Pour être honnête, les utilisateurs de la version payante sont très peu nombreux : une écrasante majorité utilisent la version gratuite et d’autres piratent la version payante.

Ma vie professionnelle et mon engagement à l’ISOC Bolivie sont très chronophages, je ne compte pas mes heures sur mes principales activités d’hébergeur et de FAI, et à une usine de fabrication d’équipements réseau pour ces besoins.

J’ai quand même publié de l’open source comme le firmware OpenWRT pour le routeur wifi 6 que je fabrique.

Des dons ou des achats sont bienvenus pour que je puisse me concentrer davantage à l’open source ;) Je crois que beaucoup de développeurs open source sont dans cette problématique.
Heureusement, l’hébergement ne coûte presque rien car j’utilise mon propre service, et je suis le seul contributeur.

Quelles sont les fonctionnalités les plus attendues que tu penses implémenter ?

Je souhaiterais améliorer l’intégration d’Ultracopier dans les gestionnaires de fichiers sous Linux ou MacOs, mais ce n’est pas chose facile. Pendant des années j’ai essayé de faire modifier les gestionnaires de fichiers pour avoir la possibilité de replacer le copier/coller par Ultracopier. Rien. Soit je suis ignoré, soit je suis refusé (motif de refus récurent : je devrais refaire Ultracopier en « natif » : GTK, KIO, Haiku…), je me vois mal maintenir divers UI. Les votes sur demande de fonctionnalités sont les bienvenus, par exemple ici pour KDE/Plasma.

Je veux aussi implémenter un moteur async natif sous linux (en utilisant io_uring) pour de meilleures performances.

As-tu eu des échanges/retours avec les autres logiciels ou éditeurs (communauté linux / autres éditeurs) ?

Non. J’ai essayé de faire que le protocole d’envoi de copie/déplacement à un logiciel tiers soit un standard avec un protocole commun pour motiver les gestionnaires de fichiers à l’utiliser, je n’ai reçu que des réponses négatives :/

Peux-tu partager des souvenirs marquants de cette expérience ?

Durant toutes ces années, conscient que la copie de données est un sujet qui peut être très sensible, j’ai veillé à être réactif aux retours des utilisateurs : dès que quelque chose d’anormal m’est reporté, je m’assure de vérifier/corriger et de publier très rapidement. Je pense qu’Ultracopier garantit bien l’intégrité des données lors des copies, parfois mieux que des copies par l’outil du système. Par exemple, si pendant le déplacement de fichiers vers un lecteur réseau ce lecteur réseau se déconnecte, alors Windows peut détruire la source sans avoir pu valider l’intégrité réelle du fichier cible. Il faut reproduire un contexte très particulier, mais ça c’est vu.

Malgré cette attention, il m’est arrivé de recevoir des insultes de certains utilisateurs, allant jusqu’à des menaces de mort. J’ai une bonne collection de conversations de ce genre ! Il s’agit d’une minorité d’utilisateurs, en majorité des débutants en informatique et qui n’ont pas utilisé correctement l’outil, ou plus généralement leur ordinateur.

Par ailleurs, le spam et les tentatives de piratage (dont une pour rediriger les paiements des versions "Ultimate » !) auront eu raison des pages Wiki et Maintenance du site, faute de temps pour la modération.

Il me semble tout de même que la majorité silencieuse (= celle qui dit rarement merci ;) ) est dans l’ensemble très satisfaite des services rendus par Ultracopier, et cela est motivant. Pour moi, le point le plus positif est surtout l’acquis de connaissances.

CatchChallenger

Logo de CathChallenger

Quelle est l’origine de ce jeu ?

Je cherchais à me familiariser avec la programmation autour de sujets relatifs aux clients/serveurs, comme les protocoles, la haute performance, le chiffrement, et aussi les bots… …et le développement d’un jeu est le moyen ludique par excellence !

Vu qu’il n’y a pas de temps réel, je peux jouer avec TOR/I2P (un bon moyen de tester la sécurité), pas de flottant donc cela marche sur tous les CPU, y compris ceux de plus de trente ans et les architectures exotiques comme celles que l’on trouve dans les routeurs (MIPS…).

C’est un mix de plusieurs jeux au gameplay de type crafting (à la lineage/X3/minecraft) qui m’intéressait pour les techniques ce que ce genre implique.

Quels sont les points marquants qui ont, selon toi, marqué son évolution ?

Version 1 : j’ai essayé de m’éloigner visuellement d’un jeu bien connu auquel mon jeu pouvait être associé.

Version 2 : j’ai abandonné Qt niveau serveur car trop lent niveau SLOT/SIGNAL, et revu le thème graphique avec des couleurs plus chaudes, même si ça me rapproche d’un autre jeu connu.

Version 3 : modularité/API et interface responsive, refonte du datapack.

Est-il facile de monter son propre serveur? Ou de modifier le jeu ?

Le client intègre un serveur embarqué pour jouer en solo, qui peut être ouvert sur un réseau local ou sur Internet.

Le serveur a une interface graphique et une version console (avec diverses bases de donnée supportées, y compris du noSQL)

Le datapack est facilement interchangeable et tout est fait pour qu’un enfant puisse le modifier (png, xml, tmx, opus)

Y a-t-il d’autres contributeurs ?

Non

y a-t-il des fonctionnalités importantes qui ne seront pas développées, et pourquoi ?

Il y en a beaucoup, par manque de temps. Je n’ai jamais atteint un stade de maturité sur le jeu de base qui me convient, donc je me concentre là-dessus. Par exemple, je me suis lancé sur le multithreading GPU côté serveur : j’ai pu lancer des tests sur GPU, cela fonctionne bien mais complexifie trop le développement sans apporter un réel bénéfice.

Quel est le rapport avec tes autres projets ?

Avec ce projet, j’ai vite eu besoin d’un grand nombre de VPS, cela m’a incité à m’intéresser aux datacentres et à monter modestement mon premier datacentre. De fil en aiguille, j’en ai fait mon activité :)

J’ai aussi eu besoin de connexions, de haute performance et de haute disponibilité. Curieux, je me suis lancé dans la conception de mon hardware : onduleur, alimentation solaire…

Qu’as-tu retiré de ce projet ?

J’ai été surpris par les performances, pour un code qui n’est pas en assembleur et qui pourrait encore être optimisé : des millions de joueurs sur un CPU de bureau par serveur. Vous saturez l’écran de bots bien avant de saturer le CPU, même un très vieux CPU ou un microcontrôleur de routeur, et la charge en RAM ne dépasse pas quelques Mo.

La prédiction côté client (Client-side prediction), les instructions préparées (SQL parameterized statement) sont très efficaces, je charge tout en RAM sous forme d’entier <=32Bits. Vu qu’il faut des performances bien supérieures du client pour surcharger un serveur, il y a peu de chance qu’on m’attaque via DDOS.

Quels conseils avec le recul donnerais-tu à ceux qui entreprendraient de se lancer ?

Ne faites pas de projets que vous n’allez pas maintenir, aussi bien pour vous que pour ceux qui vont les utiliser.

Aussi, ne vous lancez pas sur un projet que mille autres personnes ont déjà fait avant vous, il y a une tonne de projets de niche qui n’ont pas de solution open source !

Ton rapport au libre

Au niveau personnel, quels logiciels libres utilisez-vous, sur quel OS ?

J’utilise Gentoo Linux et presque que du libre.

Même question au niveau professionnel ?

En général j’essaie de faire le modèle pro suivant : quand un logiciel a été rentabilisé, je le libère.

Niveau data center, on fonctionne en IPv6 avec des logiciels de conversion pour, par exemple, passer de HTTP IPv4 à IPv6, si tu ajoutes tous les services internes + gestionnaires, ça fait mal pas de logiciels.

Niveau industrie, je produis des onduleurs, des serveurs, des routeurs datacentres et domestiques (wifi 6 OpenWRT), avec les difficultés ici pour importer je dois faire avec ce que je trouve sur place (et il n’y a quasiment rien pour la microélectronique).

Niveau FAI, rien à voir avec ce qu’il y a en France, entre les blocages politiques et administratifs (j’attends certaines autorisations depuis de nombreuses années), les monopoles… rien n’avance. Mais malgré ces difficultés j’ai pu innover et proposer des solutions efficaces pour des communautés locales, grâce à des logiciels libres.

Merci pour ce partage, et pour ton apport au libre ! Nous te souhaitons beaucoup de succès dans tes nombreux projets pour 2025 !

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌