Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierinformatique général
  • ✇LinuxFr.org : les dépêches
  • EmmaDE6 1.02 améliore encore l’accessibilité aux déficients visuels
    Ce 27 juillet 2026, le collectif Emmabuntüs vient d’annoncer la sortie de sa nouvelle version Emmabuntüs Debian Édition 6 1.02, basée sur la Debian 13.6 Trixie et supportant les deux environnements de bureau XFCE et LXQt. lien nᵒ 1 : 11 représentants des structures spécialisées prennent en main l’informatique inclusivelien nᵒ 2 : Interviews réalisées suite à la première formation sur l’accessibilitélien nᵒ 3 : Manuel des fonctions d’accessibilité dans Emmabuntüslien nᵒ 4 : Page sur l’accessibi

EmmaDE6 1.02 améliore encore l’accessibilité aux déficients visuels

Ce 27 juillet 2026, le collectif Emmabuntüs vient d’annoncer la sortie de sa nouvelle version Emmabuntüs Debian Édition 6 1.02, basée sur la Debian 13.6 Trixie et supportant les deux environnements de bureau XFCE et LXQt.

Première séance de formation au Centre  Polyvalent Saint-Augustin de Lomé, du 9 au 10 juillet 2026

Rappelons que cette distribution est née au sein du Mouvement Emmaüs, pour faciliter le reconditionnement des ordinateurs donnés aux associations, notamment humanitaires, mais aussi pour favoriser la découverte de GNU/Linux par les débutants, tout en prolongeant la durée de vie du matériel informatique, ce qui réduit le gaspillage lié à la surconsommation de matière première.

La nouvelle évolution de cette distribution concerne essentiellement des améliorations en matière d’accessibilité avec notamment un retour à la version stable d'Orca 48.1.1 ainsi qu’une meilleure prise en charge de la synthèse vocale Piper, ce qui améliore notablement le confort d’écoute du système.
Cette distribution a été utilisée lors de la première séance de formation dispensée au Centre Polyvalent Saint-Augustin de Lomé, à l'intention des futurs référents représentant les 10 structures spécialisées pour les personnes déficientes visuelles du Togo.

Pour mémoire ces actions se font en collaboration étroite avec l’A.S.I. YOVOTOGO qui prévoit aussi l’installation d’une première salle informatique au Cameroun, marquant une nouvelle étape dans l’expansion géographique de ses actions dans cette région d’Afrique.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Korben
  • Castor - Votre flux vidéo web sur la télé, en top qualité
    Vous avez déjà pesté contre votre télé qui refuse de lire une vidéo pourtant toute bête trouvée sur le web ? Hé bien Kilian Houpeurt aussi et c'est pourquoi il a décidé, plutôt que de râler dans le vide comme un mec lambda sur Twitter, qu'il allait prendre le taureau par les cornes et coder sa propre solution. Ça s'appelle Castor et évidemment ça envoie du bois, lol. En fait c'est un outil en ligne de commande écrit en Go qui est open source et qui permet d'envoyer le vrai flux vidéo d'une page

Castor - Votre flux vidéo web sur la télé, en top qualité

Par : Korben ✨
19 juillet 2026 à 09:57

Vous avez déjà pesté contre votre télé qui refuse de lire une vidéo pourtant toute bête trouvée sur le web ? Hé bien Kilian Houpeurt aussi et c'est pourquoi il a décidé, plutôt que de râler dans le vide comme un mec lambda sur Twitter, qu'il allait prendre le taureau par les cornes et coder sa propre solution.

Ça s'appelle Castor et évidemment ça envoie du bois, lol. En fait c'est un outil en ligne de commande écrit en Go qui est open source et qui permet d'envoyer le vrai flux vidéo d'une page Web directement sur votre télévision en qualité max sans avoir besoin de Chromecast, ni d'AirPlay.

L'astuce, c'est qu'il ne recopie pas votre écran comme le ferait un mirroring (qui rame et qui compresse tout, on est d'accord...). Vous lui donnez simplement l'adresse d'une page Web et lui va la charger dans un Chrome Headless, c'est-à-dire sans interface et capter le trafic réseau grâce au Chrome Devtools Protocol. C'est le flux vidéo ensuite qui transite qui est repéré et qu'il prend à la source.

Derrière, vous vous en doutez, ffmpeg transcode à la volée pour votre télé pendant que ffprobe détecte le format qui arrive. Pour alimenter Castor, vous avez alors trois possibilités, soit vous lui fournissez une page Web avec la commande castor cast player, soit vous lui passez un flux brut en .m3u8 avec la commande castor cast url, ou alors simplement un identifiant IMDB/TMDB que Castor résoudra via les sources que vous avez configurées de votre côté.

Et si vous renseignez une clé TMDB, castor cast tout court vous sortira alors un navigateur interactif en plein terminal Et c'est là-dedans que vous pourrez filtrer par genre (ou peu importe la métadonnée que vous voulez) ou parcourir les films comme vous le feriez sur Netflix, ou encore aller explorer les épisodes d'une série. Qui vous fait envie. Tout ça sans jamais quitter votre terminal. Ça a quand même un peu de gueule !

Le navigateur TMDB de Castor, directement dans le terminal.

Castor sait les générer lui-même les sous-titres avec whisper.cpp avant de les incruster dans la vidéo, Mais attention quand même, le modèle par défaut ne comprend que l'anglais, si vous voulez du français, faudra faire pointer Castor vers un modèle whisper multilingue.

Enfin, côté réception, Castor sait causer DLNA / UPnP, un protocole que Samsung, LG, Sony Bravia, Panasonic, Philips, Hisense ou encore TCL savent gérer depuis des années. Un petit castor scan et il vous liste tous les récepteurs qui traînent sur votre réseau et vous verrez que Kodi, VLC et Plex répondront aussi présents. Pour ce qui est du support du Chromecast, c'est encore un peu expérimental, donc ne comptez pas trop dessus pour le moment.

L'installation sur Mac se fait via brew install --cask stupside/tap/castor. Prévoyez juste Chrome ou Chromium sur la machine + ffmpeg et ffprobe accessibles dans le PATH. Une image Docker existe avec tout dedans, mais méfiance sur Docker Desktop macOS ou Windows puisque la découverte réseau ne passe pas le bridge, donc le conteneur ne verra jamais votre télé.

Maintenant, ce n'est pas un outil de piratage, puisque Castor n'héberge rien du tout. C'est un outil générique qui pousse un flux vers une TV, et c'est à vous de respecter la loi ainsi que les conditions d'usage des sites. Bref, ne castez que ce que vous avez le droit de regarder. Pour envoyer un flux IPTV ou un bête .m3u8 sur l'écran du salon, c'est en tout cas, super pratique.

Si vous bidouillez un serveur média maison, allez donc jeter un œil à Castor , le dépôt vaut le détour !

  • ✇Korben
  • DuckDuckGo zappe les pubs YouTube
    Alors ça, Google va adorer ! En effet, depuis hier (le 8 juillet), le navigateur DuckDuckGo bloque les pubs YouTube tout seul comme un grand. Le pre-roll interminable avant votre tuto Docker , la double coupure en plein milieu d'un unboxing, ou encore la pub pour une appli de casino que vous n'avez jamais demandée... tout dégage, en mode par défaut sans avoir besoin d'ajouter une extension. iOS, Windows et Mac sont servis d'office, et sur Android ça s'active à la main dans Settings > Ad Block

DuckDuckGo zappe les pubs YouTube

Par : Korben ✨
9 juillet 2026 à 13:27

Alors ça, Google va adorer ! En effet, depuis hier (le 8 juillet), le navigateur DuckDuckGo bloque les pubs YouTube tout seul comme un grand. Le pre-roll interminable avant votre tuto Docker , la double coupure en plein milieu d'un unboxing, ou encore la pub pour une appli de casino que vous n'avez jamais demandée... tout dégage, en mode par défaut sans avoir besoin d'ajouter une extension.

iOS, Windows et Mac sont servis d'office, et sur Android ça s'active à la main dans Settings > Ad Blocking (le par défaut arrive bientôt).

Le canard américain ne réinvente rien puisqu'il embarque tout simplement les listes de filtres communautaires du projet uBlock Origin , mises à jour régulièrement pour suivre les parades de la régie pub de Google.

Sur son blog , ils annoncent donc que leur fonctionnalité bloque la "plupart" des publicités. Donc pas 100% et ils préviennent qu'un peu de buffering peut également apparaître au lancement d'une vidéo. Ouais ça c'est la petite astuce de Google pour contrarier les utilisateurs d'AdBlocker...

Mais une fois la lecture partie, plus d'interruption !

Sur ordi, vous verrez une petite icône vidéo à côté du bouclier vert dans la barre d'adresse, c'est là que ça se pilote.

Le réglage Ad Blocking, planqué dans le menu du navigateur

Sur mobile, je le précise encore parce que ça ne coule pas de source pour tout le monde, c'est seulement si vous ouvrez YouTube dans le navigateur DDG. L'application YouTube officielle , elle, continuera de vous balancer des tunnels de pubs tranquillement.

Et si vous utilisez déjà Duck Player , le mode théâtre sans cookies de pistage, les 2 fonctionnent ensemble sans se marcher dessus.

Bon, les blasés de la vie me diront que Brave fait ça nativement depuis des années et c'est vrai. Mais ce qui est intéressant ici, c'est que c'est un blocage activé par défaut pour madame et monsieur Tout-le-monde, sur un navigateur qui se télécharge gratuitement . Le blocage de pub n'est plus une bidouille de geek, mais c'est devenu un argument marketing pour "vendre" son navigateur.

Du coup, dans le bras de fer entre YouTube et les bloqueurs de pubs , qui s'est durci depuis fin 2023 à coups d'avertissements, de ralentissements volontaires et de lectures bloquées, je pense que la riposte de Google ne va pas tarder donc préparez les popcorns.

Mais quoi qu'il en soit, c'est encore un coup dur pour les youtubeurs. Bon, il restera toujours la possibilité de faire des segments sponsorisés directement dans la vidéo... Ah mais non, oups, c'est vrai, il y a SponsorBlock qui se débarrasse de ça aussi. Ouin !

Mais alors qu'est-ce qu'on va devenir, nous, les créateurs de contenu ?

Eh bien c'est simple. Si vous aimez bien ce qu'on fait, faut nous soutenir. Moi, par exemple, j'ai un Patreon et il y a plein de gens dessus qui me soutiennent, ce qui est super cool, j'ai vraiment beaucoup de chance. Et je les remercie tous.

J'encourage les autres créateurs de contenu à faire pareil, y compris les YouTubers, à mettre en place ce genre de système. Et sachez qu'on n'est pas obligé de se prendre la tête avec des contreparties...etc parce qu'on n'a pas vraiment le temps, on a déjà beaucoup de choses à faire. L'important c'est d'être transparent avec votre communauté, vous dites juste que c'est pour continuer à faire ce que vous faites d'habitude, c'est pour continuer à faire tourner la chaîne dans la joie, la bonne humeur et ça devrait très bien se passer.

Moi mon rêve c'est qu'un jour le Patreon ramène suffisamment d'argent pour que je puisse me passer à 100% de partenaires pub. Un jour peut-être, on verra bien.

Source

  • ✇Korben
  • wacli - Archivez tout WhatsApp en local et faites-y des recherches hors ligne
    Peter Steinberger, le papa de PSPDFKit , s'est mis en tête de faire sortir WhatsApp de sa prison dorée. Et pour cela, il a mis au point wacli, un client WhatsApp qui tourne exclusivement dans votre terminal. Ça se compose donc de commandes que vous pouvez scripter dans la joie et la bonne humeur pour enchaîner et automatiser toutes vos idées folles sur Whatsapp comme avec n'importe quel outil Unix. Wacli se connecte à votre compte comme un appareil lié, exactement comme WhatsApp Web, vous scanne

wacli - Archivez tout WhatsApp en local et faites-y des recherches hors ligne

Par : Korben ✨
4 juillet 2026 à 10:00

Peter Steinberger, le papa de PSPDFKit , s'est mis en tête de faire sortir WhatsApp de sa prison dorée. Et pour cela, il a mis au point wacli, un client WhatsApp qui tourne exclusivement dans votre terminal. Ça se compose donc de commandes que vous pouvez scripter dans la joie et la bonne humeur pour enchaîner et automatiser toutes vos idées folles sur Whatsapp comme avec n'importe quel outil Unix.

Wacli se connecte à votre compte comme un appareil lié, exactement comme WhatsApp Web, vous scannez un QR code depuis votre téléphone et hop, l'outil rapatrie vos conversations dans une base SQLite locale, sur votre machine. À partir de là, la recherche se fait hors ligne.

Un wacli messages search "réunion" et vous ressortez un vieux message noyé dans la masse, sans même être connecté. Pour envoyer un message, un wacli send file --to maman --file ./photo.jpg et c'est parti. Et les groupes et les contacts se pilotent de la même façon, réactions comprises, au clavier.

Côté technique, c'est du Go bâti sur whatsmeow , la bibliothèque de référence qui parle le protocole WhatsApp Web multi-device. Comme ça vos messages restent chiffrés de bout en bout. Et de son côté, la base locale offre une recherche plein texte instantanée (FTS5), et à peu près tout ressort en JSON avec le flag --json, ce qui veut dire que vous pouvez brancher wacli sur vos propres scripts, un cron, un pipeline de sauvegarde, ou tout ce que vous voulez.

Les données atterrissent ensuite dans ~/.wacli sur votre Mac, et vous en faites ce que bon vous semble. Un brew install openclaw/tap/wacli et c'est installé (Oui, le projet est passé sous l'organisation openclaw).

Et comme le tout est sous licence MIT, vous pouvez bidouiller ça comme bon vous semble.

Maintenant, la partie où je dois être franc avec vous c'est que wacli n'est pas un outil officiel. Il passe par le protocole WhatsApp Web récupéré par rétro-ingénierie via whatsmeow, et Meta n'aime pas trop ça.

Le README le dit noir sur blanc, c'est un outil tiers non affilié à WhatsApp. En clair, vous jouez avec les conditions d'utilisation, et un compte repéré sur ce genre de manip peut se faire suspendre. À réserver donc à un usage perso et raisonnable, et pas pour faire du spam de masse.

Reste que pour qui veut reprendre la main sur ses données, c'est pile le genre d'outil que j'aime. Dans le même esprit que msgvault qui libère vos emails de la prison Gmail , mais pour la messagerie de Meta.

Merci Camille Roux pour le lien !

Source : https://github.com/openclaw/wacli

  • ✇LinuxFr.org : les dépêches
  • Migrer de WordPress vers Hugo
    Passer du système de gestion de contenu WordPress au générateur de sites statiques Hugo c’est changer de paradigme, il faut savoir ce que l’on va gagner et ce que l’on va perdre et il faut retrousser ses manches, un jour viendra où cela se fera en un clic, mais ce n’est pas aujourd’hui ! lien nᵒ 1 : l'original (ou le clone ?) de ce billetSommaire Avant même de se poser la question comment, on peut se poser la question : pourquoi ? Mais pourquoi Hugo et pas une autre solution, par exemple Jekyl

Migrer de WordPress vers Hugo

Passer du système de gestion de contenu WordPress au générateur de sites statiques Hugo c’est changer de paradigme, il faut savoir ce que l’on va gagner et ce que l’on va perdre et il faut retrousser ses manches, un jour viendra où cela se fera en un clic, mais ce n’est pas aujourd’hui !

Sommaire

Avant même de se poser la question comment, on peut se poser la question : pourquoi ?

Avec WordPress chaque page repose sur du PHP, un programme est exécuté qui peut faire de nombreuses actions, il y a une base de données. WordPress est un des classiques LAMP (Linux, Apache, MySql, PHP) et consorts, il nécessite l’installation de multiples composants. Quand le contenu à délivrer doit s’adapter au contexte utilisateur et à d’autres facteurs, c’est approprié, pour un site de commerce ça l’est, s’il s’agit d’une vitrine statique, ça ne l’est pas. Entre les deux on trouve le blog, qui peut se balancer d’un côté ou de l’autre si l’on souhaite gérer des accès utilisateurs, suivre les pages ou ajouter des interactions.

Avec Hugo, le site est généré une seule fois puis les pages sont délivrées, à l’ancienne dirait-on. À la grande époque où l’on éditait le HTML à la main et on publiait son site via FTP. Sauf qu’avec Hugo on manipule du Markdown plutôt que du HTML. Le Markdown est pratique, c’est l’héritage pragmatique d’Aaron Schwartz dont on peut encore trouver la trace dans le code PHP de génération. Le Markdown lui-même porte une étincelle de liberté, il est désormais normalisé dans la RFC 7763. Et on utilise le programme Hugo qui est un binaire fourni, ou bien compilé depuis du code Go, pour générer des pages HTML. Le site généré peut être délivré en http par Hugo ou bien par n’importe quel serveur web. Hugo repose aussi sur des en-têtes front-matter dans les fichiers Markdown qui est une extension plus récente.

Sortir de WordPress c’est sortir d’une zone de confort et ce sera nécessairement perdre des fonctionnalités, comme l’édition en ligne directe intégrée par exemple, le suivi de vues et les formulaires.

C’est aussi faire un choix simplificateur, économe et efficace. Beaucoup moins énergivore il est aussi beaucoup plus efficace et rapide. Il est aussi beaucoup plus facile à déployer qu’un WordPress puisqu’en définitive ce n’est qu’un binaire et un thème.
Une autre bonne raison de migrer est la sécurité, comme a pu le faire le projet Xubuntu à la fin de l’année dernière suite à la compromission de leur site de téléchargement sous WordPress

Mais pourquoi Hugo et pas une autre solution, par exemple Jekyll ?

Hugo est la version la plus efficace, écrit en Go et compilé, les performances se rapprochent sans les égaler de celles de Rust ou de C. Et il est maintenu, dispose d’une communauté qui maintient des thèmes permettant de facilement avoir un rendu à la mode. Jekyll est en Ruby qui n’est pas le plus performant des langages mais est très versatile. Jekyll est apparu avant Hugo ce qui explique sa notoriété.

Ces deux logiciels ont popularisé la génération de sites statiques, mais ce ne sont pas les seuls, eleventry par exemple a déjà été couvert par un journal sur LinuxFr.org.

Ma vie, mon œuvre

Dans mon cas je ne me suis pas posé la question puisque je réponds à une demande d’une personne qui a déjà fait son choix, il faut migrer !

Avant de me lancer dans l’aventure j’ai dû me renseigner, parce que j’opère bien un site statique qui me sert de vitrine et celui-ci est en Markdown sous Git, mais tout est fait à la main et je ne connais pas Hugo. Je ne suis pas non plus un grand utilisateur de WordPress, que j’ai toujours trouvé lourd, et d’ailleurs j’ai toujours eu un faible pour les challengers, et je m’étais penché sur Joomla qui a les mêmes défauts. Utiliser ces CMS c’est déjà avoir appris une façon de penser, avec les pages et les posts, cela ne m’a jamais paru intuitif.

Donc j’étais absolument et résolument prêt pour cette migration !

Vous pouvez à ce moment me demander pourquoi donc l’ai-je fait ?

Parce qu’un ami me l’a demandé, parce qu’il rémunère pour cela et parce que je trouve que cela va dans le bon sens. Celui de l’éco-responsabilité, une sobriété qui ne transige pas avec la qualité et un mouvement vers plus d’indépendance.

Donc je me renseigne.

WordPress via le navigateur, Hugo via le terminal

Si vous ne souhaitez pas utiliser de terminal et des scripts shells, alors je serais d’avis de vous déconseiller fortement de vous lancer dans l’aventure Hugo.
Parce qu’Hugo c’est du Web as code, très exactement l’inverse du WYSIWYG le PETALE Pris à l’écrit tel à l’écran. Tout se fait en Markdown dans votre éditeur favori.
Cela s’opère souvent via Git et le fait de pousser le commit git vers le serveur régénère le contenu du site.
S’il est possible de le faire via un VSCodium, je reste sur mon Emacs favori, mais évidemment ceci un choix très personnel.
Un bon éditeur de texte capable de te laisser saisir des codes Markdown est absolument nécessaire, un éditeur de texte dans ce cas ce n’est pas un traitement de texte, Libreoffice par exemple ne m’apparait pas comme l’outil adapté, mais je vous laisse juge.

On installe le plugin, clic ! On importe le résultat et c’est fini !

C’est assez évident en fait il suffit de suivre ce que propose le projet Hugo en matière de migration vers Hugo.

Ça c’est ce que l’on souhaite et j’y ai presque cru.

Il n’y a pas de plugin WordPress officiel pour exporter vers Hugo, mais il y en a pour exporter en Jekyll. Sachant que Hugo sait importer du Jekyll, cela semble évident.

Tout d’abord il faut importer le plugin sous WordPress.
Si cela semble évident quand le plugin est disponible dans le magasin des plugins WordPress, cela ne l’est plus quand il faut l’installer à la main.

Dans mon cas, et peut être dans le vôtre aussi vous n’avez pas installé le WordPress, il vous a été fourni en tant que service hébergé, et c’est pourquoi vous êtes limités aux plugins officiels, quand encore, on vous y autorise.

Donc en suivant le lien de migration depuis WordPress je lis (en anglais, mais je vous offre gratuitement la traduction) :

wordpress-to-hugo-exporter

Un plugin en un clic qui convertit tous les posts, pages, taxonomies, metadata, et settings en Markdown et YAML et déposable dans Hugo. (Note: Si vous avez des difficultés avec ce plugin, vous pouvez exporter le site pour Jekyll et utiliser le convertisseur intégré à Hugo listé ci-dessus)

Oui mais non, je n’ai pas accès au backend.

Et pourquoi ne pas juste installer un plugin officiel comme celui dont wordpress-to-hugo-exporter dérive ? Le jekyll-exporter

Ce n’est pas un échec, mais ça n’a pas marché.

Après l’installation du plugin et l’utilisation de l’export le site me réponds avec aplomb : 500 Internal ERROR.

Plutôt que d’abandonner, je cherche sur le projet source s’il y a un bug en cours et effectivement : Issue #400 sur wordpress-static-site-exporter. Sur ce, je rajoute mes informations sur le bug et j’attends une réponse.

Donc le ça fonctionne en un clic n’aura pas tenu bien longtemps, en attendant un correctif je me penche sur une alternative. Mais ne vous inquiétez pas, nous y reviendrons, si vous avez suivi le lien de l’issue vous le savez déjà !

Exportez votre site WordPress et appliquez un outil magique !

Ce n’est pas bien grave, il y a d’autres outils…

blog2md
Fonctionne sur l’XML exporté depuis le site gratuit votre VOTRE-DOMAIN.wordpress.com. Cela sauve aussi les commentaires approuvés sous forme YOUR-POST-NAME-comments.md à côté des posts.

Ce projet n’a pas évolué depuis quatre ans, je ne vais pas choisir cette option.

wordhugopress
Un petit utilitaire écrit en Java qui exporte le site WordPress depuis la base de donnée et les resources (c’est-à-dire par exemple les images) stockées localement ou à distance. Ainsi la migration depuis des backups est possible. Support de multiples sites vers un seul site Hugo.

Je n’ai pas accès à la base de données où à l’export des backups, je ne vais pas choisir cette option non plus.

wp2hugo

Celui-ci est un très bon candidat, sauf que je vends mon travail et la licence de cet outil est Attribution-NonCommercial-ShareAlike 4.0 International, donc je ne vais pas choisir cette option. Si mon budget avait été très important j’aurais envisagé de contacter l’auteur pour négocier, mais ce n’est pas le cas.

Donc aucun de ces autres outils ne répond à mes besoins.

La vérité est ailleurs ?

Oui, mais il n’y a pas que site Hugo de référence non plus.

Les forums et en particulier https://discourse.gohugo.io/t/wordpress-migration-url-rewriting/3827, mais il a été écrit il y a presque dix ans…
Et dans mes pérégrinations hors des sentiers battus des scripts Python émergent https://www.infinitescript.com/2024/01/migrate-from-wordpress-to-hugo/.
Ce guide aussi m’a inspiré https://fr.benchwiseunderflow.in/blog/guide-complet-migration-wordpress-hugo/ ceci dit fournir les scripts Python dans son blog sans l’indentation, ce n’est pas ce qui se fait de mieux.

Voici la liste des projets que j’ai regardés, je n’en ai testé qu’une sous partie entre ceux utilisant de l’IA ou pour lesquelles mon utilisation ne respecterait pas la licence et celles dont le contenu semble trop vieux…

Site Commentaire langage html -> markdown license testé
https://github.com/benbalter/wordpress-to-jekyll-exporter plugin officiel nécessite une migration supplémentaire jekyll -> hugo php wordpress plugin Markdownify GPL-3.0
https://github.com/SchumacherFM/wordpress-to-hugo-exporter basée sur une version du projet ci-dessus mais datant de 2014, a dérivé depuis. Ce n’est hélas pas un plugin officiel php wordpress plugin Markdownify GPL-3.0-or-later
https://github.com/lonekorean/wordpress-export-to-markdown travailler sur l’export en XML it won’t migrate GUID correctly nodeJs javascript turndown -
https://github.com/bradfeld/wp-to-hugo plus complet mais : IA generated Claude / typescript via API strip WordPress block comments nodeJs typescript turndown MIT License (& IA ?) Non : IA
https://github.com/ashishb/wp2hugo attachment page post wp_navigation wp comments footnote go [[site_scrapping_vers_Hugo#johanneskaufmann_html_to_markdown]] Attribution-NonCommercial-ShareAlike 4.0 Non, licence non commerciale et c’est un travail commercialisé
https://github.com/helgeklein/WordPress-Hugo-Migration-Scripts-HTML-Markdown/ https://helgeklein.com/blog/scripted-wordpress-html-to-hugo-markdown-migration/ post_type in (“post”, “page”)… donc pas de gestion des blocks python BeautifulSoup MIT
https://github.com/some-programs/exitwp https://web.archive.org/web/20221120194327/https://www.justindunham.net/migrating-from-wordpress-to-hugo/ 2019 ? page et post + item_type_filter python beautifulsoup html2text ~ GNU GPL 3
https://github.com/dreikanter/wp2md issues https://github.com/dreikanter/wp2md/issues python html2text
https://fr.benchwiseunderflow.in/blog/guide-complet-migration-wordpress-hugo/ status “publish” post_type “post”, “page” le code fourni est à copier coller et non fonctionnel python pandoc
https://www.infinitescript.com/2024/01/migrate-from-wordpress-to-hugo/ post de blog contenant le code python utilisé python re (regular expression python)
https://github.com/palaniraja/blog2md Le projet a 4 ans et part de blogger et non de WordPress javascript ? absence de licence non testé

C’est wordpress-export-to-markdown qui a remporté une partie du travail. Cela a nécessité l’installation de node puisque le code est en javascript.

J’exporte donc le site via la fonction standard d’export de site WordPpress qui fourni un fichier XML.

Cet export contient tout sauf les images et les autres ressources, donc il faudra que l’outil puisse les rechercher, et donc que le site WordPress soit toujours activé. Ceci ne peut donc pas se faire sur un site indisponible ou bien même déjà arrêté.

On installe Hugo

Et il faut un serveur, une vraie machine avec une adresse IP publique, un serveur web.
Là où pour du WordPress un hébergeur fournit la solution, en Hugo le plus classique est tout de même de mettre en place son propre serveur. Avec tout ce qui va bien, et le certificat pour HTTPS.

Mais avant de faire le pas, cela s'installe en local sur une machine de développement avec docker, podman, inclus ou bien même directement puisque ce n’est qu’un exécutable.

sur une machine Linux :

sudo apt install hugo

ou

snap install hugo

Il suffit de lancer hugo server dans le répertoire du projet hugo et se connecter sur localhost avec l’URL qui a été fournie dans le terminal.

Dans le cas d’une migration vous aurez forcément à modifier de nombreuses pages de votre site qui comportent des problèmes de code markdown mal converti depuis le HTML.

Et il vous faudra utiliser des scripts, dans votre langage préféré, mais dans tous les cas l’utilisation d’expressions régulières sera nécessaire. C’est-à-dire : il faut connaître un minimum de programmation.

Voici le genre de commande qui recherche tous les fichiers avec l’extension.md et supprime le 'Proudly powered by WordPress' dedans :

text='Proudly powered by <a href="https://wordpress.org" rel="nofollow">WordPress</a>'
find content -name '*.md' -print0 | xargs -0 sed -i 's|'"$text"'||g'

Attention cette commande fonctionne, car le texte $text est compatible avec la syntaxe de commande sed en particulier utiliser un '|' dans la variable text serait problématique.

En suivant la procédure d’installation rapide https://gohugo.io/getting-started/quick-start/ on va créer un dépôt git. Si par la suite on souhaite le répliquer pour le tester ailleurs alors il ne faudra pas oublier les submodules pour le thème, sinon la génération du site rendra un site vide.

git clone user@server:quickstart --recurse-submodules mon_site
cd mon_site
hugo server

On termine avec un firefox http://localhost:1313 par exemple pour voir en local.

on pourra alors éditer le contenu sous content avec notre éditeur préféré et créer un commit git quand nous sommes contents de notre résultat local.

git add content
git commit -m 'édition numero xx du site'
git push

Cela doit pousser sur le git parent le contenu. Si le git parent est attaché à la production alors la production est mise à jour ainsi.

C’est pas beau hein ?

Le contenu généré par l’outil de migration ayant été copié dans le répertoire content du projet Hugo, il suffit de lancer le serveur Hugo pour qu’il soit délivré sur le port indiqué en console. En se connectant avec un navigateur firefox https://localhost:1313, le contenu apparait…

Ah j’oubliais, en Hugo toute la présentation est contrôlée par le thème, ici le thème choisi est ananke, c’est celui proposé dans la documentation de démarrage rapide de Hugo

Il y a du contenu, certes mais quand même il y a eu des dégâts collatéraux.

Cliquez sur l’image pour voir la vidéo.

vue comparée du site avant et pendant migration

Les blocs réutilisables de WordPress

Il s’agit d’une fonctionnalité ajoutée dans l’éditeur de WordPress Gutemberg, la possibilité de créer des blocs réutilisables qui seront référencés dans d’autres pages ou bien même dans d’autres blocs

Pratiquement tous les outils d’export ne conservent pas les items qui ne sont ni de type page ni de type post et quand ils conservent les autres type, ils ne gèrent pas les blocs réutilisables.

Dans le fichier d’export.xml de WordPress on les retrouve ainsi :

<item>
…
<wp:post_id>610</wp:post_id>
…
</item>

et sont utilisés par référence :

<!-- wp:block {"ref":610} /-->

Dans mon cas pour l’outil wordpress-export-to-markdown, j’ai créé une demande de fonctionnalité pour le support des blocs réutilisables.

En pratique les outils perdent complètement le contenu de ces blocs.

Une façon de résoudre le problème est d’utiliser la source HTML générée par WordPress directement et de la convertir en Markdown.

Les <figure>

Hugo ne gère pas le tag <figure>, il faut supprimer ces tags, sinon les images qu’ils contiennent n’apparaissent juste pas. Or WordPress génère souvent des blocks HTML avec des tags figure.

Voici un script bash qui supprime le tag figure partout dans tous les fichiers.md de content.

find_files=(find content -name '*.md' -print0)
command2=(xargs -0 sed -i 's|</\?figure[^>]*[>]||g;')
"${find_files[@]}" | "${command2[@]}"

URL permanentes

Il est crucial que les pages migrées se retrouvent au même endroit après migration. C’est crucial car cela fait partie du SEO, votre référencement, si vos pages changent de place, les moteurs de recherche vont vous perdre, tout comme les références depuis tout autre site.

En Hugo c’est le champ urldans l’entête front-matter du fichier markdown qui sert à indiquer où la page destinée à être délivrée.
Cette URL peut être totalement différente du répertoire dans lequel le fichier se trouve, même s’il est conseillé de conserver la mẽme hiérarchie, c’est une solution pratique.

URL relatives

WordPress délivre toutes ses pages avec des URL absolues dans le corps c’est-à-dire avec le nom du site intégré dans l’URL, ceci est un souci quand on souhaite déplacer le site, ou bien avec un site réplica lui aussi accessible en ligne mais sous une autre URL.

Les expressions régulières sont là pour ça, il faut supprimer http://monsite du début des toutes les URL. Pour rappel, à l’intérieur d’une page HTML un lien href='/article/linuxfr.html' est une référence relative dans le site courant, si l’URL du site est https://example.com alors le lien avec l’URL absolue est au lien `href='https://example.com/article/linuxfr.html'.

Si vous ne faites pas vous pourriez avoir la surprise lors de l’arrêt du site WordPress de ne plus avoir les images et autres ressources, car elles étaient sur le site original et non sur le nouveau site migré !

voici un exemple en bash

find_files=(find content -name '*.md' -print0)
command2=(xargs -0 sed -i "s|https://${site_domain}||g")
"${find_files[@]}" | "${command2[@]}"

Le menu

Le menu a été perdu, c’est ballot !
Via l’export Hugo il n’y a pas de menu du tout, il est perdu.
Dans WordPress le menu est supporté par du CSS les classes wp-block-navigation…
En Hugo c’est le thème qui le gère, ici avec ananke il faut rajouter des entrées de menu avec menu.main, dans mon cas j’ai rajouté le menu globalement dans le fichier de configuration Hugo, mais il y a plusieurs façons de définir les menus en Hugo.

Un site WordPress c’est un site web comme un autre

Une autre approche est de considérer qu’un site WordPress c’est un site web comme un autre.
Un navigateur n’a pas de code particulier pour visualiser un site WordPress, donc un site WordPress est juste un site web, certes avec beaucoup de JavaScript et CSS, mais un site web.
Et un site web, ça se siphonne, et c’est facile, il suffit de regarder le projet internet archive, par exemple le site de LinuxFr.org le 2 avril 2018 pour s’en convaincre, il est très facile de récupérer le contenu visible d’un site web, à condition de connaître tous les points d’entrée et en pratique il suffit de partir de la page principale.
Puisque vous migrez un site que vous possédez, il n’y a pas de souci à utiliser un aspirateur de site.

Une fois le site récupéré, il y a des convertisseurs Markdown.

En particulier j’ai employé le convertisseur de HTML vers Markdown de Johannes Kaufmann, qui est aussi une base pour d’autres projets de conversion pour des applications particulières dont WordPress.

Et le tour est joué ! Ou presque…

On repart de zéro et on mélange tout

Si aucune des solutions ne fonctionne, chacune permet de créer une partie du site. En utilisant toutes les générations on peut récupérer les meilleurs pages.

Dans mon cas le plugin officiel de migration de jekyll vers hugo a été corrigé et j’ai donc pu l’utiliser.

En utilisant aussi des parties générées depuis le site statique, j’ai obtenu un résultat acceptable, mais cela ne s’est pas fait sans une série de petits scripts en bash à base de find et de sed et donc d’expression régulières, les fameuses regex.

Variations mais pas sur le même thème

Une fois le contenu cohérent, il est temps de tester d’autres thèmes Hugo pour donner au site une apparence différente.
Ces thèmes aussi peuvent être personnalisés. La notion de thème existe déjà dans WordPress, donc vous ne devez pas être surpris, mais les thèmes de WordPress ne peuvent pas être transposés tels quels dans Hugo, par exemple le thème twentytwo désormais classique ne se résout pas en la copie de son continu sur Hugo.
Mais passer à Hugo c’est aussi l’opportunité de se démarquer.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Korben
  • Lego Batman - Un easter egg Commodore 64 BASIC caché dedans
    Cabel Sasser, le boss de Panic Inc. (les gars derrière Coda, Nova et la fameuse Playdate ), vient de tomber sur un easter egg complètement génial dans LEGO Batman: Legacy of the Dark Knight, le jeu sorti fin mai 2026. Et ce qu'il a découvert, c'est un petit programme Commodore 64 en BASIC affiché à l'écran sur l'ordi de Batman. Du vrai BASIC qui s'exécute vraiment si vous le retapez sur la vieille bécane de 1982, celle qui a été vendue, je le rappelle, à 17 millions d'unités, avec son CPU MOS 65

Lego Batman - Un easter egg Commodore 64 BASIC caché dedans

Par : Korben ✨
9 juin 2026 à 16:13

Cabel Sasser, le boss de Panic Inc. (les gars derrière Coda, Nova et la fameuse Playdate ), vient de tomber sur un easter egg complètement génial dans LEGO Batman: Legacy of the Dark Knight, le jeu sorti fin mai 2026.

Et ce qu'il a découvert, c'est un petit programme Commodore 64 en BASIC affiché à l'écran sur l'ordi de Batman. Du vrai BASIC qui s'exécute vraiment si vous le retapez sur la vieille bécane de 1982, celle qui a été vendue, je le rappelle, à 17 millions d'unités, avec son CPU MOS 6510 cadencé à 1 MHz et ses 64 ko de RAM. Le programme, une fois lancé, dessine un sprite Batman qui rebondit aux quatre coins de l'écran, façon économiseur d'écran DVD des années 2000 (vous voyez le délire, le petit logo qui galère à taper pile dans le coin ?).

Et voici le code retranscrit ligne par ligne par Andy Baio de Waxy :

10 V=53248:POKE V+21,0:X=120:Y=120:POKE V+4,X:POKE V+5,Y:POKE V+21,4
11 POKE 2042,13:POKE 53277,15:POKE 53289,7
20 FOR N=0 TO 62:READ Q:POKE 832+N,Q:NEXT:DX=7:DY=3
30 X=X+DX:IF X>255 THEN X=255:DX=-DX
31 IF X<65 THEN X=65:DX=-DX
35 Y=Y+DY:IF Y>200 THEN Y=200:DY=-DY
36 IF Y<65 THEN Y=65:DY=-DY
40 POKE V+4,X:POKE V+5,Y:GOTO 30
200 DATA 0,0,0, 0,0,0, 12,68,96, 56,108,56, 120,124,60, 120,124,60
207 DATA 252,124,126, 255,255,254, 255,255,254, 255,255,254
211 DATA 143,255,226, 7,255,192, 3,255,128, 2,124,128
215 DATA 0,56,0, 0,56,0, 0,16,0, 0,16,0, 0,0,0, 0,0,0, 0,0,0
RUN

Pour ceux qui n'ont pas touché à un C64 depuis +40 ans, V=53248, c'est l'adresse du registre VIC-II (le chip graphique du Commodore, voisin direct du fameux chip son SID 6581 qui faisait pleurer les fans de Rob Hubbard), POKE 2042,13 ça pointe vers les données sprite, et les lignes 200-215 contiennent les 63 octets qui dessinent la silhouette du chevalier noir.

Ensuite, le reste, c'est juste de la physique d'arcade hyper basique : tu déplaces, tu rebondis aux bords, GOTO 30, et ça boucle. Douze lignes, et ça fait le job. Bon, à comparer avec les dizaines de mégaoctets que pèse le moindre runtime Unity d'aujourd'hui, ça dénote un peu. Puis c'est pas du vibe codé ça ma bonne dame... (quoique ?)

Après si vous voulez essayer, faudra taper le code à la main parce que le copier-coller n'existait pas en BASIC d'époque, donc n'oubliez pas qu'une seule virgule de travers dans les lignes DATA aura pour effet de transformer Batman en bouillie de pixels.

Et si vous voulez tester sans aller déterrer votre vieux C64 au grenier (ou sans le réveiller à coup d'alim USB-C moderne ), Krisztián Tóth a sorti un émulateur Commodore 64 qui tourne directement dans le navigateur , ça s'appelle ty64. J'ai préféré le tester là dessus plutôt que de réinstaller VICE, parce que c'est plus rapide et que ça évite de polluer la machine. Vous recopiez le code, vous tapez RUN, et Batman se met à rebondir sur votre écran comme si vous étiez en 1982.

Les animateurs Lego qui glissent du vrai BASIC dans un blockbuster en 2026 plutôt qu'une simple texture qui imite l'écran, j'adoooore ce niveau de détail. C'est totalement dans la même veine que Valve qui a planqué un Wilhelm Scream dans le Steam Controller .

Source

  • ✇Korben
  • Signal, DuckDuckGo et NordVPN menacent de quitter le Canada à cause d'une loi sur la surveillance
    Le Canada planche sur un projet de loi, le C-22, qui obligerait les services numériques à conserver pendant un an les métadonnées de leurs utilisateurs, c'est-à-dire pas le contenu de vos messages mais qui vous contactez, à quelle heure et depuis où vous le faites. Plusieurs champions de la vie privée préviennent qu'ils plieront bagage plutôt que de s'y soumettre. Signal, l'application de messagerie chiffrée que recommandent les défenseurs de la confidentialité, l'a dit noir sur blanc devant le

Signal, DuckDuckGo et NordVPN menacent de quitter le Canada à cause d'une loi sur la surveillance

8 juin 2026 à 17:08

Le Canada planche sur un projet de loi, le C-22, qui obligerait les services numériques à conserver pendant un an les métadonnées de leurs utilisateurs, c'est-à-dire pas le contenu de vos messages mais qui vous contactez, à quelle heure et depuis où vous le faites.

Plusieurs champions de la vie privée préviennent qu'ils plieront bagage plutôt que de s'y soumettre.

Signal, l'application de messagerie chiffrée que recommandent les défenseurs de la confidentialité, l'a dit noir sur blanc devant le comité de la sécurité publique de la Chambre des communes. Son vice-président Udbhav Tiwari n'a pas tourné autour du pot : "Si on nous force un jour à choisir entre trahir les gens qui comptent sur nous et quitter un marché, nous partirons."

DuckDuckGo, le moteur de recherche qui se vend, lui, sur le respect de la vie privée, a confirmé qu'il retirerait son service de VPN du Canada si le texte passe. Un VPN, pour rappel, c'est l'outil qui masque votre adresse et chiffre votre trafic pour qu'on ne puisse pas voir ce que vous faites en ligne.

NordVPN tient le même discours et parle d'étudier "toutes les options possibles, y compris réduire ou retirer notre présence". Windscribe, un autre fournisseur de VPN, va plus loin et menace carrément de déménager son siège et ses impôts ailleurs. Apple, Google et Meta sont aussi venus exprimer leurs réserves devant les députés. Ces projets de loi d'accès légal, qui visent à donner aux autorités un droit de regard sur les communications, reviennent régulièrement au Canada depuis plus de dix ans, et finissent à chaque fois par se cogner au même mur, le chiffrement.

Ce qui coince, c'est cette obligation de stocker un an de métadonnées et de bâtir des capacités d'accès pour que la police et le CSIS, le service de renseignement canadien, puissent venir piocher dedans pendant une enquête. Le ministre de la Sécurité publique pourrait même imposer ce genre de mécanisme à d'autres entreprises par un simple ordre, sans mandat d'un juge, avec pour seul garde-fou le feu vert d'un commissaire au renseignement.

Le problème, c'est qu'une métadonnée raconte déjà énormément. Pas besoin de lire vos messages pour savoir que vous appelez un cabinet d'avocats à 2h du matin trois jours d'affilée.

Et pour construire ces fameuses capacités d'accès, il faut souvent affaiblir le chiffrement, donc créer une porte dérobée. Une porte dérobée, c'est comme laisser une clé sous le paillasson en jurant que seul le gentil facteur la trouvera.

Le gouvernement essaie de calmer le jeu. Le ministre Gary Anandasangaree a promis des amendements précisant qu'on n'obligera personne à casser son chiffrement. Mais la rétention d'un an de métadonnées, elle, ne bouge pas.

Du coup, des boîtes dont le métier c'est justement de ne rien savoir de vous se retrouvent priées de tout retenir. Normal qu'elles préfèrent partir.

Source : Techspot

  • ✇LinuxFr.org : les dépêches
  • Sortie de Crème CRM en version 2.8
    Le 7 avril 2026 est sortie la version 2.8 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0). Au programme notamment, de nombreuses améliorations autour des droits, l’épinglage de fiches et des totaux calculés dans les vues en liste. Les nouveautés sont détaillées dans la suite de la dépêche. lien nᵒ 1 : Site officiellien nᵒ 2 : Démo en lignelien nᵒ 3 : Le dépôt de sourcelien nᵒ 4 : Images Docker de démoSommaire Description du logiciel Principales nouveautés de l

Sortie de Crème CRM en version 2.8

Le 7 avril 2026 est sortie la version 2.8 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0).

Icone de Crème CRM

Au programme notamment, de nombreuses améliorations autour des droits, l’épinglage de fiches et des totaux calculés dans les vues en liste. Les nouveautés sont détaillées dans la suite de la dépêche.

Sommaire

Description du logiciel

Crème CRM est un logiciel de gestion de la relation client, généralement appelé CRM (pour Customer Relationship Management). Il dispose évidemment des fonctionnalités basiques d’un tel logiciel :

  • un annuaire, dans lequel on enregistre contacts et sociétés : il peut s’agir de clients, bien sûr, mais aussi de partenaires, prospects, fournisseurs, adhérents, etc. ;
  • un calendrier pour gérer ses rendez‐vous, appels téléphoniques, conférences, etc. ; chaque utilisateur peut avoir plusieurs calendriers, publics ou privés ;
  • les opportunités d’affaires, gérant tout l’historique des ventes ;
  • les actions commerciales, avec leurs objectifs à remplir ;
  • les documents (fichiers) et les classeurs.

Crème CRM dispose en outre de nombreux modules optionnels le rendant très polyvalent :

  • campagnes de courriels ;
  • devis, bons de commande, factures et avoirs ;
  • tickets, génération des rapports et graphiques…

L’objectif de Crème CRM est de fournir un logiciel libre de gestion de la relation client pouvant convenir à la plupart des besoins, simples ou complexes. À cet effet, il propose quelques concepts puissants qui se combinent entre eux (entités, relations, filtres, vues, propriétés, blocs), et il est très configurable (bien des problèmes pouvant se résoudre par l’interface de configuration) ; la contrepartie est qu’il faudra sûrement passer quelques minutes dans l’interface de configuration graphique pour avoir quelque chose qui vous convienne vraiment (la configuration par défaut ne pouvant être optimale pour tout le monde). De plus, afin de satisfaire les besoins les plus particuliers, son code est conçu pour être facilement étendu, tel un cadriciel (framework).

Du côté de la technique, Crème CRM est codé notamment avec Python/Django et fonctionne avec les bases de données MySQL, SQLite et PostgreSQL.

Principales nouveautés de la version 2.8

Voici les changements les plus notables de cette version :

Meilleure synchronisation avec les sorties de Django

C’est une version plus petite qu’à l’accoutumée (Creme 2.7 est sortie le 2 septembre 2025 et nous sortons une version par an). Cela nous permet de nous caler enfin sur les cycles de sortie de Django (dont les versions LTS—gérée pendant 3 ans—sortent en avril une fois tous les 2 ans) et donc éviter d’avoir des périodes où une version de Crème CRM est encore gérée mais pas la version de Django sous-jacente.

Améliorations des droits

Les utilisateurs peuvent avoir plusieurs rôles. Il arrive que des personnes aient plusieurs casquettes, et finissent par posséder plusieurs utilisateurs, se connectant avec le bon utilisateur en fonction des tâches à effectuer. Mais c’est un peu contraignant de devoir à chaque fois se déconnecter puis se reconnecter (et ça peut aussi être gênant d’avoir plusieurs utilisateurs pour une seule identité). Un utilisateur peut désormais posséder plusieurs rôles, et peut passer de l’un à l’autre sans devoir se déconnecter. Voir ce lien pour plus de détails.

Sélection d’un de ses rôles dans me menu principal

Les rôles peuvent désormais être désactivés. De manière générale, on essaie d’ajouter, au fur et à mesure des versions, la possibilité pour les différents objets que les utilisateurs peuvent supprimer de pouvoir d’abord passer par un état “désactivé”. Cela permet de tester un certain temps si un objet ne manque pas au final ; s’il y a un souci on peut revenir en arrière. C’est donc au tour des rôles d’avoir une telle fonctionnalité.

Les rôles gèrent maintenant les types de fiches qu’on peut lister, et 2 permissions spéciales peuvent être données : administration des utilisateurs & des rôles (il fallait être super-utilisateur pour les administrer dans les versions précédentes).

Épinglage de fiche

Vous pouvez désormais épingler les fiches auxquelles vous accédez souvent, pour aller dans leur vue détaillée.

Bouton d’épinglage dans l’entête d’une fiche

Vous pouvez accéder aux dernières fiches épinglées dans l’entrée de menu « Accès rapide » ; cette entrée remplace l’entrée qui proposait uniquement les fiches visitées récemment, et propose ces dernières ainsi que les fiches épinglées :

Entrée « Accès rapide » dans le menu

Totaux calculés dans les vues en liste

Certaines colonnes de vue en liste affichent désormais des totaux calculés sur toutes les fiches de cette liste :

  • la somme et la moyenne des totaux (avec et sans TVA) des Factures/Devis/Avoirs/Bons de commande.
  • la somme et la moyenne des chiffres d’affaires estimé & final des opportunités d’affaire.

Amélioration des champs personnalisés

Les champs personnalisés (les champs de fiches ajoutés par les utilisateurs) peuvent posséder :

– une description ; celle-ci est utilisée notamment dans les formulaires afin de donner plus de détails aux utilisateurs sur le sens dudit champ.
– une valeur par défaut, utilisée à la création de nouvelles fiches ; voir ce lien pour plus de détails.

Quelques autres améliorations notables

  • L’éditeur de texte HTML (utilisé pour les corps HTML d’e-mail par exemple) a subi une grosse mise-à-jour (l’interface est bien plus légère et moderne maintenant), et est utilisé à plus d’endroits.
  • On peut désormais télécharger plusieurs Documents, Factures ou Devis en une fois sous forme d’archive zip.

Le futur

La prochaine version devrait être la 3.0, et se concentrera sur une grosse revisite de l’interface graphique. À l’année prochaine !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • HCW@Home v6 : réécriture complète en Django/LiveKit, exit MongoDB
    En septembre 2023, nous publiions une dépêche sur HCW@Home, notre logiciel libre de téléconsultation médicale sous licence GPL-3.0. Les retours avaient été nombreux et constructifs, et nous remercions chaleureusement la communauté. lien nᵒ 1 : Site officiellien nᵒ 2 : Documentationlien nᵒ 3 : Githublien nᵒ 4 : Salons de discussionQu’est-ce que HCW@Home ? HCW@Home (Healthcare Worker @Home) est un logiciel libre (GPLv3) de téléconsultation médicale, conçu pour permettre aux professionnels de sant

HCW@Home v6 : réécriture complète en Django/LiveKit, exit MongoDB

En septembre 2023, nous publiions une dépêche sur HCW@Home, notre logiciel libre de téléconsultation médicale sous licence GPL-3.0. Les retours avaient été nombreux et constructifs, et nous remercions chaleureusement la communauté.

Qu’est-ce que HCW@Home ?

HCW@Home (Healthcare Worker @Home) est un logiciel libre (GPLv3) de téléconsultation médicale, conçu pour permettre aux professionnels de santé de mener des appels vidéo avec leurs patients sans friction : la création d’un compte patient n’est pas nécessaire, un simple lien suffit pour rejoindre une consultation. Les comptes existent mais restent optionnels. Le logiciel intègre une salle d’attente virtuelle, la gestion des rendez-vous, l’échange de documents et de messages, et s’interface avec les systèmes SSO existants via OpenID Connect. Le projet est né d’une collaboration avec les Hôpitaux Universitaires de Genève et a permis des dizaines de milliers de consultations à distance pendant la crise du COVID. Il est aujourd’hui utilisé notamment par des organisations humanitaires comme MSF et le CICR.

Capture d'écran du logiciel

Pourquoi une réécriture ?

La critique principale de la communauté était légitime : notre dépendance à MongoDB (licence SSPL, non reconnue comme libre par la FSF ni l’OSI) rendait l’ensemble de la stack discutable d’un point de vue copyleft. Des échanges avaient même eu lieu avec l’équipe de FerretDB, qui s’était manifestée directement sur la dépêche. Malgré leur bonne volonté, la migration n’avait pas été concluante à l’époque. Autre faiblesse pointée : une architecture difficile à maintenir sur le long terme.

Nous avons entendu tout cela.

HCW@Home v6 : réécriture from scratch

Grâce à un financement obtenu ces dernières années, nous avons pu reprendre le projet à zéro. Les changements majeurs :

  • Backend : réécriture complète en Python/Django, avec l’interface d’administration native, une API REST et une architecture bien plus maintenable.
  • Visioconférence : remplacement de l’ancienne solution par LiveKit (Apache 2.0), serveur WebRTC auto-hébergeable et extensible.
  • Fonctionnalités disponibles en option, sans aucune dépendance à un service tiers : enregistrement des réunions, sous-titres en temps réel via Whisper, connectivité SIP.
  • Calendrier : intégration CalDAV pour la gestion des rendez-vous.
  • Côté praticien : mode Picture-in-Picture pendant les appels, gestion des suivis, possibilité de publier des créneaux de disponibilité que les patients peuvent ensuite réserver directement.
  • Coté patient : nouveau tableau de bord permettant aux patients de faire une demande de consultation.

La solution est déployable via Docker Compose, Kubernetes ou paquet Debian, selon les préférences et contraintes de l’hébergeur.

Une convergence involontaire avec La Suite Numérique

En choisissant cette stack, nous avons sans le vouloir rejoint les mêmes choix techniques que La Suite Numérique, l’initiative open source de la DINUM (Direction interministérielle du numérique) visant à fournir aux agents de l’État français une alternative souveraine aux outils Microsoft et Google. Leur outil de visioconférence Meet repose en effet exactement sur la même combinaison Django + LiveKit + PostgreSQL qui est pour nous validation plutôt rassurante.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Emmabuntüs renforce l’accessibilité avec les versions Debian Édition 6 1.00 et 5 1.05
    Le collectif Emmabuntüs annonce deux publications récentes mettant fortement l’accent sur l’accessibilité numérique, fruit d’un travail mené en grande partie avec et par des bénévoles non-voyants et malvoyants, directement impliqués dans la conception, les tests et les améliorations ergonomiques de la distribution. lien nᵒ 1 : Le 15 décembre 2025, EmmaDE6 1.00 : une nouvelle version axée sur l’accessibilité !lien nᵒ 2 : Le 25 janvier 2026, EmmaDE5 1.05 : mise à jour axée sur l’accessibilité !l

Emmabuntüs renforce l’accessibilité avec les versions Debian Édition 6 1.00 et 5 1.05

23 février 2026 à 14:31

Le collectif Emmabuntüs annonce deux publications récentes mettant fortement l’accent sur l’accessibilité numérique, fruit d’un travail mené en grande partie avec et par des bénévoles non-voyants et malvoyants, directement impliqués dans la conception, les tests et les améliorations ergonomiques de la distribution.

Nouvelle fenêtre d’accessibilité des EmmaDE6/EmmaDE5

La version Emmabuntüs Debian Édition 6 1.00, basée sur Debian 13 (Trixie) avec les environnements Xfce et LXQt, introduit de nombreuses améliorations destinées aux personnes malvoyantes ou non-voyantes : interface dédiée à l’accessibilité, synthèse vocale améliorée (espeak, MBROLA, Piper), profils Orca, support d’embosseuses Braille, intégration de LIOS (OCR), ainsi que divers scripts simplifiant la prise en main. Cette version est notamment destinée à des déploiements au Togo, en partenariat avec les associations françaises A.S.I YOVOTOGO, Mutualistes Sans Frontières et la FETAPH (Fédération Togolaise des Associations de Personnes Handicapées).

En parallèle, la version Emmabuntüs Debian Édition 5 1.05, basée sur Debian 12 (Bookworm) et disponible en 32 et 64 bits, bénéficie des mêmes avancées en matière d’accessibilité. Elle permet ainsi de poursuivre le reconditionnement d’ordinateurs plus anciens, tout en offrant une expérience utilisateur inclusive.

Ces deux versions illustrent l’engagement d’Emmabuntüs en faveur de l’inclusion numérique, du logiciel libre, du réemploi de matériel informatique, ainsi que la place centrale offerte à l’expertise d’usage apportée par ses bénévoles concernés par le handicap visuel.

Le projet reste ouvert aux contributions, notamment pour les tests d’accessibilité, la documentation et l’amélioration des outils destinés aux utilisateurs malvoyants ou non-voyants.

Fin mars, nous publierons une nouvelle version d’Emmabuntüs Debian Édition 6 1.01, plus légère et plus modulable, afin de permettre à chacun de choisir les logiciels dont il a réellement besoin. Nous recherchons des bénévoles pour participer aux tests de cette version.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Korben
  • Footywhoops – Un synthé codé en Go qui génère des patterns musicaux à la volée
    Faire du bruit avec du code, c'est un peu le graal pour tout dev qui aime la musique. On connaît tous les gros trucs en C++ ou les frameworks spécialisés, mais voir débarquer un synthé complet codé en Go, c'est toujours une petite surprise qui se déguste sans modération. Son nom : Footywhoops . C'est un couteau suisse sonore que vous pilotez directement depuis votre terminal et qui permet de générer des séquences de batterie, des lignes de basse (un mode "Acid Bass" bien gras avec sub-oscillate

Footywhoops – Un synthé codé en Go qui génère des patterns musicaux à la volée

Par : Korben
29 janvier 2026 à 10:21

Faire du bruit avec du code, c'est un peu le graal pour tout dev qui aime la musique. On connaît tous les gros trucs en C++ ou les frameworks spécialisés, mais voir débarquer un synthé complet codé en Go, c'est toujours une petite surprise qui se déguste sans modération.

Son nom : Footywhoops .

C'est un couteau suisse sonore que vous pilotez directement depuis votre terminal et qui permet de générer des séquences de batterie, des lignes de basse (un mode "Acid Bass" bien gras avec sub-oscillateur et enveloppes ADSR est de la partie), des arpèges et des mélodies. Le tout peut être calé sur différentes gammes musicales (majeure, mineure, dorienne, blues, etc.) pour éviter de finir avec une cacophonie insupportable. On est un peu dans l'esprit du live coding musical comme ce que propose Strudel ou Dittytoy , mais version ligne de commande.

Sous le capot, c'est du sérieux niveau DSP (Digital Signal Processing) puisqu'on y trouve une réverbération de type Schroeder pour donner de l'espace, plusieurs algorithmes de distorsion (Tanh, Atan, hard clipping) pour salir le signal, et un filtre passe-bas pour sculpter la tonalité. Et pour ceux qui se demanderaient quel est le meilleur langage pour la programmation audio, le C++ reste le roi pour la performance pure, mais Go s'en sort étonnamment bien ici grâce à sa gestion efficace de la concurrence (coucou les goroutines) et l'utilisation de PortAudio pour l'I/O audio. On a d'ailleurs vu d'autres outils sympas en Go récemment, comme SSHM qui utilise le framework Bubble Tea pour son interface terminal.

Le truc est super léger et s'installe en deux minutes si vous avez l'environnement Go prêt sur votre machine. Vous pouvez même enregistrer vos expérimentations directement en WAV (dry ou wet) sans avoir besoin de passer par une DAW (Digital Audio Workstation). D'ailleurs, si vous cherchez des ressources pour faire de la musique sous pingouin, n'hésitez pas à consulter ce catalogue audio pour Linux .

Et si vous avez envie de tester ce petit monstre, voici comment vous lancer.

Pour commencer, vous aurez besoin de Go 1.19 ou plus et des bibliothèques de développement de PortAudio sur votre système.

1. Installation des dépendances

Sur macOS :

brew install portaudio

Sur Ubuntu/Debian :

sudo apt-get install portaudio19-dev

2. Compilation du projet

Récupérez le code et compilez l'exécutable :

git clone https://github.com/system32-ai/footywhoops
cd footywhoops
go build

3. Exemples d'utilisation

Pour lancer une génération automatique de mélodie et de batterie (le mode "standalone") :

./footywhoops -mode synth

Si vous voulez utiliser Footywhoops comme un processeur d'effets (par exemple pour traiter le son de votre micro ou d'une guitare branchée sur votre interface) :

./footywhoops -mode fx -dist 0.8 -reverb 0.5

Vous pouvez évidemment jouer avec plein de paramètres en CLI pour ajuster le son (fréquence du filtre, type de distorsion, taille de la réverb, etc.). Pour voir toutes les options disponibles, un petit ./footywhoops -help et voilà, vous avez la liste complète.

Je pense que j'ai fait le tour... si vous aimez le mélange entre code et synthèse sonore, Footywhoops est un super terrain de jeu. C'est brut, c'est sale, et c'est expérimental mais ça permet de s'amuser un peu !

  • ✇Korben
  • Comment imprimer une brique LEGO ?
    On a tous gardé notre âme d'enfant, notamment en ce qui concerne les LEGO. Je connais d'ailleurs pas mal d'adultes qui achètent et montent encore des boites pour le kiff. Et c'est cool parce que ça fait travailler les doigts et l'esprit ! Seulement, si à un moment, il se passe un petit drame et que vous égarez une pièce LEGO, votre vie peut vite être gâchée. Rien que ça oui. Parlez-en à ceux qui font des puzzles par PASSION... Oui y'en a ! Évidemment, il y a plein de sites web où vous pouvez rac

Comment imprimer une brique LEGO ?

Par : Korben
28 janvier 2026 à 09:23

On a tous gardé notre âme d'enfant, notamment en ce qui concerne les LEGO. Je connais d'ailleurs pas mal d'adultes qui achètent et montent encore des boites pour le kiff. Et c'est cool parce que ça fait travailler les doigts et l'esprit !

Seulement, si à un moment, il se passe un petit drame et que vous égarez une pièce LEGO, votre vie peut vite être gâchée. Rien que ça oui. Parlez-en à ceux qui font des puzzles par PASSION... Oui y'en a !

Évidemment, il y a plein de sites web où vous pouvez racheter des pièces comme je vous l'expliquais dans cet article sur la restauration d'anciens sets LEGOs . Mais si vous avez une imprimante 3D, vous pouvez franchir le pas de la contrefaçon copie privée à but non commercial et produire vous-même la pièce manquante !

Comment ? Et bien grâce à Printable Bricks qui vous propose plus de 5000 pièces de LEGO au format STL à imprimer directement et bien sûr compatible avec de vrais LEGO.

Après même si le site a survécu aux menaces DMCA et reste toujours en ligne, prenez quand même le temps de sauvegarder ce dont vous avez besoin, on ne sait jamais ;-)

Et si vous voulez aller plus loin dans la personnalisation, y'a maintenant MachineBlocks qui permet de générer des briques sur mesure directement depuis votre navigateur. Vous pouvez ajuster les dimensions, choisir le type de brique, et même utiliser leur outil de calibration pour que ça s'emboîte parfaitement avec vos LEGO originaux. Hop ensuite un export en STL ou 3MF et c'est parti !

Dans le même genre, le générateur de Lapinoo vous permet aussi de dessiner la forme de votre brique à la souris sur une grille. Vous voulez une pièce en L bizarre qu'aucun set n'a jamais proposé ? Pas de souci, vous dessinez, vous ajustez les plots et la cavité inférieure, et boum, le fichier STL est prêt.

Et si vous n'avez pas encore d'imprimante 3D, pas de problème, il vous suffit de la fabriquer en LEGO . Oh wait...

Merci B0t_Ox de la formidable communauté Twitch Korben.info pour l'info !

Pour aller plus loin :

Si ce genre de projets DIY vous branche, je partage aussi des trucs sur ma page Facebook .

Article initialement publié le 4 mai 2021, mis à jour le 28 janvier 2026.

  • ✇Korben
  • Comment j'ai viré Algolia et recréé le Google de 1998 sur mon site
    Bon, faut qu'on parle un peu du moteur de recherche de mon site. Ceux qui l'ont déjà utilisé savent de quoi je parle : c'était pas terrible. Enfin, « pas terrible » j'suis gentil. C'est un espèce d'overlay avec des résultats certes fiables mais c'était vraiment pas pratique. Et en plus de ça, comme j'ai un site statique généré avec Hugo, je passais par Algolia pour la recherche. Si vous ne connaissez pas, Algolia c'est un service cloud qui indexe votre contenu et vous fournit une API de recherch

Comment j'ai viré Algolia et recréé le Google de 1998 sur mon site

Par : Korben
31 décembre 2025 à 12:00

Bon, faut qu'on parle un peu du moteur de recherche de mon site. Ceux qui l'ont déjà utilisé savent de quoi je parle : c'était pas terrible. Enfin, « pas terrible » j'suis gentil. C'est un espèce d'overlay avec des résultats certes fiables mais c'était vraiment pas pratique.

Et en plus de ça, comme j'ai un site statique généré avec Hugo, je passais par Algolia pour la recherche. Si vous ne connaissez pas, Algolia c'est un service cloud qui indexe votre contenu et vous fournit une API de recherche ultra-rapide. Sur le papier c'est génial et dans la pratique aussi d'ailleurs sauf que voilà, ça coûte des sous. Et mon site rencontre un franc succès ces derniers temps (merci à vous !), donc j'ai de plus en plus de visiteurs, donc de plus en plus de recherches, donc une facture Algolia qui grimpe gentiment chaque mois.

Du coup je me suis dit : « Et si je trouvais une solution de recherche pour sites statiques ? » Parce que oui, ça existe et c'est comme ça que j'ai découvert Pagefind.

Pagefind c'est donc un moteur de recherche statique open source développé par CloudCannon qui fonctionne comme ceci : Au moment du build de votre site, Pagefind parcourt tout votre HTML généré et crée un index de recherche qu'on peut interroger avec un peu de JS. Y'a donc plus d'API, et tout se fait localement sur le navigateur des internautes.

Bref, ça avait l'air très cool alors évidemment, je me suis lancé dans l'aventure et comme j'aime bien me compliquer la vie, j'ai décidé de pas juste intégrer Pagefind tel quel. Non non. J'ai voulu recréer l'interface du Google de 1998 parce que à quoi bon avoir son propre site web si on peut pas s'amuser un peu ^^.

Laissez-moi donc vous raconter cette aventure.

Le problème avec Algolia

Leur service est excellent, je dis pas le contraire, la recherche est rapide, les résultats sont pertinents, l'API est bien foutue mais voilà, y'a le modèle de pricing puisque Algolia facture au nombre de requêtes de recherche.

Plus les gens cherchent sur votre site, plus vous payez et quand vous avez un site qui fait plusieurs millions de pages vues par mois, bah... ça chiffre vite. En gros je dépasse très vite les 10 000 recherches offertes chaque semaine et ensuite ça chiffre. C'est pas la mort, mais c'est un coût récurrent débile pour un truc qui pourrait être gratuit.

En plus de ça, y'a la dépendance à un service externe. Si Algolia tombe, ma recherche tombe. Et si Algolia change ses prix, je vais devoir subir. Même chose si Algolia décide de modifier son API... il faudra que j'adapte mon code. Bref, c'est le cloud dans toute sa splendeur... C'est pratique mais on n'est jamais vraiment chez nous.

Pagefind à la rescousse

Pagefind résout donc tous ces problèmes d'un coup. C'est un outil en ligne de commande qui s'exécute après votre générateur de site statique (Hugo dans mon cas, mais ça marche avec Jekyll, Eleventy, Astro, ou n'importe quoi d'autre).

Concrètement, vous lancez :

npx pagefind --site public

Et Pagefind va :

    1. Scanner tous vos fichiers HTML dans le dossier public/
    1. Extraire le contenu textuel (en ignorant la nav, le footer, les pubs si vous lui dites)
    1. Créer un index de recherche optimisé
    1. Générer des fichiers JavaScript pour interroger cet index côté client

Et le résultat c'est un dossier pagefind/ qui contient tout ce qu'il faut. Ensuite; à vous de servir ces fichiers statiquement avec le reste de votre site, et la magie pourra opérer !

L'index pour mes 18 000 articles fait environ 1,5 Go. Ça peut paraître beaucoup, mais Pagefind est malin car il découpe l'index en fragments et ne charge que ce qui est nécessaire pour la recherche en cours. Du coup en pratique, une recherche typique télécharge quelques centaines de Ko, et pas plus.

L'intégration technique

Pour intégrer Pagefind dans mon workflow Hugo, j'ai donc été cherché le binaire, je l'ai mis sur mon serveur et je l'ai appelé dans un cron comme ça, je rafraichi l'index de recherche 1 fois par jour (et pas à chaque génération du site).

0 4 * * * /home/manu/pagefind/pagefind --site /home/manu/public_html --output-path /home/manu/public_html/pagefind >> /var/log/pagefind.log 2>&1

J'ai aussi créé un fichier de configuration pagefind.yml pour affiner le comportement :

root_selector: "[data-pagefind-body]"
exclude_selectors:
 - "header"
 - ".site-header"
 - "footer"
 - ".sidebar"

L'astuce ici c'est d'indexer uniquement les div ayant la class data-pagefind-body='true' et d'exclure les éléments qui ne font pas partie du contenu éditorial afin de ne pas indexer ce qui se trouve dans le header, les natives, le footer...etc.

Côté JavaScript, Pagefind utilise les imports ES6 dynamiques. Ça veut dire que le moteur de recherche n'est chargé que quand l'utilisateur lance effectivement une recherche :

async function initPagefind() {
pagefind = await import('/pagefind/pagefind.js');
await pagefind.init();
}

Et pour faire une recherche :

const search = await pagefind.search("linux");
// search.results contient les IDs des résultats
// On charge le contenu de chaque résultat à la demande
for (const result of search.results) {
 const data = await result.data();
 console.log(data.url, data.meta.title, data.excerpt);
}

C'est bien fichu parce que search.results retourne immédiatement les références des résultats, mais le contenu réel (titre, extrait, URL) n'est chargé que quand vous appelez result.data(). Du coup vous pouvez implémenter une pagination propre sans télécharger les données de milliers de résultats d'un coup.

Le délire rétro - Recréer Google 1998

Maintenant que j'avais un moteur de recherche fonctionnel, fallait l'habiller. Et c'est là que j'ai eu cette idée un peu débile : Pourquoi pas recréer l'interface du Google de 1998 ?

Pour les plus jeunes qui lisent ça, Google en 1998 c'était une page blanche avec un logo, un champ de recherche, et deux boutons : « Google Search » et « I'm Feeling Lucky« . Pas de suggestions, pas de carrousels, pas de pubs... Juste un champs de recherche. C'était la belle époque !

J'ai donc créé une page de recherche avec deux vues distinctes. La page d'accueil avec le logo centré et le champ de recherche au milieu, exactement comme le Google originel.

Et la page de résultats avec le logo en petit en haut à gauche et les résultats en dessous.

Pour le code CSS, j'ai voulu être fidèle à l'époque. Times New Roman comme police par défaut, les liens en bleu souligné qui deviennent violet une fois visités. Et surtout, les boutons avec l'effet 3D des interfaces Windows 95 :

.search-button:active { border-style: inset; }

Ce border: outset et border-style: inset au clic, c'est exactement ce qui donnait cet effet de bouton en relief qu'on avait partout dans les années 90. Pour moi, ça fait toute la différence pour l'authenticité. Même le logo, je l'ai volontairement « dégradé » pour qu'il soit de la même qualité que le logo Google d'origine.

La pagination « Koooooorben »

Vous vous souvenez de la pagination de Google avec « Goooooogle » en bas de page ? Le nombre de « o » correspondait au nombre de pages de résultats. J'ai fait pareil, mais avec « Koooooorben ».

let logo = 'K'; for (let i = 0; i < oCount; i++)
{
logo += o;
} logo += 'rben'; }

Plus il y a de résultats, plus il y a de « o ». C'est complètement inutile mais ça me fait marrer à chaque fois que je le vois.

Le bouton « J'ai de la chance »

Ah, le fameux « I'm Feeling Lucky » de Google, j'ai voulu l'implémenter comme à l'époque ! Si vous tapez une recherche et cliquez sur « J'ai de la chance », vous êtes envoyé sur le premier résultat. Classique. Mais si vous cliquez sur le bouton avec le champ vide sur la home de la recherche, vous êtes envoyé sur un article aléatoire parmi les +18 000 du site.

Pour ça, j'ai utilisé une astuce : le sitemap. Mon Hugo génère un fichier sitemap.xml qui contient toutes les URLs du site et je peux aller piocher dedans en JS :

const articles = [...xml.querySelectorAll('loc')] .map(loc => loc.textContent) .filter(url => {
// Exclure les pages qui ne sont pas des articles
const path = new URL(url).pathname;
return !path.startsWith('/categories/') && !path.startsWith('/page/') && path !== '/';
});
const randomUrl = articles[Math.floor(Math.random() * articles.length)];
window.location.href = randomUrl;
} }

Un seul fetch, un peu de parsing XML natif, et hop c'est le grand retour de la fonctionnalité « article aléatoire » qui vous manquait, je le sais !

Tri et nombre de résultats

Je vous ai aussi mis une listbox qui vous permet d'afficher 10, 25 ou 50 résultats ainsi qu'un tri par pertinence ou data. Et ça aussi Pagefind sait parfaitement le navigateur.

Mode sombre et accessibilité

Même si l'interface est rétro, j'ai quand même ajouté quelques fonctionnalités modernes. Le mode sombre respecte les préférences système, et j'ai intégré la police OpenDyslexic pour les personnes dyslexiques.

Le truc important c'est de charger ces préférences avant le rendu de la page pour éviter le fameux flash. J'ai donc un petit script qui lit les préférences dans le localStorage et applique les classes CSS immédiatement :

function() {
 if (localStorage.getItem('theme') === 'dark') {
 document.documentElement.classList.add('dark-mode');
 }
 if (localStorage.getItem('dyslexic-font') === 'true') {
 document.documentElement.classList.add('dyslexic-mode');
 }
});

Gestion de l'historique navigateur

Un détail qui peut sembler anodin mais qui est super important pour l'expérience utilisateur c'est la gestion du bouton retour du navigateur.

Quand vous faites une recherche, l'URL change selon votre requête du genre /recherche/?q=linux&p=2. Du coup si vous partagez cette URL à un collègue, la personne arrivera directement sur les résultats de recherche. Et si vous utilisez le bouton retour, vous reviendrez alors à la recherche précédente.

window.addEventListener('popstate', () => {
const query = new URLSearchParams(location.search).get('q');
if (query) doSearch(query);
else showHomePage();
});

Liens vers d'autres moteurs

Et si vous ne trouvez pas votre bonheur dans mes +18 000 articles (ce qui serait quand même étonnant ^^), j'ai ajouté des liens pour relancer la même recherche sur Google, DuckDuckGo, Qwant, Brave et Ecosia. Bref, un petit service bonus pour mes visiteurs, exactement comme le proposait Google à l'époque.

Le bilan - Algolia vs Pagefind

Après 1 semaine d'utilisation, voici donc mon verdict ! Côté portefeuille d'abord, Algolia me coûtait entre 60 et +100 euros par mois et maintenant pour Pagefind, c'est zéro euros ! Et les performances sont également au rendez-vous. Algolia c'était rapide et bien là, ça l'est encore plus. Seul compromis à noter, l'index Algolia se mettait à jour en temps réel, alors que Pagefind nécessite une reconstruction au moment du build.

La conclusion

Voilà, j'ai maintenant une recherche qui marche vraiment bien, qui me coûte 0€ par mois, et qui a un look rétro qui va en surprendre plus d'un...

Alors est-ce que c'était nécessaire de passer autant de temps sur le design rétro ? Hé bien absolument pas. Mais est-ce que ça valait le coup ?

Franchement, oui !! C'est mon site, je fais ce que je veux, et si ça peut faire sourire quelques visiteurs nostalgiques des débuts du web, c'est du bonus. D'ailleurs un grand merci aux Patreons qui me soutiennent car sans eux, je n'aurais pas pu passer mon dimanche là dessus ^^

Et puis surtout, ça m'a permis de découvrir Pagefind qui est vraiment un excellent outil. Donc si vous avez un site statique (ou n'importe quel type de contenu textuel) et que vous cherchez une solution de recherche gratuite et performante, je vous le recommande chaudement. La documentation est claire, l'intégration est simple, et le résultat est top !

Allez, maintenant vous pouvez aller tester la nouvelle recherche sur le site . Et si vous cliquez sur « J'ai de la chance » sans rien taper... bonne découverte !

  • ✇Korben
  • Sisu - Quand votre AWS devient un simple dossier sur votre disque
    Vous passez vos journées à faire des aws iam list-users | jq '.Users[]' et autres trucs interminables pour juste trouver une info ?? Laissez tomber, j'ai le truc qui va vous changer la vie ! Ça s'appelle Sisu et c'est un petit outil en Go qui monte vos ressources AWS comme un système de fichiers local. Du coup, au lieu de taper des commandes AWS complexes, vous utilisez juste grep, cat, diff, vim... c'est à dire les outils Unix que vous connaissez déjà par cœur. Vous lancez la commande sisu et h

Sisu - Quand votre AWS devient un simple dossier sur votre disque

Par : Korben
23 décembre 2025 à 10:00

Vous passez vos journées à faire des aws iam list-users | jq '.Users[]' et autres trucs interminables pour juste trouver une info ?? Laissez tomber, j'ai le truc qui va vous changer la vie !

Ça s'appelle Sisu et c'est un petit outil en Go qui monte vos ressources AWS comme un système de fichiers local. Du coup, au lieu de taper des commandes AWS complexes, vous utilisez juste grep, cat, diff, vim... c'est à dire les outils Unix que vous connaissez déjà par cœur.

Vous lancez la commande sisu et hop, vos ressources AWS se retrouvent montées dans ~/.sisu/mnt/ ! Vos buckets S3, vos paramètres SSM, vos roles IAM, vos lambdas, vos instances EC2...etc. Tout ça organisé en dossiers par profil AWS et par région.

Ainsi, pour chercher tous vos utilisateurs IAM qui ont un accès admin, c'est aussi simple que :

grep -l "AdministratorAccess" */global/iam/users/*/policies.json

Pour comparer la config d'un rôle entre prod et staging :

diff prod/global/iam/roles/api/info.json staging/global/iam/roles/api/info.json

Et pour lire un secret ? Un simple cat default/us-east-1/secrets/myapp/database/value.

C'est bête comme Jordan mais ça change tout pour la maintenance au quotidien !

Et côté services supportés, Sisu gère pas mal de trucs tels que le S3 et SSM Parameter Store en lecture/écriture/suppression, et IAM, VPC, Lambda, EC2, Secrets Manager, Route 53 et CloudWatch Logs en lecture seule. Y'a même un truc sympa pour EC2 c'est que vous pouvez vous connecter à une instance via SSM Session Manager sans avoir besoin de clés SSH. Suffit d'exécuter le fichier connect qui se trouve dans le dossier de l'instance (à condition d'avoir l'agent SSM configuré sur l'instance et le plugin Session Manager côté client, évidemment).

Pour les logs CloudWatch, c'est bien aussi puisqu'ils sont streamés à la demande par batches de 100, donc vous pouvez faire un grep dessus sans tout charger en mémoire d'un coup.

Côté installation, c'est du Go classique :

go install github.com/semonte/sisu@latest

Faudra juste penser à installer FUSE avant sur votre système (apt install fuse sous Ubuntu/Debian, yum install fuse sous RHEL/CentOS) et c'est tout, y'a rien d'autre à configurer si vous avez déjà vos credentials AWS en place.

Après, l'outil cache les résultats pendant 5 minutes pour éviter de spammer l'API AWS à chaque ls, ce qui est plutôt indispensable pour limiter les appels et le temps de réponse.

Bref, si vous en avez marre de jongler avec jq pour parser du JSON AWS, Sisu va vous aider ! C'est open source sous licence MIT, et c'est par ici !

  • ✇Korben
  • Tor CGO - Quand chaque attaque se transforme en auto-sabotage
    Bonne nouvelle, les amis, Tor vient d’implémenter CGO (Counter Galois Onion) ! Si ça ne vous dit rien, c’est normal, moi non plus je ne connaissais pas, mais je vais tout vous expliquer ! Jusqu’à maintenant, le réseau Tor protégeait votre anonymat avec du chiffrement en oignon. Plusieurs couches de crypto, une par relais et ça marche bien… sauf qu’il existe une technique vicieuse qu’on appelle les attaques par tagging. Le tagging c’est quand un attaquant modifie votre trafic chiffré à différents

Tor CGO - Quand chaque attaque se transforme en auto-sabotage

Par : Korben
25 novembre 2025 à 12:03

Bonne nouvelle, les amis, Tor vient d’implémenter CGO (Counter Galois Onion) !

Si ça ne vous dit rien, c’est normal, moi non plus je ne connaissais pas, mais je vais tout vous expliquer !

Jusqu’à maintenant, le réseau Tor protégeait votre anonymat avec du chiffrement en oignon. Plusieurs couches de crypto, une par relais et ça marche bien… sauf qu’il existe une technique vicieuse qu’on appelle les attaques par tagging.

Le tagging c’est quand un attaquant modifie votre trafic chiffré à différents endroits du réseau (genre en ajoutant un marqueur invisible dans certains noeuds), puis il observe ce qui sort de l’autre côté pour vous tracer. C’est comme quand vous collez un traceur GPS dans votre voiture, sauf que là c’est des bits dans du trafic chiffré.

Et de son côté, CGO fait encore mieux que de bloquer cette attaque. En effet, il transforme chaque attaque en auto-sabotage ! Si quelqu’un modifie ne serait-ce qu’un seul bit de votre trafic chiffré, tout le message devient illisible. Et pas seulement ce message… tous les messages futurs de la session deviennent du bruit blanc irrécupérable.

Avec ça en place, l’attaquant se tire une balle dans le pied à chaque tentative.

Derrière ce système, il y a 4 cryptographes qui ont bossé très dur : Jean Paul Degabriele, Alessandro Melloni, Jean-Pierre Münch et Martijn Stam. Ils ont publié leur recherche cette année et ça a été implémenté dans Arti, la version Rust de Tor et l’implémentation C arrive bientôt.

Ce qui change tout, c’est le calcul risque/bénéfice pour les attaquants car avant, tenter de tracer quelqu’un avait peu de conséquences si ça échouait. Mais maintenant, tenter de tracer quelqu’un détruit définitivement votre capacité à surveiller cette personne. Et vous vous en doutez, les agences de surveillance détestent perdre leur accès… Elles préfèrent observer en silence plutôt que de tout casser dans une tentative maladroite. Du coup CGO les force à choisir. Soit rester invisibles, soit tout perdre.

Et puis il y a un autre aspect génial à cette techno, c’est le forward secrecy renforcé que ça engendre car à chaque message, CGO transforme les clés de chiffrement de façon irréversible. Même si un attaquant récupère vos clés actuelles, il ne peut pas déchiffrer les messages précédents car les clés précédentes ont été broyées et remplacées à chaque étape.

CGO remplace aussi l’ancien système d’authentification qui utilisait un digest de 4 bytes par un authenticateur de 16 bytes. C’est donc bien plus costaud et plus difficile à falsifier ainsi qu’à contourner.

Comme d’hab, Tor publie l’algorithme en open source donc vous pouvez vous plonger dans le code si ça vous amuse.

Cette implémentation de CGO est encore expérimentale pour le moment, mais une fois que cela aura été éprouvé par la communauté et testé pendant plusieurs mois, voire des années, ce sera déployé officiellement dans les futurs relais, puis dans les services onion de Tor.

Voilà donc comment Tor fait de chaque tentative de surveillance un auto-sabotage irréversible, et ça les amis, c’est un message qui devrait faire réfléchir pas mal de gens dans des bureaux sans fenêtres.

Source

  • ✇Korben
  • Tiny SVG - Compressez vos SVG sans rien uploader
    Vous avez des SVG qui pèsent trop lourd pour votre site web ? C’est pas graaaave, parce qu’il y a Tiny SVG est un outil en ligne qui compresse vos fichiers vectoriels directement depuis votre navigateur comme ça, pas besoin d’uploader vos œuvres sur un serveur externe puisque vos fichiers ne quittent jamais votre machine. L’outil utilise SVGO en arrière-plan avec plus de 40 plugins configurables. Vous pouvez ainsi activer ou désactiver chaque optimisation selon vos besoins : Suppression des méta

Tiny SVG - Compressez vos SVG sans rien uploader

Par : Korben
24 novembre 2025 à 10:20

Vous avez des SVG qui pèsent trop lourd pour votre site web ?

C’est pas graaaave, parce qu’il y a Tiny SVG est un outil en ligne qui compresse vos fichiers vectoriels directement depuis votre navigateur comme ça, pas besoin d’uploader vos œuvres sur un serveur externe puisque vos fichiers ne quittent jamais votre machine.

L’outil utilise SVGO en arrière-plan avec plus de 40 plugins configurables. Vous pouvez ainsi activer ou désactiver chaque optimisation selon vos besoins : Suppression des métadonnées inutiles, fusion des paths, simplification des transformations, et plein d’autres trucs. Le tout avec une prévisualisation en temps réel qui montre le SVG avant et après compression.

J’ai testé sur mon logo mais comme il est déjà super optimisé, ça ne m’a fait gagné que -0,5 % mais les résultats sont plutôt impressionnants car sur certains fichiers, Tiny SVG peut réduire la taille jusqu’à 70%. Ça dépend évidemment de la complexité du SVG d’origine et des optimisations que vous activez, mais globalement c’est très efficace.

Et y’a pas que la compression puisque Tiny SVG génère aussi du code prêt à l’emploi pour vos frameworks préférés. Vous pouvez ainsi exporter votre SVG optimisé en composant React (JSX ou TSX), Vue, Svelte, React Native ou même Flutter. Trop pratique pour ne plus avoir besoin de convertir manuellement vos icônes en composants.

Y’a aussi des fonctionnalités de transformation telles que la rotation, flip horizontal et vertical, redimensionnement…etc et vous pouvez exporter en Data URI dans plusieurs formats, et également générer des PNG ou JPEG avec les dimensions de votre choix. Le diff viewer intégré permet aussi de comparer le code SVG avant et après optimisation pour voir exactement ce qui a changé.

Côté technique, c’est une Progressive Web App qui fonctionne même hors ligne et le traitement se fait via Web Workers pour ne pas bloquer l’interface. Le projet est développé par hehehai, distribué sous licence MIT, et le code source est sur GitHub donc vous pouvez l’héberger vous-même sur Vercel, Netlify ou Docker si vous préférez avoir votre propre instance.

A tester ici : Tiny SVG !

  • ✇Korben
  • Ackify - Pour confirmer la lecture d'un document
    Benjamin, lecteur de korben.info, m’a envoyé un email pour me parler d’ Ackify , son nouveau projet open-source. L’idée avec Ackify c’est de pouvoir confirmer qu’un document a bien été lu ! Je parle pas de signature électronique, hein. Pour ça y’a déjà DocuSign, Adobe Sign, HelloSign…etc. Non, je vous parle des cas où vous avez juste besoin de prouver que Thérèse de la compta a bien reçu, ouvert et lu le PDF de la nouvelle procédure RGPD. Et pour ça, les solutions du marché sont soit surdimensio

Ackify - Pour confirmer la lecture d'un document

Par : Korben
21 novembre 2025 à 08:34

Benjamin, lecteur de korben.info, m’a envoyé un email pour me parler d’ Ackify , son nouveau projet open-source. L’idée avec Ackify c’est de pouvoir confirmer qu’un document a bien été lu !

Je parle pas de signature électronique, hein. Pour ça y’a déjà DocuSign, Adobe Sign, HelloSign…etc. Non, je vous parle des cas où vous avez juste besoin de prouver que Thérèse de la compta a bien reçu, ouvert et lu le PDF de la nouvelle procédure RGPD. Et pour ça, les solutions du marché sont soit surdimensionnées, soit inexistantes, du coup, les boîtes bidouillent avec des Google Forms pourris ou des macros Excel qui traînent dans le coin depuis 2003.

Ackify tourne en Docker distroless, s’installe en 5 minutes avec un script, et fonctionne sur PostgreSQL 16. L’authentification se fait via Magic Link sans mot de passe, ou OAuth 2 si vous préférez Google, GitHub ou GitLab. Ensuite, une fois connecté, vous lisez le document, vous cliquez sur “J’ai lu”, et c’est terminé. Une signature cryptographique Ed25519 est générée, le checksum SHA-256 du document est vérifié, et tout part dans un audit trail immuable.

Le principe est donc super solide et chaque utilisateur ne peut signer qu’une seule fois par document. Ensuite, vous en tant qu’admin, vous avez un dashboard pour tracker qui a lu quoi. Il y a également des rappels automatiques par email pour ceux qui traînent et des widgets que vous pouvez intégrer dans votre intranet si ça vous amuse !

Sans oublier que c’est multi-lingue !

Bref, que ce soit pour obtenir des attestations de lecture de politiques de sécurité, des formations internes avec validation, la prise en compte de directive RGPD, des procédures de conformité…etc, Ackify pourra vous aider sans avoir à sortir l’artillerie lourde de la signature électronique traditionnelle.

Voilà, c’est gratuit, open source et vous pouvez avoir tous les détails sur le site officiel du projet : ackify.eu .

  • ✇Korben
  • GoBackup - Pour sauvegarder vos bases de données facilement
    Vous savez, ce script bash de backup que vous avez écrit en 2018 et que vous n’osez plus toucher ? Celui avec les 150 lignes de mysqldump + tar + gzip + aws s3 cp qui marche à moitié et que vous relancez manuellement quand il plante ? Hé bien vous allez pouvoir le foutre à la poubelle parce que maintenant y’a GoBackup ! GoBackup c’est un binaire codé en Go qui remplace tous vos scripts de backup maison d’un coup. MySQL, PostgreSQL, MongoDB, Redis, peu importe. Local, FTP, S3, Google Cloud, Azure

GoBackup - Pour sauvegarder vos bases de données facilement

Par : Korben
15 octobre 2025 à 11:14

Vous savez, ce script bash de backup que vous avez écrit en 2018 et que vous n’osez plus toucher ? Celui avec les 150 lignes de mysqldump + tar + gzip + aws s3 cp qui marche à moitié et que vous relancez manuellement quand il plante ?

Hé bien vous allez pouvoir le foutre à la poubelle parce que maintenant y’a GoBackup !

GoBackup c’est un binaire codé en Go qui remplace tous vos scripts de backup maison d’un coup. MySQL, PostgreSQL, MongoDB, Redis, peu importe. Local, FTP, S3, Google Cloud, Azure, peu importe. Vous installez, vous configurez un fichier YAML, et c’est fini.

Ensuite, vous n’aurez plus jamais besoin de retoucher à tout ce bordel.

Avant GoBackup y’avait backup/backup, une gem Ruby qui faisait exactement ce job avec de la sauvegarde automatique, multi-bases, multi-destinations et c’était bien. Sauf que Ruby c’est lourd et les dépendances Ruby c’est l’enfer. Du coup le projet est mort tout doucement. Heureusement, huacnlee, un dev chinois, en a eu marre alors il a tout réécrit en Go. Zéro dépendance externe et un seul binaire compilé (installable aussi avec Brew pour ceux qui sont sous macOS).

Vous pouvez l’installer comme ceci (vérifiez le script) :

curl -sSL https://gobackup.github.io/install | sh

Ou via homebrew comme ceci :

brew install gobackup

Avec GoBackup, vous définissez vos bases de données, vos fichiers à archiver, vos destinations de stockage, votre planning, tout dans un fichier YAML propre et ensuite le binaire gère tout : Compression, chiffrement, upload, rotation des backups, notifications si ça échoue…etc. Bref, tout ce que vous faisiez à la main avec vos scripts pourris.

Et GoBackup est pas juste un CLI (Interface en ligne de commande). C’est un CLI + un daemon + une Web UI + un scheduler. Comme ça vous lancez “gobackup start” et ça tourne en background.

Le daemon surveille alors le planning défini dans votre config et lance les backups automatiquement. Et l’interface web vous permet de voir l’état des backups, les logs, les erreurs.

Avec GoBackup, vous remplacez littéralement 5 outils en un : votre script bash + cron + un monitoring pourri + un truc pour lire les logs + l’interface d’admin que vous avez jamais eu le temps de faire.

Votre config ressemble à ça :

models:
 mon_app:
 compress:
 type: tgz
 databases:
 mon_mysql:
 type: mysql
 host: localhost
 database: ma_base
 username: user
 password: $MYSQL_PASSWORD
 storages:
 mon_s3:
 type: s3
 bucket: mes-backups
 region: eu-west-1
 access_key_id: $AWS_KEY
 secret_access_key: $AWS_SECRET
 schedule:
 every: 1day
 at: "04:05"

Et c’est tout. Avec ce fichier, GoBackup dump votre base MySQL tous les jours à 4h05, compresse en .tar.gz, chiffre si vous voulez, et upload sur S3. Et si ça échoue vous recevez une notif. Et si ça marche vous avez les logs comme ça, pas besoin de surveiller, ni de débugger à 3h du matin parce que le backup a planté et que vous avez perdu 6 mois de données.

Notez quand même que GoBackup fait du backup classique, et pas du backup incrémental intelligent à la Restic ou à la Borg donc si vous avez 500 GB de données à backup tous les jours vous allez peut-être préférer un outil plus sophistiqué mais pour 90% des cas d’usage sysadmin standard, GoBackup suffira largement.

Votre script bash dégeu a eu une belle vie, il peut maintenant partir à la retraite.

  • ✇LinuxFr.org : les dépêches
  • Sortie de Crème CRM en version 2.7
    Le 2 septembre 2025 est sortie la version 2.7 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0), un peu plus d’un an après Creme 2.6 (5 août 2024). Au programme notamment, le passage à Django 5.2, les types de fiches personnalisés et un système de processus automatisés. Les nouveautés sont détaillées dans la suite de la dépêche. lien nᵒ 1 : Site officiellien nᵒ 2 : Démo en lignelien nᵒ 3 : Le dépôt de sourcelien nᵒ 4 : Images Docker de démoSommaire Description du

Sortie de Crème CRM en version 2.7

Le 2 septembre 2025 est sortie la version 2.7 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0), un peu plus d’un an après Creme 2.6 (5 août 2024).

Icone de Crème CRM

Au programme notamment, le passage à Django 5.2, les types de fiches personnalisés et un système de processus automatisés. Les nouveautés sont détaillées dans la suite de la dépêche.

Sommaire

Description du logiciel

Crème CRM est un logiciel de gestion de la relation client, généralement appelé CRM (pour Customer Relationship Management). Il dispose évidemment des fonctionnalités basiques d’un tel logiciel :

  • un annuaire, dans lequel on enregistre contacts et sociétés : il peut s’agir de clients, bien sûr, mais aussi de partenaires, prospects, fournisseurs, adhérents, etc. ;
  • un calendrier pour gérer ses rendez‐vous, appels téléphoniques, conférences, etc. ; chaque utilisateur peut avoir plusieurs calendriers, publics ou privés ;
  • les opportunités d’affaires, gérant tout l’historique des ventes ;
  • les actions commerciales, avec leurs objectifs à remplir ;
  • les documents (fichiers) et les classeurs.

Crème CRM dispose en outre de nombreux modules optionnels le rendant très polyvalent :

  • campagnes de courriels ;
  • devis, bons de commande, factures et avoirs ;
  • tickets, génération des rapports et graphiques…

L’objectif de Crème CRM est de fournir un logiciel libre de gestion de la relation client pouvant convenir à la plupart des besoins, simples ou complexes. À cet effet, il propose quelques concepts puissants qui se combinent entre eux (entités, relations, filtres, vues, propriétés, blocs), et il est très configurable (bien des problèmes pouvant se résoudre par l’interface de configuration) ; la contrepartie est qu’il faudra sûrement passer quelques minutes dans l’interface de configuration graphique pour avoir quelque chose qui vous convienne vraiment (la configuration par défaut ne pouvant être optimale pour tout le monde). De plus, afin de satisfaire les besoins les plus particuliers, son code est conçu pour être facilement étendu, tel un cadriciel (framework).

Du côté de la technique, Crème CRM est codé notamment avec Python/Django et fonctionne avec les bases de données MySQL, SQLite et PostgreSQL.

Principales nouveautés de la version 2.7

Voici les changements les plus notables de cette version :

Le passage à Django 5.2

La nouvelle version LTS (Long Time Support, car maintenue pendant 3 ans) du cadriciel Web est sortie en avril 2025.

Pour les personnes qui déploient Creme, cela implique de nouvelles versions minimales :

  • La version minimale de Python est maintenant la 3.10
  • Pour les systèmes de gestion de base de données (SGBD) les versions minimales sont SQLite 3.31, MySQL 8.0.11, PostgreSQL 14 & MariaDB 10.5.

Python 3.13 est désormais géré officiellement.

Les types de fiches personnalisés

Il a bien sûr toujours été possible de créer ses propres types de fiches (entités) via du code (c’est même plutôt simple, notamment grâce aux outils que fournis Django).
Mais ici il s’agit de créer des types de manière visuelle, via l’interface de configuration. Pour créer un nouveau type il suffit de lui donner un nom (genre “Boutique”), ainsi que son nom au pluriel (donc “Boutiques” dans notre exemple). Ensuite des champs personnalisés peuvent être ajoutés, comme pour n’importe quel type de fiche. Et évidemment vous pouvez utiliser derrière tous les outils de configuration classiques pour construire l’interface qui vous convient (blocs, boutons, formulaires, menu…).

Techniquement, les tables correspondant aux types sont en fait toutes créés dès l’installation (mais seuls les types activés sont visibles) ce qui permet de fonctionner sereinement même sur les SGBD ne gérant pas les transactions de schéma. C’est pourquoi le nombre de types personnalisés est limité (à 20 en l’occurrence, cela devrait être largement suffisant en pratique).

Ce nouveau système était attendu depuis longtemps, et devrait encore un peu abaisser la barrière d’entrée en permettant d’éviter d’écrire du code dans pas mal de cas.

Création d’un nouveau type de fiche

Les processus automatisés

Ce nouveau système permet de programmer des actions qui seront effectuées de manière automatique lorsque certains évènements se produisent. Pour mieux comprendre les possibilités offertes, voici un processus créé lors de l’installation de Creme 2.7 : lorsqu’une fiche Opportunité d’affaire est modifiée et que son nouveau statut est un statut considéré comme gagné, alors la société cible de l’Opportunité devient cliente (si elle ne l’était pas déjà évidemment).

Dans cette première version, les évènements qui peuvent déclencher un processus sont :

  • une fiche est créée
  • une fiche est modifiée
  • une propriété (il s’agit d’une sorte de tag) est ajoutée à une fiche
  • une relation est ajoutée entre 2 fiches

Les actions actuellement disponibles sont :

  • ajouter une propriété
  • ajouter une relation
  • envoyer un courriel

Cette version initiale nous a demandé pas mal de travail afin de trouver une conception satisfaisante, mais de nombreuses améliorations sont d’ores et déjà prévues (notamment les évènements temporels & une action qui peut modifier une fiche).

Les processus automatisés étaient, à l’instar des types personnalisés, très attendus ; et combiner ces 2 nouveaux systèmes ouvre pas mal de perspectives.

Un processus automatisé créé par un utilisateur pour les Activités

La version plus détaillée est ici

Quelques autres améliorations notables

  • La génération des numéros des Factures/Devis/Bons de commande a été entièrement revue. Elle se configure maintenant depuis l’interface (là où avant on pouvait juste rentrer des préfixes dans le fichier de configuration) et offre de nombreuses options.
  • La configuration des boutons peut désormais se faire par rôle (comme c’était déjà le cas avec les blocs, formulaires, etc.).
  • Les vues de liste & les filtres peuvent être clonés (afin de gagner du temps, plutôt que de partir de zéro).
  • Le calendrier a été mis-à-jour (version 6.1.18 de la bibliothèque JavaScript FullCalendar), et un nouveau bloc permet d’afficher son calendrier sur la page d’accueil.
  • Pas mal de code de suppression a été amélioré, que ça soit pour empêcher plus souvent la suppression à cause de dépendances (plutôt que supprimer des choses en cascade), ou pour mieux afficher lesdites dépendances bloquantes.

Le futur

La prochaine version devrait être plus courte que la 2.7 (qui a été un peu plus grosse que prévu à la base), afin de mieux coller aux sorties de Django. À l’année prochaine !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Korben
  • Quand le set LEGO Game Boy prend vie
    J’espère que votre semaine se passe bien. Moi c’est la course comme d’hab… Mais je viens de tomber sur un truc que j’ai trouvé super cool et je ne résiste pas à l’envie de partager ça avec vous. Vous avez vu le nouveau set LEGO Game Boy officiel (lien affilié) qui vient de sortir ? 421 pièces, une soixantaines d’euros, une réplique à l’échelle 1:1 avec des cartouches Link’s Awakening et Super Mario Land faits de briques… C’est joli, c’est nostalgique, mais ça ne fait strictement rien. C’est just

Quand le set LEGO Game Boy prend vie

Par : Korben
2 octobre 2025 à 14:32

J’espère que votre semaine se passe bien. Moi c’est la course comme d’hab… Mais je viens de tomber sur un truc que j’ai trouvé super cool et je ne résiste pas à l’envie de partager ça avec vous. Vous avez vu le nouveau set LEGO Game Boy officiel (lien affilié) qui vient de sortir ? 421 pièces, une soixantaines d’euros, une réplique à l’échelle 1:1 avec des cartouches Link’s Awakening et Super Mario Land faits de briques… C’est joli, c’est nostalgique, mais ça ne fait strictement rien. C’est juste décoratif.

Et bien selon The Verge , une moddeuse australienne du nom de Natalie the Nerd a trouvé ça carrément abusé, alors elle a fait ce que ferait n’importe quel geek qui se respecte : elle l’a transformé en vraie console Game Boy fonctionnelle. Et attention, je ne vous parle pas d’un vulgaire Raspberry Pi Zero planqué dedans avec un émulateur. Non, non, non, elle y a mis des vrais morceaux de Game Boy, avec de VRAIES cartouches qui tournent, ainsi qu’un circuit imprimé qu’elle a conçu elle-même.

Bah oui, pourquoi faire simple quand on peut faire compliqué ?

Pour arriver à ses fins, elle a dû miniaturiser toute la logique d’une Game Boy sur un PCB de la taille d’un timbre-poste. Elle a installé l’écran le plus petit du marché (ce qui l’a obligée à retirer quelques briques LEGO au passage), passé un port USB-C pour l’alimentation, et même prévu des boutons totalement fonctionnels.

D’ailleurs, en août dernier, Natalie avait fait aussi le buzz avec une Game Boy Color entièrement transparente , circuit imprimé inclus. Elle a conçu un PCB en matériau acrylique transparent où on voit tous les fils de cuivre flotter dans le vide. Super beau, super technique, mais elle-même disait que c’était juste un projet artistique pour montrer son travail, et pas quelque chose de très pratique.

Elle a même fondé le Modded Gameboy Club , une communauté avec un Discord et un Wiki où les gens partagent leurs tutos pour réparer, modifier, upgrader leurs vieilles consoles Nintendo. Elle vend aussi des composants de seconde main pour les modders et partage ses designs de circuits en open source.

Et bonne nouvelle pour ceux qui voudraient reproduire sa version fonctionnelle de la LEGO Game Boy puisqu’elle a annoncé qu’elle publierait les schémas et les plans une fois qu’elle serait satisfaite du résultat final. Donc si vous avez des compétences en soudure et que l’idée de fabriquer un PCB custom ne vous fait pas peur, vous pourrez bientôt tenter l’aventure.

En tout cas, moi je trouve ça trop super méga génial !

  • ✇Korben
  • Une voiture LEGO grandeur nature qui roule pour de vrai !
    Encore une histoire complétement dingue qui va faire zizir aux fans de LEGO ! En 2020, un Suédois de 21 ans a balancé à la télé qu’il allait construire une vraie voiture en LEGO s’il gagnait l’émission. Et 3 ans plus tard, David Gustafsson a tenu sa promesse et il roule maintenant dans une Volvo V70 entièrement faite de briques. Le mec a utilisé 400 000 pièces LEGO pour construire une réplique grandeur nature de sa propre V70 ce qui représente 1,2 tonnes de plastique assemblées brique par brique

Une voiture LEGO grandeur nature qui roule pour de vrai !

Par : Korben
27 septembre 2025 à 10:28

Encore une histoire complétement dingue qui va faire zizir aux fans de LEGO !

En 2020, un Suédois de 21 ans a balancé à la télé qu’il allait construire une vraie voiture en LEGO s’il gagnait l’émission. Et 3 ans plus tard, David Gustafsson a tenu sa promesse et il roule maintenant dans une Volvo V70 entièrement faite de briques.

Le mec a utilisé 400 000 pièces LEGO pour construire une réplique grandeur nature de sa propre V70 ce qui représente 1,2 tonnes de plastique assemblées brique par brique. Et ce qui est fou c’est que c’est une voiture qui roule vraiment, avec portes qui s’ouvrent, des rétroviseurs électriques et même des phares qui suivent le mouvement du volant.

Comme je vous le disais en intro, David participait à LEGO Masters Suède avec son pote Rickard. Et pendant l’épisode 7, l’animateur Mauri leur demande ce qu’ils feraient avec tous les LEGO s’ils gagnaient. David, pour rigoler, balance qu’il construirait sa voiture en taille réelle. Sauf que quand ils ont gagné, il s’est dit “bon bah, j’ai promis, je le fais”.

Surtout que le prix de LEGO Masters Suède, c’est pas du cash comme partout ailleurs. Non, c’est un super crédit pour commander des pièces directement chez LEGO à prix coûtant. David s’est donc retrouvé avec 400 000 pièces à disposition. Et en décembre 2020, il commence alors le boulot…

2400 heures de travail plus tard, début 2024, la bête est terminée.

Après je me suis demandais comment ça pouvait tenir ce truc, parce que des LEGO, c’est pas vraiment prévu pour supporter le poids d’un adulte qui roule à 20 km/h. Et bien apparemment, David a triché un peu (heureusement) en intégrant 3 éléments non-LEGO que sont les roues, le moteur électrique et un châssis métallique. Tout le reste, des sièges au tableau de bord en passant par le volant et le sélecteur de vitesse, c’est du LEGO pur !

Le plus impressionnant c’est qu’il a réussi à reproduire les courbes complexes d’une V70 de troisième génération (2008-2016) avec des briques rectangulaires. Vous avez déjà essayé de faire un truc rond avec des LEGO ? C’est l’enfer alors une voiture entière avec ses galbes et ses arrières-train arrondis…

Les boutons de la clim fonctionnent, le sélecteur de vitesse fait “clic” quand on change de position, et les rétroviseurs latéraux pivotent. Incroyable !

Faut dire aussi qu’il a un peu d’XP le David car il a créé sa boîte BrickScale après sa victoire à LEGO Masters et depuis la société fait des modèles sur commande et organise des events LEGO. Il a déjà construit des sculptures humaines grandeur nature des Beatles, des chevaux pour l’équipe olympique suédoise, et un robot industriel fonctionnel…etc. C’est devenu son métier.

La voiture a été exposée à l’Ecar Expo de Gothenburg début 2024 et avec l’aide de Volvo Cars (qui a bien kiffé le projet), la V70 LEGO fait maintenant le tour de la Suède.

C’est chouette non ?

Source

  • ✇Korben
  • Quand le MIT réalise un fantasme de science-fiction
    AlterEgo, c’est la réponse du MIT au fantasme de la télépathie et contrairement à Neuralink qui nécessite une chirurgie pour implanter des électrodes dans le cerveau, cette petite merveille se porte simplement autour des oreilles comme une prothèse auditive. Le principe est assez malin. Au lieu de lire directement dans vos pensées (ce qui reste de la science-fiction pour le moment…), AlterEgo détecte les micro-mouvements de votre bouche, de votre visage et de vos cordes vocales quand vous “parle

Quand le MIT réalise un fantasme de science-fiction

Par : Korben
10 septembre 2025 à 16:25

AlterEgo, c’est la réponse du MIT au fantasme de la télépathie et contrairement à Neuralink qui nécessite une chirurgie pour implanter des électrodes dans le cerveau, cette petite merveille se porte simplement autour des oreilles comme une prothèse auditive.

Le principe est assez malin. Au lieu de lire directement dans vos pensées (ce qui reste de la science-fiction pour le moment…), AlterEgo détecte les micro-mouvements de votre bouche, de votre visage et de vos cordes vocales quand vous “parlez” silencieusement. La conduction osseuse fait le reste, transformant ces signaux en mots compréhensibles par un ordinateur.

Arnav Kapur, le scientifique qui dirige le projet, parle d’une “percée révolutionnaire” qui donnerait “le pouvoir de la télépathie, mais uniquement pour les pensées que vous voulez partager”. Ouf, on est sauvé ! Cette précision est importante car contrairement aux interfaces cerveau-machine plus agressives, là vous gardez le contrôle total sur ce que vous communiquez.

Cette idée a germé en 2018 comme projet de recherche au MIT, mais cette année l’équipe a franchi le cap en créant une start-up. Leur dispositif affiche une précision de 90%, ce qui reste impressionnant pour une technologie non-invasive. Bien sûr, chaque utilisateur doit encore calibrer l’appareil et s’entraîner, mais c’est un détail technique… En tout cas, ce qui rend AlterEgo particulièrement intéressant, c’est son potentiel pour les personnes atteintes de troubles de la parole comme la sclérose en plaques. Imaginez pouvoir communiquer naturellement malgré les limitations physiques… Ça changerait la vie de pas mal de monde, non ?

Mais les applications vont bien au-delà du médical car l’équipe envisage déjà des recherches Google silencieuses, des conversations discrètes entre deux utilisateurs, ou encore l’accès aux assistants IA sans sortir votre smartphone. Comme ça, plus besoin de tapoter frénétiquement sur un écran pour obtenir une information. Pour dicter ses SMS ou discuter avec son IA préférée dans les lieux public sans faire chier le monde, c’est l’idéal !

En tout cas, cette approche tranche radicalement avec ce qu’on voit chez la concurrence. C’est vrai qu’actuellement, les interfaces cerveau-machine sont en pleine effervescence avec pas loin de 25 essais cliniques en cours et certaines atteignent même jusqu’à 97% de précision pour la restauration de la parole, mais nécessitent quand même des interventions chirurgicales lourdes. Donc autant dire que c’est pas encore un truc que la police pourra utiliser tout de suite pour vous faire cracher des aveux ^^.

Voilà… alors que Neuralink vient de déposer des brevets pour “Telepathy”, “Blindsight” et “Telekinesis”, MIT propose son alternative chill, moins invasive mais tout aussi prometteuse et leur approche pourrait bien séduire ceux qui hésitent à franchir le pas de la chirurgie cérébrale.

L’avenir nous dira si cette approche “douce” saura rivaliser avec les méthodes plus directes, mais une chose est sûre, la course à la communication silencieuse ne fait que commencer…

Source

  • ✇Korben
  • DCV - Quand votre terminal devient un cockpit Docker
    J’ai déniché un truc sympa pour tous ceux qui passent leur vie dans Docker. Ça s’appelle DCV (Docker Container Viewer) et c’est développé par tokuhirom sur GitHub. En gros, imaginez que quelqu’un ait pris toutes les commandes Docker que vous tapez 50 fois par jour et les ait transformées en une interface accessible via le terminal super classe avec tous vos raccourcis Vim préférés. Comme ça au lieu de vous taper docker ps, docker logs, docker exec et compagnie en boucle, vous avez tout sous le

DCV - Quand votre terminal devient un cockpit Docker

Par : Korben
3 septembre 2025 à 06:19

J’ai déniché un truc sympa pour tous ceux qui passent leur vie dans Docker. Ça s’appelle DCV (Docker Container Viewer) et c’est développé par tokuhirom sur GitHub. En gros, imaginez que quelqu’un ait pris toutes les commandes Docker que vous tapez 50 fois par jour et les ait transformées en une interface accessible via le terminal super classe avec tous vos raccourcis Vim préférés.

Comme ça au lieu de vous taper docker ps, docker logs, docker exec et compagnie en boucle, vous avez tout sous les yeux dans une seule interface TUI (Terminal User Interface). Et le plus beau, c’est que c’est développé avec Bubble Tea , un framework Go qui cartonne pour faire des interfaces terminal qui déchirent (jetez y un oeil à l’occasion..).

Alors oui, je sais ce que vous allez me dire. Il existe déjà Lazydocker , Portainer et une chiée d’autres outils mais DCV a quelques atouts dans sa manche qui le rendent particulièrement intéressant.

D’abord, contrairement à Portainer qui nécessite un serveur web et tout le tralala, DCV reste dans votre terminal. C’est léger, ça démarre instantanément, et ça fonctionne partout où vous avez SSH. Pas besoin d’ouvrir des ports ou de configurer quoi que ce soit de compliqué.

Par rapport à Lazydocker, DCV mise sur une interface encore plus minimaliste et des raccourcis clavier inspirés de Vim. Du coup, si vous êtes du genre à ne jamais toucher votre souris, vous allez kiffer. Le truc cool aussi, c’est qu’il gère nativement Docker-in-Docker, ce qui peut être super pratique pour certains workflows de CI/CD.

L’outil vous permet donc de visualiser :

  • Tous vos containers Docker (standalone ou gérés par Compose)
  • Les images Docker disponibles
  • Les réseaux et volumes
  • Les logs en temps réel avec streaming
  • L’intérieur des containers (navigation dans les fichiers)

Mais là où ça devient vraiment intéressant, c’est que vous pouvez exécuter des commandes shell directement depuis l’interface. Plus besoin de copier l’ID du container pour faire un docker exec -it. Vous sélectionnez, vous appuyez sur une touche, et bam, vous êtes dans le container.

Pour l’installer, si vous êtes sur macOS ou Linux avec Homebrew :

brew tap tokuhirom/tap
brew install dcv

Pour les puristes du Go :

go install github.com/tokuhirom/dcv@latest

Ou alors vous pouvez simplement télécharger les binaires pré-compilés depuis les releases GitHub. C’est du Go compilé, donc un seul fichier executable et c’est parti.

DCV cherche ensuite sa configuration dans ~/.config/dcv/config.toml. Vous pouvez y définir avec quelle vue démarrer par défaut (docker, compose ou projects) ce qui est pratique si vous bossez principalement avec Docker Compose par exemple.

Petit exemple de config :

initial_view = "compose"

Et pour debug en cas de souci :

dcv -debug dcv.log

Voilà, je trouve que DCV mérite sa place dans votre boîte à outils Docker. C’est pas révolutionnaire c’est sûr, mais c’est bien foutu et ça fait le job. L’approche minimaliste avec les raccourcis Vim, c’est vraiment agréable quand on a l’habitude.

Puis le fait que ce soit du Go compilé, c’est aussi un gros plus. Pas de dépendances Node.js ou Python à installer, pas de versions qui se marchent dessus. Un binaire, et roule. Voilà, donc si vous cherchez un outil simple pour surveiller vos containers Docker sans quitter votre terminal, je vous invite à donner une chance à DCV . Et si vous êtes déjà accro à Vim, c’est carrément un no-brainer.

  • ✇Korben
  • LibreWolf - Le Firefox blindé pour la vie privée
    En ce moment, c’est un peu compliqué pour Firefox et ça me rend triste. Je n’aimerais pas que mon navigateur préféré disparaisse faute de moyens. Entre la baisse des parts de marché face à Chrome, les licenciements chez Mozilla et les récentes décisions contestées sur leur modèle économique, le panda roux semble parfois naviguer en eaux troubles. Mais si cela devait arriver, vu que c’est open source, la relève est déjà prête ! Firefox durci, télémétrie supprimée, pistage neutralisé, DuckDuckGo p

LibreWolf - Le Firefox blindé pour la vie privée

Par : Korben
14 mai 2025 à 10:45

En ce moment, c’est un peu compliqué pour Firefox et ça me rend triste. Je n’aimerais pas que mon navigateur préféré disparaisse faute de moyens.

Entre la baisse des parts de marché face à Chrome, les licenciements chez Mozilla et les récentes décisions contestées sur leur modèle économique, le panda roux semble parfois naviguer en eaux troubles. Mais si cela devait arriver, vu que c’est open source, la relève est déjà prête ! Firefox durci, télémétrie supprimée, pistage neutralisé, DuckDuckGo par défaut, uBlock Origin préinstallé et j’en passe…

  • ✇LinuxFr.org : les dépêches
  • Gestion simple de tournois sportif PyTournois
    Sportifs du dimanche, on a souvent besoin de gérer des tournois très simples du type « tout le monde rencontre tout le monde » avec quelques contraintes: nombre de terrains limité ; temps d’attente minimal entre deux matchs ; règles variées sur la gestion des scores. Depuis une vingtaine d’années, je développe différents sites en Python/Django. Du coup j’ai fabriqué un début de site :). lien nᵒ 1 : Code de PyTournoislien nᵒ 2 : Documentationlien nᵒ 3 : DémonstrationCode Libriste depuis touj

Gestion simple de tournois sportif PyTournois

Sportifs du dimanche, on a souvent besoin de gérer des tournois très simples du type « tout le monde rencontre tout le monde » avec quelques contraintes:

  • nombre de terrains limité ;
  • temps d’attente minimal entre deux matchs ;
  • règles variées sur la gestion des scores.

Depuis une vingtaine d’années, je développe différents sites en Python/Django. Du coup j’ai fabriqué un début de site :).

Code

Libriste depuis toujours, le code du projet est sous licence GPL. Actuellement très simple, le site permet de gérer uniquement le mode « toutes les équipes se rencontrent ». Plus tard, suivant les retours, les utilisations et mon temps libre, j’ajouterai d’autres modes (par exemple pour gérer des groupes de placements).

Pour éviter les calculs inutiles, l’affectation des rencontres utilise des grilles de placement. Ces grilles sont calculées une fois pour toutes et contenues dans le projet. L’avantage est d’être efficace et rapide sur la génération de toutes les rencontres. L’inconvénient est que seules quelques combinaisons sont actuellement disponibles :)

Fonctionnement

Le fonctionnement est très simple, le principe de base est que toutes les informations sont visibles sans connexion. Il y a quatre grands rôles utilisateurs:

  • administrateur: sert surtout pour créer des comptes utilisateurs ;
  • organisateur: peut créer des équipes et réinitialiser un tournoi ;
  • arbitre: peut enregistrer/modifier les résultats des matchs ;
  • anonyme: accès à la liste des matchs et au classement.

Les règles de classement sont affichées. On peut également définir un message d’accueil. Si on veut sauvegarder les résultats d’un tournoi, il y a un export au format CSV.

Démonstration

Il y a évidemment un site de démonstration du projet. Le lien se trouve ci-dessous. Les ressources nécessaires pour faire tourner le site sont extrêmement limitées. Si les fonctionnalités du site vous conviennent et que vous voulez l’utiliser pour un club/tournois, n’hésitez pas à me contacter. Je pourrais mettre en ligne une version dédiée gratuitement.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Opinions Libres
  • Decode Quantum with Nick Farina and Johannes Pollanen from EeroQ
    Welcome to the 79th episode of “Decode Quantum”. We continue our “international episodes”, this times with the cofounders of the US startup EeroQ, Nick Farina and Johannes Pollanen, which aims to create qubits with electron spins, electrons being shielded from controlling electronic circuits by a layer of superfluid helium. This is the only company doing […]

Decode Quantum with Nick Farina and Johannes Pollanen from EeroQ

15 janvier 2025 à 08:51
Welcome to the 79th episode of “Decode Quantum”. We continue our “international episodes”, this times with the cofounders of the US startup EeroQ, Nick Farina and Johannes Pollanen, which aims to create qubits with electron spins, electrons being shielded from controlling electronic circuits by a layer of superfluid helium. This is the only company doing […]
  • ✇LinuxFr.org : les dépêches
  • Sortie de Crème CRM en version 2.6
    Le 5 août 2024 est sortie la version 2.6 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0), environ 11 mois après Creme 2.5 (11 septembre 2023). Au programme notamment, un système de notification, des améliorations pour le calendrier ou des filtres réservés aux rapports. Les nouveautés sont détaillées dans la suite de la dépêche. lien nᵒ 1 : Site officiellien nᵒ 2 : Démo en lignelien nᵒ 3 : Le dépôt de sourcelien nᵒ 4 : Images Docker de démoSommaire Description d

Sortie de Crème CRM en version 2.6

Le 5 août 2024 est sortie la version 2.6 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0), environ 11 mois après Creme 2.5 (11 septembre 2023).

Icône de Crème CRM

Au programme notamment, un système de notification, des améliorations pour le calendrier ou des filtres réservés aux rapports. Les nouveautés sont détaillées dans la suite de la dépêche.

Sommaire

Description du logiciel

Crème CRM est un logiciel de gestion de la relation client, généralement appelé CRM (pour Customer Relationship Management). Il dispose évidemment des fonctionnalités basiques d’un tel logiciel :

  • un annuaire, dans lequel on enregistre contacts et sociétés : il peut s’agir de clients, bien sûr, mais aussi de partenaires, prospects, fournisseurs, adhérents, etc. ;
  • un calendrier pour gérer ses rendez‐vous, appels téléphoniques, conférences, etc. ; chaque utilisateur peut avoir plusieurs calendriers, publics ou privés ;
  • les opportunités d’affaires, gérant tout l’historique des ventes ;
  • les actions commerciales, avec leurs objectifs à remplir ;
  • les documents (fichiers) et les classeurs.

Crème CRM dispose en outre de nombreux modules optionnels le rendant très polyvalent :

  • campagnes de courriels ;
  • devis, bons de commande, factures et avoirs ;
  • tickets, génération des rapports et graphiques…

L’objectif de Crème CRM est de fournir un logiciel libre de gestion de la relation client pouvant convenir à la plupart des besoins, simples ou complexes. À cet effet, il propose quelques concepts puissants qui se combinent entre eux (entités, relations, filtres, vues, propriétés, blocs), et il est très configurable (bien des problèmes pouvant se résoudre par l’interface de configuration) ; la contrepartie est qu’il faudra sûrement passer quelques minutes dans l’interface de configuration graphique pour avoir quelque chose qui vous convienne vraiment (la configuration par défaut ne pouvant être optimale pour tout le monde). De plus, afin de satisfaire les besoins les plus particuliers, son code est conçu pour être facilement étendu, tel un cadriciel (framework).

Du côté de la technique, Crème CRM est codé notamment avec Python/Django et fonctionne avec les bases de données MySQL, SQLite et PostgreSQL.

Principales nouveautés de la version 2.6

Voici les changements les plus notables de cette version :

Le nouveau système de notification

Depuis toujours Crème possède un système de Mémentos (Reminders), qui permet de recevoir des e-mails pour vous prévenir d’une échéance. Ce système est utilisé par les Alertes & les ToDos ; par exemple vous recevez un e-mail lorsqu’une Alerte qui vous est attribuée va expirer dans 30 minutes. Et comme vous pouvez créer des Alertes dont la date d’expiration est un champ date de la fiche associée, cela permet par exemple d’être prévenu qu’une activité importante à laquelle vous participez va bientôt avoir lieu.

Le nouveau système de notification qui a été introduit amène 2 avancées principales :

  • les notifications envoyées ne sont pas limitées à des e-mails, vous pouvez aussi les voir dans votre navigateur (donc sans quitter Crème).
  • si les mémentos ont été retravaillés pour utiliser ce nouveau système, d’autres parties de Crème en profitent aussi. Par exemple, une notification vous est envoyée si un administrateur a changé votre mot de passe ; ou bien quand un job d’import CSV vient de s’achever.

Une notification web est arrivée

Chaque notification est associée à un canal, et vous pouvez configurer les canaux pour savoir si la notification est envoyée dans le navigateur, par e-mail ou bien les 2. Si le canal n’est pas obligatoire, vous pouvez aussi choisir de ne pas recevoir les notifications du tout. Chaque utilisateur peut utiliser sa propre configuration si la configuration générale du canal ne lui convient pas.

La configuration des canaux

Améliorations du calendrier

  • Le composant JavaScript FullCalendar est passé à la version 5. Même si ce n’est pas la toute dernière version (il faut dire qu’il y a pas mal de changements cassants entre chaque version), on profite de pas mal d’améliorations diverses.
  • Il est maintenant possible de configurer graphiquement le calendrier (premier jour de la semaine, plage horaire, jour travaillés…). Il y a une configuration globale utilisée par tout le monde, mais comme presque toujours dans Creme, il est possible de créer des configurations par rôle.

La configuration des calendriers du module « Activités »

Filtres spécifiques aux Rapports

Les Rapports utilisent généralement un filtre, afin d’affiner leurs résultats. Ces filtres sont les mêmes que ceux qu’utilisent les vues en liste ; par exemple si vous faites un Rapport sur les Devis, il peut utiliser les filtres disponibles sur la liste des Devis.

Un problème que cela entraîne est que beaucoup d’utilisateurs créent des filtres un peu spécifiques afin de les utiliser dans leurs Rapports, mais ces filtres viennent « polluer » la vue en liste correspondante (car la sélection de filtres proposent de nombreux filtres non pertinents). Afin de corriger ce souci, il est désormais possible de créer des filtres utilisables uniquement dans les Rapports. Les Rapports peuvent bien sûr continuer à utiliser les filtres classiques, mais les filtres spécifiques aux Rapports ne sont pas utilisables dans les vues en liste évidemment.

La création d’un rapport avec un filtre spécifique sélectionné

Quelques autres améliorations notables

  • Python 3.12 est officiellement géré.
  • Dans le module facturation, vous pouvez maintenant configurer les statuts sélectionnés par défaut (dans les formulaires), ainsi que les statuts utilisés par les Factures lorsque leur numéro est généré.
  • Un nouveau bouton, qui peut être mis sur la vue détaillée des Contacts, est disponible: « Créer un appel non abouti » (détails).
  • La configuration des blocs d’un rôle peut maintenant être créée en clonant la configuration d’un autre rôle (les rôles pouvant avoir des configurations assez proches, ça peut être un gain de temps appréciable).
  • Les blocs basés sur OpenStreetMap sont maintenant utilisés dans l’installation par défaut (à place de ceux basés sur GoogleMaps).
  • Un rôle «Utilisateur normal» est créé dans les nouvelles installations. Dans la mesure où c’est une bonne chose que tout le monde ne soit pas connecté en tant que super-utilisateur, ce rôle devrait permettre de gagner du temps et servir au moins de base de travail.
  • Un bouton permettant de transformer un simple Contact en utilisateur a été ajouté. Auparavant il fallait fusionner ce Contact avec le Contact automatiquement créé à la création d’un utilisateur.
  • Les Graphes ont reçu de nombreuses améliorations : plus de champs sont disponibles en abscisse, plus de champs sont disponibles pour le filtrage, les couleurs associées aux petits modèles auxiliaires (du genre « Statut ») sont utilisées…
  • La validation des URLs est désormais moins stricte dans les champs informatifs. Cela posait pas mal de problèmes notamment lors des imports, les gens mettant rarement le « http:// » dans leur base de données.

Le futur

La prochaine version marquera notamment le passage à Django 5.2, la future LTS qui sortira en avril 2025. À l’année prochaine !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Emmabuntüs DE5, maintenant accessible aux déficients visuels
    Ce 29 juillet 2024, le collectif Emmabuntüs vient d’annoncer la sortie de sa nouvelle version Emmabuntüs Debian Édition 5 1.02, basée sur la Debian 12.6 Bookworm (32 et 64 bits) et supportant les deux environnements de bureau Xfce et LXQt. Rappelons que cette distribution est née au sein d’Emmaüs, pour faciliter le reconditionnement des ordinateurs donnés aux associations, notamment humanitaires, mais aussi pour favoriser la découverte de GNU/Linux par les débutants, tout en prolongeant la duré

Emmabuntüs DE5, maintenant accessible aux déficients visuels

Ce 29 juillet 2024, le collectif Emmabuntüs vient d’annoncer la sortie de sa nouvelle version Emmabuntüs Debian Édition 5 1.02, basée sur la Debian 12.6 Bookworm (32 et 64 bits) et supportant les deux environnements de bureau Xfce et LXQt.

Rappelons que cette distribution est née au sein d’Emmaüs, pour faciliter le reconditionnement des ordinateurs donnés aux associations, notamment humanitaires, mais aussi pour favoriser la découverte de GNU/Linux par les débutants, tout en prolongeant la durée de vie du matériel informatique, ce qui réduit le gaspillage lié à la surconsommation de matière première.

Logo d'Emmabuntûs

Cette nouvelle version fait suite à une demande de l’A.S.I. YOVOTOGO, afin de donner 90 ordinateurs embarquant cette évolution à la « Fédération togolaise des associations de personnes handicapées » (FETAPH) pour équiper leurs 11 centres de formation.
Pour inclure cette évolution, sans perturber ses anciens utilisateurs, une fenêtre d’activation et de configuration de ces fonctions d’accessibilité a été ajoutée :
Capture d'écran Fenêtre de configuration de l’accessibilité personnalisée

Les principales fonctions d’accessibilité ajoutées dans cette évolution sont :

Menu capture d'écran Menu des applications d’accessibilité

Le collectif a aussi réalisé pour cette évolution un ensemble de manuels pour l’accessibilité ainsi que la mise en place d’une page dédiée sur son site regroupant ces manuels en français et en anglais.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇Opinions Libres
  • Actualités quantiques de mai 2024
    Dans le 59e épisode de Quantum, le podcast de l’actualité quantique, Fanny Bouton d’OVHcloud et moi-même décryptons l’actualité événementielle, entrepreneuriale et scientifique du domaine. A noter en particulier les annonces autour de Choose France, celles d’Alice & Bob avec Google et Riverlane, IBM, et aussi les records scientifiques obtenus autour des atomes froids chez Pasqal […]

Actualités quantiques de mai 2024

3 juin 2024 à 08:40
Dans le 59e épisode de Quantum, le podcast de l’actualité quantique, Fanny Bouton d’OVHcloud et moi-même décryptons l’actualité événementielle, entrepreneuriale et scientifique du domaine. A noter en particulier les annonces autour de Choose France, celles d’Alice & Bob avec Google et Riverlane, IBM, et aussi les records scientifiques obtenus autour des atomes froids chez Pasqal […]
  • ✇Opinions Libres
  • How can AI, LLMs and quantum science empower each other?
    The field of generative artificial intelligence is currently dominated by the large language model chatbots like ChatGPT. This platform was first introduced to Internet users in late 2022 with its 3.5 version. Launched in spring 2023, the 4.0 version has since then attracted hundred million users. My initial engagement with ChatGPT 3.5 yielded underwhelming results. […]

How can AI, LLMs and quantum science empower each other?

26 janvier 2024 à 07:35
The field of generative artificial intelligence is currently dominated by the large language model chatbots like ChatGPT. This platform was first introduced to Internet users in late 2022 with its 3.5 version. Launched in spring 2023, the 4.0 version has since then attracted hundred million users. My initial engagement with ChatGPT 3.5 yielded underwhelming results. […]
❌
❌