Syndicate content
Mis à jour : il y a 1 heure 47 min

L'ONG Noyb porte plainte pour corruption contre la CNIL irlandaise

7 décembre, 2021 - 15:43

Noyb, l’ONG autrichienne de défense des droits numériques, porte plainte contre la DPC (l’homologue irlandaise de la CNIL) pour corruption en faveur de Facebook et dévoile des documents liés à sa procédure contre Facebook dans ses « lectures de l’Avent ». On y découvre notamment un régulateur irlandais défendant les intérêts de la firme américaine dans la procédure lancée par Noyb mais aussi auprès des autres autorités nationales de protection des données du continent.

Noyb (None Of Your Business = « pas tes affaires » en anglais) est une association autrichienne créée en 2017 par Max Schrems, activiste connu pour avoir fait annuler les accords Safe Harbor en 2015 et Privacy Shield en 2020, accords autorisant sous certaines conditions les transferts de données personnelles entre l’Union Européenne et les États-Unis d’Amérique.

L’association a initialement porté plainte contre Facebook dès l’entrée en vigueur du RGPD en 2018, auprès de la DSB, la CNIL autrichienne. Celle-ci avait alors transmis la plainte à l’autorité de protection des données « référente » pour Facebook en Europe, soit la CNIL irlandaise, comme le prévoit le RGPD.

C’est après trois ans de procédure ne menant à rien que Noyb annonce le 23 novembre 2021 que la CNIL irlandaise lui demande de signer un accord de confidentialité, faute de quoi l’association serait déboutée de sa plainte contre Facebook. Noyb souligne l’absence de toute base légale pour cette demande de confidentialité, que ce soit sur la base du droit irlandais ou du droit autrichien. Cette absence de base légale et le fait de conditionner la poursuite de l’instruction de sa plainte à la signature de cet accord de confidentialité constitue selon Noyb une demande de corruption, au même titre que si la CNIL irlandaise lui avait demandé une « bouteille de vin » en échange de la poursuite de l’instruction.

La plainte directe déposée par Noyb contre la CNIL irlandaise auprès de la justice autrichienne s’accompagne d’une campagne de divulgation de documents liés à l’instruction de la plainte initiale contre Facebook, qui sont publiés durant tout le mois de décembre, chaque dimanche de l’Avent, accompagnés d’une vidéo explicative. Noyb s’était abstenu jusqu’ici de communiquer sur ces documents, bien qu’en ayant le droit, afin de préserver la qualité (relative…) des échanges avec la DPC (la CNIL irlandaise) et Facebook. Le chantage à l’accord de confidentialité a manifestement été la goutte d’eau qui a fait déborder le vase. Et les premiers documents divulgués sont pour le moins embarrassants pour la CNIL irlandaise.

Les documents divulgués lors du premier dimanche montrent tout d’abord les efforts (peu surprenants) déployés par Facebook pour nier la légitimité du RGPD et de la plainte de Noyb vis-à-vis d’une entreprise américaine, puis pour tenter d’imposer la confidentialité des échanges entre les différentes parties. Demandes qui seront rejetées notamment par la CNIL autrichienne concernant la confidentialité des échanges.

Les documents divulgués lors du deuxième dimanche montrent quant à eux les efforts importants déployés par la DPC pour faire passer auprès des autres CNIL européennes les arguments de Facebook, et même pour influencer le droit européen dans le sens des intérêts de la firme américaine, en tentant de vider complètement le RGPD de sa substance. S’il est rassurant de voir que les autres CNIL ne sont pas laissées influencer et ont rejeté toutes les demandes de leur homologue irlandaise tendant à appauvrir les protections apportées par le RGPD, il est extrêmement inquiétant de voir une institution publique se faire ainsi le porte-parole d’une entreprise extra-européenne, au mépris des intérêts des citoyens européens.

L’issue de la plainte en corruption déposée par Noyb contre la CNIL irlandaise pourrait avoir de grandes répercussions sur le traitement de sa plainte initiale contre Facebook, et in fine sur le modèle d’affaires du géant américain sur le sol européen.

[NdM] : la CNIL, Commission Nationale de l’Informatique et des Libertés, est l’organisme français qui, depuis 1978, a pour mission de réguler les données personnelles. Elle est affiliée, comme les organismes comparables au Comité Européen de la Protection des Données (CEPD, en anglais EDPB). Par extension (et facilité), ici, CNIL est le nom donné aux autres autorités de protection des données.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Revue de presse — décembre 2021

7 décembre, 2021 - 13:47

Petit complément hivernal à la revue de presse de novembre dernier. En effet, les bimestriels sont toujours en kiosques, mais certains magazines, dont le mensuel GLMF en particulier, sortent un nouveau numéro en ce dernier mois de 2021. Voici donc un petit tour subjectif et parti{e,a}l de la presse-papier sortie récemment, celle que vous pouvez encore trouver dans vos kiosques à journaux préférés.

Les nouveautés de décembre 2021 :

  • GNU/Linux Magazine France no 254 et les API REST en Python ;

Et toujours disponibles :

  • Linux Pratique no 128 et le cloud privé (et souverain ?) ;
  • MISC magazine no 118 vous initie aux techniques d’OSINT (Open Source INTelligence) ;
  • GNU/Linux Magazine hors‑série no 117 pose les bases de l’IA ;
  • Le Virus Informatique no 49 fusionne avec Pirate Mag' ;
  • MagPI no21 pour devenir un génie du Raspberry Pi ;
  • Planète Linux no 123 s’aventure sur le « Dark Web » ;
  • Linux Pratique hors‑série no 52 pousse l’apprentissage de Docker encore plus loin ;
  • Hackable no 39 crée un système d’affichage WiFi… à base d’ESP32.

Tour d’horizon plus détaillé des nouveautés dans la suite de cette dépêche.
Bonnes lectures !

Les sommaires des numéros sortis en décembre 2021 GNU/Linux Magazine numéro 254

Au sommaire de ce numéro de novembre 2021 :

  • Python 3.10 : quelles sont les nouveautés ?
  • ¡ Viva la libertad !
  • Construisez votre propre jeu de données pour le Deep Learning ;
  • Docker pour du développement local ;
  • Créer une application avec GraphQL plutôt que REST ;
  • Déployer un outil Java réalisé avec Quarkus ;
  • Écriture d’une API REST en Python : le framework Flask RESTful.
Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Meilleures contributions LinuxFr.org : les primées de novembre 2021

7 décembre, 2021 - 01:15

Nous continuons sur notre lancée de récompenser celles et ceux qui chaque mois contribuent au site LinuxFr.org (dépêches, commentaires, logo, journaux, correctifs, etc.). Vous n’êtes pas sans risquer de gagner un livre des éditions Eyrolles ou ENI. Voici les gagnants du mois de novembre 2021 :

Les livres gagnés sont détaillés en seconde partie de la dépêche. N’oubliez pas de contribuer, LinuxFr.org vit pour vous et par vous !

Les livres

Les journaux LinuxFr.org les mieux notés de novembre 2021

6 décembre, 2021 - 19:29

LinuxFr.org propose des dépêches et articles, soumis par tout un chacun, puis revus et corrigés par l’équipe de modération avant publication. C’est la partie la plus visible de LinuxFr.org, ce sont les dépêches qui sont le plus lues et suivies, sur le site, via Atom/RSS, ou bien via partage par messagerie instantanée, par courriel, ou encore via médias sociaux.

Ce que l’on sait moins, c’est que LinuxFr.org vous propose également de publier directement vos propres articles, sans validation a priori de lʼéquipe de modération. Ceux-ci s’appellent des journaux. Voici un florilège d’une dizaine de ces journaux parmi les mieux notés par les utilisateurs et les utilisatrices… qui notent. Lumière sur ceux du mois de novembre passé.

Odoo : support de la déclaration de TVA avec télétransmission

6 décembre, 2021 - 01:20

Après de longs mois de dur labeur, j’ai le plaisir d’annoncer la publication de nouveaux modules pour Odoo v14 qui ajoutent le support de la déclaration de TVA française avec télétransmission EDI. À ma connaissance, il s’agit de la première implémentation opensource de la déclaration de TVA avec télétransmission. Ces modules supportent la déclaration de TVA (formulaire 3310-CA3), l’annexe (formulaire 3310-A) et la demande de remboursement de crédit de TVA (formulaire 3519). Au menu : TVA sur les débits, TVA sur les encaissements, autoliquidation pour les acquisitions intracommunautaires de biens et services, autoliquidation pour les achats de prestations de services extracommunautaires, TVA collectée à Monaco, etc. Le module automatise aussi la génération de l’écriture comptable correspondante en suivant les règles françaises de gestion des arrondis.

Dans la seconde partie de la dépêche, j’explique les contraintes pour la télétransmission de la TVA en France et le choix de passer par la passerelle de télétransmission TELEDEC.

Télétransmission EDI

Contrairement aux services en ligne mis en place par Bercy ces dernières années (comme Chorus Pro), il n’est pas possible de télétransmettre la déclaration de TVA de son entreprise via une API ouverte. Les entreprises qui souhaitent télétransmettre leur déclaration de TVA doivent passer par des passerelles de télétransmission EDI agréés qui proposent leurs services (payants) aux entreprises. C’est l’association EDIFICAS qui gère ces agréments et facture les coûts associés à leur obtention. Si ces coûts peuvent paraître raisonnables pour de gros éditeurs logiciel, ils sont difficiles à amortir pour un auteur de logiciel libres. L’échange EDI utilise le format de fichier EDIFACT, un format né dans les années 80 !

J’ai finalement trouvé une passerelle de télétransmission agréée qui propose une API REST sur laquelle on peut envoyer sa déclaration de TVA au format JSON en utilisant, pour chaque champ du formulaire officiel, le code EDI attribué par l’administration fiscale. La passerelle de télétransmission se charge de générer le fichier EDIFACT avec son propre numéro d’agrément EDIFICAS en utilisant les données reçues dans la requête REST. Puis elle envoie le fichier EDIFACT sur les serveurs de l’administration fiscale. Cette passerelle de télétransmission de la déclaration de TVA est un service (payant) proposé par la société TELEDEC, que j’utilise depuis plusieurs années comme logiciel SaaS pour établir et envoyer la liasse fiscale de mon entreprise.

Alternative expérimentale : robot de remplissage du formulaire en ligne en mode EFI

Pour ceux qui ne souhaitent pas opter pour la télétransmission EDI de la déclaration de TVA, ils peuvent toujours continuer à utiliser le mode EFI, qui consiste à remplir le formulaire de TVA en ligne sur le site impots.gouv.fr. Le mode EFI a l’avantage d’être gratuit… mais il est un peu fastidieux ! Pour les entreprises au régime réel normal qui reversent plus de 4 000 € de TVA par an à l’État, la déclaration de TVA doit être réalisée chaque mois. Et un petit gain de temps multiplié par 12 mois dans l’année… n’est plus un petit gain de temps ! En observant le code HTML de la page web du formulaire CA3 de la déclaration de TVA, j’ai remarqué que les balises avaient un ID qui contenait un code bien précis. Et ce code était documenté dans les spécifications EDI de la déclaration de TVA sous la dénomination code NREF. En découvrant cela, je me suis dit qu’il devenait envisageable de développer un outil de type webscrapping qui remplirait de façon fiable le formulaire de TVA en ligne. Mon choix s’est porté sur Selenium IDE, une extension opensource pour Firefox et Chrome, généralement utilisée comme outil de test de sites Web. Cet outil a l’avantage d’être ergonomique et facile à utiliser par un non-geek. Il permet de charger un fichier de scenario qui contient les instructions techniques pour remplir le formulaire en ligne. Par contre, Selenium IDE ne permet pas d’appliquer un scénario sur un onglet déjà ouvert du navigateur Web : un scénario commence toujours en ouvrant une nouvelle fenêtre du navigateur. Cela implique que le scénario doit comporter toutes les étapes jusqu’à accéder au formulaire de déclaration de TVA : se connecter sur impots.gouv.fr, naviguer jusqu’au menu dédié à la déclaration de TVA, choisir la bonne période de déclaration, etc. Ce process implique plusieurs clics sur des boutons, ce qui signifie que cette partie du scénario devra être mise à jour en cas de changement au niveau des menus du site des impôts. Cette solution n’est donc pas idéale, mais c’est la moins mauvaise que j’ai trouvée. Les autres extensions pour navigateur Web que j’ai testées étaient à l’abandon ou n’avaient pas de moyen pratique pour charger un fichier contenant les instructions pour remplir le formulaire. En effet, de nombreuses extensions sont conçues pour remplir un formulaire en utilisant toujours les mêmes données, ce qui n’est pas adapté à une déclaration de TVA où les chiffres à renseigner dans le formulaire changent chaque mois !

Vous pouvez voir une démo de cette solution de remplissage automatique du formulaire de TVA en ligne dans le screencast indiqué dans les liens de cette dépêche, à partir de la 9e minute. Si vous avez d’autres idées de meilleurs outils utilisables par des non-geeks pour remplir le formulaire de TVA en ligne, je suis preneur de suggestions dans les commentaires. Sinon, si celle solution de remplissage du formulaire en ligne avec Selenium IDE fonctionne bien à l’usage, je compte déplacer le code dans une librairie Python qui pourra être utilisée par d’autres logiciels qu’Odoo.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Agenda du Libre pour la semaine 49 de l'année 2021

5 décembre, 2021 - 12:51

Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 26 événements (France: 24, Québec: 2) est en seconde partie de dépêche.

N. D. M. : vu le contexte de pandémie de Covid‑19 et les restrictions locales ou nationales (Belgique, France, Québec et Suisse) sur les rassemblements, certains événements sont susceptibles d’être annulés (que les organisateurs aient pensé à mettre à jour l’Agenda du Libre ou non).

Sommaire [FR Lyon] Les permanences contre l’obsolescence - Le lundi 6 décembre 2021 de 17h00 à 19h00.

Au programme:
-Vente d’ordinateurs à prix solidaire
-Bidouillage de matériel informatique en tout genre
-Discussions circulaires et non obsolescentes
-Reconditionnement d’ordinateurs
-Initiation à Linux et aux logiciels libres

Ouvert à toutes et à tous

Sortie de Tryton 6.2

3 décembre, 2021 - 10:40

Le 2 novembre dernier est sortie la version 6.2 de Tryton un progiciel de gestion intégré (ERP). Cette nouvelle version supportée un an apporte son lot de correctifs et intègre pas moins de 13 nouveaux modules dont une base pour la gestion d’un POS et l’intégration avec Shopify.

Comme d’habitude, la migration depuis les versions précédentes est prise en charge (et pour la première fois depuis 5 ans, il n’y a aucune opération manuelle à faire).

Tryton est un progiciel de gestion intégré — communément appelés PGI ou ERP — modulaire basé sur une architecture trois tiers écrite en Python (et un peu de JavaScript). Il vient avec un ensemble de plus de cent cinquante modules couvrant la majorité des besoins d’une entreprise (achats, ventes, gestion de stock et de production, facturation et suivi, compatibilité, etc.). Il est accessible via un client Web, une application native ou bien une ligne de commande en Python. Le projet est supervisé par la fondation privée Tryton qui garantit la pérennité du statut de logiciel libre.

Voici une liste non-exhaustive des nouveautés qu’apporte cette version 6.2 (voir l’annonce officielle pour une liste plus complète):

Il est maintenant possible de connecter des boutiques en ligne Shopify avec Tryton. Il suffit de configurer l’URL de Shopify et Tryton poussera automatiquement la définition des produits (avec les images, les catégories et la quantité disponible) qui sont configurés pour être vendus sur cette boutique. Ensuite, périodiquement, il récupérera les ventes passées en créant si nécessaire le client dans la base de Tryton et les paiements. Tryton clôturera la vente sur Shopify une fois qu’elle aura été traitée.

Une gestion d’images a été ajoutée sur les produits et variants. Les images sont accessibles publiquement. La taille souhaitée peut être passée comme argument et Tryton la redimensionnera à la volée et la gardera en cache. Des cases à cocher permettent de définir des filtres d’usage. Par exemple, le filtre « Web Shop » limite l’usage aux web shops de Tryton.

La gestion de budgets est prise en charge. Ils peuvent être définis autant sur les comptes comptables (par année ou période fiscale) que sur les comptes analytiques (par dates). Plusieurs budgets peuvent être définis pour la même période avec, par exemple, un scénario optimiste et un autre pessimiste. Un assistant permet de dupliquer un budget existant en appliquant un facteur. Ensuite, on peut comparer les montants budgétisés au réel.

Un nouveau module ajoute les bases pour supporter les points de ventes. Il gère l’enregistrement des paiements (avec calcul de la monnaie à rendre), met à jour le stock et la comptabilité. Les paiements par cash sont vérifiés par session et par poste. À la clôture d’une session, on peut transférer une partie du cash de la caisse par exemple en banque.

En plus du support des transporteurs UPS et DPD, cette version ajoute MyGLS et Sendcloud pour l’impression d’étiquettes de transport. Sendcloud est particulièrement intéressant puisque c’est une plateforme qui supporte plus de 35 transporteurs.

Tryton pouvait déjà récupérer automatiquement les taux de changes de la Banque Centrale Européenne. Maintenant, il supporte aussi ceux des banques nationales de Roumanie et de Serbie.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

La version 8.1 de PHP et création de la fondation PHP

2 décembre, 2021 - 16:01

En fin d’année 2021 et sur la lancée habituelle PHP passe en version 8.1. Tout comme les autres versions, elle sera maintenue activement pendant deux années et elle recevra seulement des correctifs de sécurité une année de plus.

Sommaire Quoi de neuf Les nouveautés majeures Les types énumérés

Jusqu’à présent cette structure n’était pas présente nativement dans le langage, elle était néanmoins implémentée dans diverses bibliothèques. C’est la bonne occasion de se débarrasser des classes remplies de constantes.

<?php enum IP { case V4; case V6; } // la méthode statique cases() est automatiquement implémentée IP::cases(); // [IP::V4, IP::V6] $versionOf = fn(string $address): ?IP => { match(true){ case isIpV4($address) => IP::V4, case isIpV6($address) => IP::V6, default => null } }; $versionOf("192.168.0.1); // IP::V4 Propriétés de classe en lecture seule

Cette fonctionnalité, qui existe déjà dans d’autres langages (C# et TypeScript), fait son arrivée. Elle vous permettra d’avoir un objet dont les propriétés ne pourront plus être modifiées après l’instanciation. Ça va désormais être rapide pour créer des DTO.

class QuelBeauDTO { public function __construct(public readonly string $message){} } $dto = new QuelBeauDTO("LinuxFR"); echo($dto->message); // LinuxFR $dto->message = "Vive les moules"; //Fatal error: Uncaught Error: Cannot modify readonly property QuelBeauDTO::$message Les types intersection purs

Après les types unions lors de la version précédente, voici l’intersection. Une bonne solution pour favoriser la composition d’interface et améliorer la modularité de nos développements.

interface A{ function a(): string;} interface B{ function b(): string;} class Coucou implements A, B { function __construct(private readonly string $a, private readonly string $b){} function a(): string { return $this->a; } function b(): string { return $this->b; } } $ab = new Coucou("coucou", "toto"); $fn = fn(A&B $ab): string => "{$ab->a()} {$ab->b()}"; echo($fn($ab)); // coucou toto

La notion de pureté vient du fait que pour le moment il n’est pas possible d’avoir une signature du genre : A&B|C. Une discussion houleuse s’est tenue quelques jours avant le gel des fonctionnalités sur la possibilité d’avoir des null et la syntaxe qui l’accompagnerait. Pour rappel, les types union ont intégré le langage en version 8.0.

Autres nouveautés Du code asynchrone avec les Fibers

Jusqu’à présent, la gestion du code asynchrone était gérée du côté des bibliothèques, les plus connues étant Amp, ReactPHP et Swoole. Chaque solution avait implémenté les logiques nécessaires à leur sauce. Avec l’arrivée des fibres dans le langage, les cartes sont rebattues et chacun devra apporter des modifications pour profiter de la partie native. D’ailleurs ReactPHP et Amp se sont associés pour écrire une couche d’abstraction nommée Revolt.

new dans le constructeur et des constantes finales

Les constantes finales ne peuvent pas être redéfinies dans une classe enfant (mais qui utilise l’héritage ???) et il est possible d’intégrer des new directement dans le constructeur.

class A { private final const A = "toto"; public function __construct(private DatetimeImmutable $now = new DateTimeImmutable()){}; } class B extend A{ private final const A = "tata"; //Fatal error: B::A cannot override final constant A::A } Des performances en hausse

À chaque version, des optimisations sont trouvées et il en résulte de meilleurs résultats sur différents comparatifs. Cette version ne déroge pas à la règle. Un récent comparatif sur des temps de traitement d’une série de 250 requêtes trouve un temps de réponse diminué d’une vingtaine de pourcents pour une application Symfony ou Laravel et une poignée de pourcents pour un site Wordpress.

Pour la suite

Pour ceux qui tournent sur du PHP 7.4, il va falloir songer à passer en version 8.0 dans l’année. Pour rappel, une version est maintenue pendant trois ans (deux ans de maintenance active, un an de maintenance de sécurité). Pour cela, il faut baisser les seuils d’alerte au minimum, corriger ce qui provoque les bouts de code concernés par des alertes à la main ou automatiquement avec des outils du genre Rector.

À l’heure de la rédaction de ces lignes, peu de choses seront incluses dans la prochaine version, mais on peut déjà voir que cela ne sera toujours une somme de choses pour rendre le langage plus cohérent, de suppression de possibilités pour écrire des choses atroces, de simples utilitaires pour ne pas réinventer la roue, etc.

Les changements au niveau de la communauté

PHP est un langage communautaire, à ma connaissance, il n’y a pas d’entreprise qui emploie des personnes pour travailler à plein temps sur le langage. Le langage évolue donc au gré des volontés diverses et variées de proposer des nouvelles fonctionnalités et de les implémenter. Globalement, l’évolution et la maintenance du langage ne tient qu’à une poignée de motivé(e)s. Comme pour la plupart des projets communautaires, toute aide est la bienvenue que ce soit sous la forme de traduction, de documentation, de rapports de bug, pour rajouter du code c’est un poil plus compliqué, car il faut être familier avec le C à la sauce PHP !

Migration progressive sur Github

L’infrastructure vieillissante du projet arrivant au bout de sa vie et un incident de sécurité ce printemps ont poussé à stopper les contributions sur le service git du projet. Alors que le dépôt sur Github servait de miroir, il est devenu la source principale. La gestion des bugs va également se déplacer au même endroit.

Création de la fondation PHP

Jusqu’à présent il n’y avait aucune structure officielle chapeautant le projet et rare ont été les personnes payées pour développer le langage. Ces derniers temps ce nombre ne s’élevait qu’à deux, ce qui pour un langage aussi utilisé que PHP est surprenant, voire désolant. L’un des deux principaux développeurs du projet (Nikita Popov) tant au niveau du code, que des discussions autour des évolutions prévoit de réduire la voilure. Depuis trois ans, il était rémunéré par JetBrains pour travailler sur PHP. Cette fin d’engagement a poussé différentes personnes à finaliser la mise en place d’une fondation afin de supporter financièrement des contributeurs. Vous trouverez plus de détails dans cette annonce. C’est donc une très bonne nouvelle et il faut espérer que les dons des entreprises et des particuliers permettront d’intégrer, de diversifier et consolider le socle des contributeurs.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

PEST soit des tests unitaires

1 décembre, 2021 - 21:07

PEST est un nouveau framework en PHP, permettant de rédiger des tests unitaires.
Basé sur le célèbre (pour ceux qui développent en PHP) PHUnit, PEST a pour lui d’être plus élégant et simple à utiliser, et apporte notamment une plus grande fluidité dans l’écriture des tests unitaires.
Il a été créé par Nuno Maduro, membre de la core team de Laravel, en sponsorware. Depuis le printemps 2020, il est publié sous licence MIT. Il ne possède aucune filiation avec Laravel, on peut tout à fait s’en servir sans.
Petit tour d’horizon !

(tous les exemples de code de cette dépêche proviennent de la documentation officielle de PEST)

Sommaire Premiers tests

Pour commencer, voyons à quoi ressemble un test basique, avec PEST.

<?php test('asserts true is true', function () { $this->assertTrue(true); expect(true)->toBeTrue(); });

Contrairement à PHPUnit, qui regroupe chaque test dans une méthode de classe, chaque test dans PEST consiste à appeler la fonction test en lui passant 2 paramètres : la description du test (texte libre) et une fonction anonyme (Closure) contenant le code du test proprement dit. Le tout dans un simple fichier PHP (pas de classe, pas de namespace, rien de tout ça n’est nécessaire).

Comme PEST repose sur PHPUnit, on peut utiliser les méthodes assertXXX déjà existantes et connues de tous, à travers $this (qui est un objet de type PHPUnit\Framework\TestCase, ce qui montre que PEST est une surcouche à PHPUnit, avec du sucre syntaxique dedans).
Mais on peut aussi utiliser les nouvelles méthodes toBeXXX mises à notre disposition par PEST, et dont on parlera plus loin.

Si le test ci-dessus réussit, PEST affichera :

✓ asserts true is true

À noter que la fonction test a une petite sœur : it (même signature). La seule différence est que cette dernière affichera ceci, si le test réussit :

✓ it asserts true is true Expectations

Bien que PEST puisse s’utiliser comme PHPUnit (ce qui permet doucement de basculer d’un framework à l’autre), on peut bien évidemment aller plus loin, en tirant profit de sa spécificité : les expectations.
Concrètement, cela consiste en une méthode expect, à qui on passe la variable à tester, et toute une série de méthodes fluides (fluent interfaces) qui vont chacune vérifier que la variable respecte telle ou telle règle.

Reprenons l’exemple du début :

<?php test('expect true to be true', function () { // assertion $this->assertTrue(true); // expectation expect(true)->toBe(true); });

On voit que la méthode toBe vérifie que la valeur true (passée en paramètre de la fonction expect) est bien égale à true.

Voyons maintenant un cas un peu plus poussé (et plus proche de ce qu’on peut être amené à écrire, dans la vraie vie) :

expect($user)->toBeInstanceOf(User::class);

Ici, la méthode toBeInstanceOf vérifie que la variable $user est bien de type User.

On ne va pas lister ici la palanquée de méthodes toBeXXX qui existent : la documentation est là pour ça, avec un exemple pour chacune d’elles.

Rappelons toutefois qu’il est tout à fait possible de chaîner les appels de méthodes, pour tester plusieurs choses sur une même valeur.

Exemple :

expect('{"name":"Nuno","credit":1000.00}') ->json() ->toHaveCount(2); Higher Order Tests

Avec le chaînage des méthodes vient aussi une autre possibilité de PEST : pouvoir tester les valeurs au sein de la variable passée à la fonction expect. Ainsi, plutôt que de faire plusieurs appels à expect (ce qui reste tout à fait possible), comme suit :

expect($user->first_name)->toEqual('Nuno'); expect($user->last_name)->toEqual('Maduro'); expect($user->withTitle('Mr'))->toEqual('Mr Nuno Maduro');

On peut tout à fait faire ceci :

expect($user) ->first_name->toEqual('Nuno') ->last_name->toEqual('Maduro') ->withTitle('Mr')->toEqual('Mr Nuno Maduro');

Et là, on commence à toucher à ce qui rend PEST si attrayant : le chaînage est sans limite ! On peut tester toutes les données contenues à l’intérieur de la valeur passée en paramètre à expect, que ce soit les propriétés d’un objet, comme on vient de le voir, ou les différents éléments d’un tableau, comme ci-dessous :

expect(['name' => 'Nuno', 'companies' => ['Pest', 'Laravel']]) ->name->toEqual('Nuno') ->companies->toHaveCount(2)->each->toBeString

(notez l’usage de each, qui permet de boucler sur les sous-éléments du tableau)

Comme dit précédemment, il n’y a pas de limite dans le chaînage, ni dans le parcours en profondeur d’un objet ou d’un tableau.
Ainsi, il est tout à fait possible d’aller chercher les propriétés d’un objet, et de tester qu’elles répondent elles aussi à certains critères.

Exemple :

expect($user) ->companies->first()->owner->toBeInstanceOf(User::class)->not->toEqual($user) ->name->toEqual('Nuno');

Dans cet exemple, on comprend que l’objet $user a 2 propriétés testées : companies (qui semble renvoyer une liste d’objets), dont on vérifie que le owner du premier élément est bien un objet de type User, mais n’est pas $user. Et name, dont on vérifie la valeur. Ici, name se rapporte à $user, et non à companies : PEST est capable de revenir à l’objet initialement traité (celui passé en paramètre à expect). Et ce, sans limite !

Custom expectations

La liste des expectations a beau être très grande, et de nouvelles méthodes apparaissent chaque semaine, il y a toujours un moment où il manque celle dont on a besoin, pour couvrir son cas particulier.

Fort heureusement, PEST permet l’ajout de nouvelles méthodes, grâce à la méthode extend().

Exemple :

// tests/Pest.php expect()->extend('toBeWithinRange', function ($min, $max) { return $this->toBeGreaterThanOrEqual($min) ->toBeLessThanOrEqual($max); }); test('numeric ranges', function () { expect(100)->toBeWithinRange(90, 110); }); Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

SPIP — Émission « Libre à vous ! » du 23 novembre 2021 — Podcasts et références

1 décembre, 2021 - 21:07

123e émission « Libre à vous ! » de l’April. Podcast et programme :

  • découvrir, en savoir plus sur SPIP (logiciel libre destiné à la création de sites web) avec Arnaud Martin (ARNO*), Anne-lise Martenot (touti), et Jean Galland (chankalan)
  • chronique de Typhaine Bonnet sur le droit à la décompilation des logiciels
  • chronique de Jean-Christophe Becquet sur « Le livret du petit goûteur »

Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune. Vous pouvez laisser un message sur le répondeur de la radio, pour réagir à l’un des sujets de l’émission ou poser une question. Le numéro du répondeur : +33 9 72 51 55 46.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Libervia v0.8 « La Cecília »

1 décembre, 2021 - 21:06

Je suis fier d'annoncer la sortie de Libervia 0.8 « La Cecília » (anciennement nommé « Salut à Toi »), après plus de 2 ans de développement.

Libervia est un client XMPP multi-interfaces qui ne se concentre pas uniquement sur la messagerie instantanée et intègre des fonctionnalités telles que le blogage, le partage de fichiers, les albums photos, ou encore la gestion d'événements. Il a été mentionné plusieurs fois sur ce site sous son ancien nom « Salut à Toi ».

Cette version est une avancée majeure pour préparer le futur du projet. Voyons les principales nouveautés.

Sommaire Changement de nom

Par soucis de simplicité, le projet a été renommé en « Libervia » (qui était auparavant le nom du frontal web), et tous les frontaux officiels ont maintenant un nom évident comme Libervia Web, Libervia Desktop/Mobile (c'est le même frontal dans les 2 cas), Libervia CLI pour Command-Line Interface (interface en ligne de commande), et Libervia TUI pour Terminal User Interface (interface utilisateur pour terminaux). Le backend (service d'arrière-plan) devient, comme vous pouvez le deviner, Libervia Backend. Les anciens noms sont toujours utilisés comme alias.

En plus de la volonté de simplification, le changement de nom a été fait pour s'adapter à un public international : certaines personnes pensaient que « Salut à Toi » était réservé à des personnes francophones uniquement. Espérons que ce sera plus simple pour tout le monde, et que les gens ne seront plus perdus avec tous les noms qui étaient utilisés auparavant.

Notez que le changement de nom influence aussi votre fichier de configuration qui s'appelle désormais libervia.conf (sat.conf fonctionne toujours pour le moment). Les sections y ont été mises à jour avec de nouveau noms (pour configurer l'interface en ligne de commande, vous devez maintenant utiliser la section [cli] au lieu de [jp], pour l'interface web, c'est à présent [web] au lieu de [libervia]). Veuillez vérifier la documentation si nécessaire.

Changements techniques

Libervia a été porté en Python 3, ce qui a ouvert la porte à d'autres changements.

Brython a été intégré à Libervia Web, pour remplacer "Pyjamas" (un port en Python de GWT), qui n'était plus maintenu.

Nunjucks est aussi désormais intégré à Libervia Web, ce qui permet l'utilisation commune de certains modèles avec Jinja. C'est particulièrement utile pour faire des pages qui fonctionnent avec ou sans JavaScript.

L'implémentation d'OMEMO a été complétée avec le chiffrement des salons de discussion (MUC) et des fichiers (via XEP-0454: OMEMO Media Sharing).

De nombreuses autres modifications ne sont pas expliquées dans cette note pour éviter de la rendre indigeste. Vous pouvez vous référer à la liste des changements (en anglais) pour plus d'informations.

Nouveau thème par défaut pour Libervia Web

Un nouveau thème basé sur le très bon cadriciel CSS Bulma est devenu le thème par défaut. Grâce à lui, l'interface est plus claire et agréable à utiliser.

Invitations

Un système d'invitation simple a été intégré au frontal web, et il peut être utilisé soit pour donner accès à quelque chose à quelqu'un ayant déjà un compte XMPP, soit pour inviter quelqu'un par courriel. Le but est d'être capable de partager des choses (comme un album photo ou un événement) avec famille et amis sans s'attendre à ce qu'ils ou elles installent un logiciel ou créent un compte quelconque.

Listes

Un gestionnaire de tickets décentralisé est implémenté depuis la verison 0.7, et il est notamment utilisé pour gérer les tickets de Libervia lui-même. Jusqu'ici, il fonctionnait grâce à une fonctionnalité non standard disponible uniquement sur Libervia Pubsub (anciennement « SàT Pubsub », un composant Pubsub/PEP indépendant du serveur développé en parallèle de Libervia).

Cette fonctionnalité a été renommée avec le terme plus générique « listes » et utilise désormais XEP-0346: Form Discovery and Publishing, ce qui la rend utilisable avec un service pubsub générique.

Toutes sortes de listes peuvent être créées, que ce soit des tickets pour suivre les rapports de bogues ou demandes de fonctionnalités pour un projet, des listes de tâches à faire, de course, etc. Grâce à l'utilisation de XMPP pubsub, ces listes peuvent être fédérées, et les permissions peuvent être gérées facilement (pour, par exemple, permettre aux membres de la famille de modifier une liste de courses).

Actuellement, 3 types de listes sont disponibles (tickets génériques, tâches, courses), mais on peut s'attendre à en voir plus dans les futures versions.

Albums photo

Des nombreuses améliorations ont été faites pour les albums photo du frontal web. Ils peuvent désormais être créés ou supprimés depuis Libervia Web, des photos ou des vidéos peuvent être téléversées, un diaporama utilisable avec un écran tactile et/ou sur petits écrans est disponible, ogv.js a été intégré pour rendre possible le visionnage de vidéos en Ogg Vorbis/Opus/Theora ans WebM VP8/VP9/AV1 sur les plateformes qui ne le supportent pas nativement et le système d'invitations mentionné plus haut a été intégré.

Bureau

L'interface utilisateur de Libervia Desktop a également été mise à jour : la barre de menu supérieure a été supprimée, le glisser/déposer de fichiers est maintenant possible suivant la plateforme, la messagerie instantanée a un défilement infini, un nouvel écran de « sélection de conversation » rend le choix d'une entité avec qui discuter ou d'un salon à joindre plus faciles, les pièces jointes des messages sont affichées de manière plus agréable, entre autres améliorations.

Du travail a aussi été effectué sur Libervia Mobile (qui ne fonctionne que sur Android pour le moment), mais ce frontend n'est pas encore assez stable pour les utilisateurs finaux.

Ligne de commande

L'interface en ligne de commande est à présent entièrement documentée (en anglais) et suite au changement de nom peut être utilisé soit avec la commande libervia-cli, soit la version courte li (l'ancien jp fonctionne encore pour le moment). Parmi les nouvelles commandes on peut mettre en avant li file get qui peut télécharger un fichier avec la gestion du schéma aesgcm (c.-à-d. « OMEMO Media Sharing », le partage de média via OMEMO), qui en fait une sorte de wget avec OMEMO. li file upload gère aussi le chiffrement de bout en bout, il est ainsi facile de partager un fichier chiffré depuis la ligne de commande ou un script.

La couleur d'arrière-plan est maintenant automatiquement détectée sur les émulateurs de terminaux compatibles et le thème est choisi en conséquence.

Mais aussi… Composant de partage de fichiers

Libervia peut s'utiliser comme un composant (ce qui peut être vu comme un plugin générique pour serveur XMPP), et il inclut un composant de partage de fichiers.

Ce composant stocke les fichiers qui peuvent être retrouvés soit selon les permissions accordées, soit publiquement.

Les fichiers peuvent être téléversés ou téléchargés via XEP-0234: Jingle File Transfer et XEP-0363: HTTP File Upload est maintenant aussi implémenté, ce qui rend possible de partager des fichiers avec des liens HTTPS.

Ce composant peut maintenant être utilisé pour remplacer les implémentations internes aux serveurs XMPP de « HTTP File Upload ». En plus de la gestion des permissions fines, il n'y a pas de taille limite pour les fichiers et des quotas par utilisateurs peuvent être mis en place. Veuillez vous référer à la documentation pour voir comment faire. Les fichiers téléversés peuvent être retrouvés en utilisant XEP-0329: File Information Sharing et supprimés grâce aux commandes Ad-Hoc (XEP-0050: Ad-Hoc Commands).

Ce composant est nécessaire pour utiliser la fonctionnalité d'album photos.

Libervia Pubsub

Un composant Pubsub/PEP (anciennement appelé « SàT Pubsub ») est développé en parallèle de Libervia. Il vise à fournir une implémentation complète et indépendante du serveur.

Libervia Pubsub est publié en même temps que le client XMPP Libervia, et a, lui aussi, été porté sur Python 3.

Parmi les nouveautés, la recherche en texte plein a été implémentée (XEP-0431: Full Text Search in MAM), ainsi que la XEP-0346: Form Discovery and Publishing qui remplace les schémas de nœud (qui étaient non standard), et PEP fonctionne à présent pour le serveur lui-même, ce qui le rend utilisable pour la XEP-0455: Service Outage Status.

Images Docker

Les images Docker on été mises à jour et déplacées directement dans le dépôt libervia-backend (dans le sous-dossier docker).

Site officiel

Le site officiel a été mis à jour avec un nouveau thème (basé sur le nouveau thème de Libervia Web).

Installation

Libervia est disponible sur plusieurs distributions GNU/Linux (au moins Debian et dérivées et Arch Linux). Malheureusement, la version actuellement dans Debian n'est pas à jour (à cause d'une publication à des dates différentes de Debian et Libervia), espérons que la nouvelle version sera disponible dans un dépôt « backport » rapidement.

Vous pouvez facilement installer Libervia sur n'importe quelle distribution en utilisant pipx:

$ pipx install libervia-backend $ pipx install libervia-desktop

Ensuite lancez libervia-backend et un frontal (comme libervia-cli ou libervia-desktop). Reportez-vous à la documentation pour plus de détails.

Des images Docker sont disponibles, et en particulier un fichier web-demo.yml peut être utilisé avec docker-compose pour rapidement mettre en place une démo locale :

$ hg clone https://repos.goffi.org/libervia-backend $ cd libervia-backend/docker $ docker-compose -f web-demo.yml up

Ensuite ouvrez votre butineur sur http://localhost:8880 et utilisez l'identifiant demo avec le mot de passe demo.

Et après ?

Un projet basé sur Libervia a été sélectionné par NLnet pour une subvention. Ce projet est en 2 parties : travailler sur une passerelle XMPP ⟺ ActivityPub, puis sur le chiffrement de bout en bout pour pubsub et les fichiers. Vous trouverez plus d'informations (en anglais) sur ce billet de blog et sur la page du projet NLnet. Ce projet est déjà bien entamé, et vous pouvez suivre la progression sur mon blog (qui est propulsé par Libervia/XMPP) ou sur le système de gestion de tickets (lui aussi propulsé par Libervia/XMPP). Un énorme merci à NLnet/NGI0 Discovery Fund !

D'autre part, il est prévu de travailler pour améliorer l'expérience utilisateur et la fonctionnalité de messagerie instantanée (en particulier sur le frontal web). Libervia vise à être particulièrement adapté pour les réseaux privés destinés à la famille et aux amis.

Enfin, j'ai eu la bonne surprise de voir que Libervia Web est utilisé pour le blog de jmp.chat. JMP est une entreprise qui vous fournit un numéro de téléphone qui peut être utilisé avec XMPP et SIP (vous pouvez appeler ce numéro depuis un téléphone traditionnel et recevoir l'appel vocal depuis un client XMPP)

Voilà qui conclut cette note de version. À bientôt !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Le wiki d'Herminien, un wiki destiné aux novices pour un numérique respectueux et émancipateur

29 novembre, 2021 - 23:19
Le wiki d’Herminien

J’ai commencé la rédaction de ce Wiki pendant le premier confinement. Je le destinais à ma famille et à mes ami·e·s. Le but : rassembler tout ce que j’ai envie de leur dire quand il s’agit de numérique de manière simple, abordable, afin que n’importe qui puisse s’en emparer. J’aborde le fonctionnement les choses basiques internet, les moyens de se protéger et je tiens une liste d’alternatives aux géants du numérique.

Depuis un an et demi, certaines personnes de mon entourage ont quitté Gmail, Facebook, utilisent un gestionnaire de mot de passe ou Big Blue Button à la place de Zoom. Victoire !

Ainsi, je le partage aujourd’hui au plus grand nombre, car j’espère simplement donner l’envie à d’autres personnes de faire le pas vers un numérique plus éthique.

N’hésitez pas à me donner vos avis !

Le Wiki n’est pas « participatif » pour plusieurs raisons :
  • l’édition du wiki n’est pas très intuitive. Écrire un article nécessite la prise en main de « balises » de mise en forme . Par exemple : https://wiki.pcet.link/proteger/gafam?do=edit

  • l’outil « wiki » est pour l’instant une manière très utile pour moi d’organiser des informations, avant de penser à la collaboration.

  • c’est la première fois que je le partage au grand public ! Depuis sa création, il n’est visité que par quelques personnes qui, pour la plupart, ne savent même pas comment fonctionnent les applications sur leur téléphone et viennent me voir pour ce genre de soucis (je suis un peu le garagiste de mon entourage :-D).

  • alors de là à mettre en place des inscriptions, de l’édition et de la modération, c’est une autre affaire qui demande du temps et de l’énergie ! Mais j’y pense !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

SimpleLogin 2.0: recevoir et envoyer des mails de manière anonyme. Protéger nos boites mails.

29 novembre, 2021 - 10:38

SimpleLogin est à la fois un service d’alias de courriels et une plate‑forme totalement libre (sous licence MIT) que l’on peut auto‑héberger. Il a été présenté en version bêta début 2020 ici-même.

Depuis, le service a ajouté de nouvelles fonctionnalités et est devenu le référent parmi les services de masquage d’adresse mail. Avec l’arrivée de Hide My Email d’Apple, Masked Email d’1Password, Firefox Relay de Mozilla, le besoin de cacher notre adresse mail (ou notre identité numérique) est devenu populaire.

SimpleLogin est un service de masquage d’adresse mail: il permet de créer rapidement un « alias d’e-mail » qui cache notre vraie boîte mail. Les mails envoyés à un alias sont redirigés à notre boîte mail. On peut répondre à un mail comme d’habitude: la réponse sera envoyée de notre alias et notre vraie boîte mail reste cachée. Nous pouvons aussi envoyer des mails à un contact à partir d’un alias: un alias est donc comme une adresse mail « normale ».

Créé en France, 100% open source, disponible sur tous les plates-formes, SimpleLogin est considéré par les experts en vie privée comme la solution la plus avancée aujourd’hui. Il vient aussi de recevoir le prix du « meilleur projet Open Source » lors de l’Open Source Experience organisé à Paris début novembre 2021.

Quelques nouvelles fonctionnalités notables dans SimpleLogin  :

  • Vous pouvez ajouter vos propres noms de domaines dans SimpleLogin. Vous pouvez aussi utiliser SimpleLogin comme une solution pour gérer des mails « business ».
  • Si vous n’avez pas de nom de domaine, vous pouvez en réclamer des sous-domaines de SimpleLogin.
  • L'encryption PGP est maintenant prise en charge. Pratique si votre boîte mail supporte PGP (ProtonMail, GPGTools, Thunderbird, Mailvelope, etc).
  • Intégration avec https://haveibeenpwned.com qui nous alerte si un de nos alias est apparu dans une fuite de données.
  • L’amélioration d’extension navigateur (Chrome/Brave, Firefox, Edge) et des apps iOS, Android.

Disponible en version gratuite (jusqu’à 15 alias) ou Premium ($30/an), SimpleLogin vise à développer les services similaires pour numéros de téléphone et cartes bancaires.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Metabase - Business intelligence open source

28 novembre, 2021 - 10:14

Je forme de longue date des utilisateurs à Dolibarr et j’ai été amené à côtoyer toutes sortes d’entreprises, pris conscience de leurs besoins et mode de fonctionnement. Quand Philippe Scoffoni d’Open-DSI, m’a présenté Metabase, un outil d’analyse de données, j’ai tout de suite été emballé, c’était clairement l’outil idéal pour tout un tas de structures.

C’est aussi ce qui m’a poussé ensuite à écrire un livre et maintenant à vous présenter l’outil. Bien sûr, il a aussi ses limites, mais sa simplicité de mise en place au regard de tout ce qu’il permet de faire mérite le détour. Et surtout ce serait dommage de ne pas en profiter.

Metabase, de la BI1 open-source ?

Initialement, Metabase a été développé par un incubateur américain pour suivre les performances des start-ups qu’il finançait. Aujourd’hui, l’application est distribuée sous deux licences : une licence libre (AGPL) et une licence non-libre (Metabase Commercial License).

La version open-source est téléchargeable sur GitHub ou sur le site de Metabase sous différents paquets (docker ou archive jar) et le développement est assuré par l’équipe de Metabase, mais les contributions sur GitHub sont les bienvenues !

Le principe

Le fonctionnement est simple : on connecte Metabase à une base de données et on en contrôle le modèle. On peut alors interroger les données via un assistant, sans connaissance du langage SQL. On peut enfin choisir les options d’affichage (histogramme, tableau, courbes…) et enregistrer ces interrogations pour en afficher les résultats à la demande. Les interrogations de données peuvent faire l’objet d’un partage public ou privé, être téléchargées ou ajoutées à des tableaux de bord.

Installation et bases de données supportées

Metabase fournit des packages .jar ou docker.

Les bases de données dont Metabase sait lire les données sont nombreuses :

  • BigQuery
  • Druid
  • Google Analytics
  • H2
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • Presto
  • Redshift
  • Snowflake
  • SparkSQL
  • SQL Server
  • SQLite
  • Vertica
Préparation des données

Une fois l’installation et la connexion à une base de données réalisées, on prépare ses données en indiquant les tables et leurs colonnes qu’on souhaite pouvoir consulter et on contrôle/ajuste le modèle de données. C’est une opération à ne faire qu’une fois, mais importante : il s’agit de vérifier le type des données contenues dans les champs à interroger (date, quantité, montant, etc.), que les clés primaires sont bien définies, tout comme la cible des clés étrangères.

(source)

Interrogation de ses données

Metabase est un requêteur SQL dont l’assistant ergonomique et intuitif permet de se passer de la connaissance du langage SQL.
Pour des interrogations complexes, on peut créer des vues sur la base de données et les interroger. Pour les connaisseurs du SQL, Metabase inclut un éditeur dans lequel saisir les requêtes SQL.

(source)

Une fois les résultats renvoyés, on leur applique la représentation graphique la plus adaptée parmi les seize disponibles.

(source)

Chacune dispose de ses propres paramétrages et personnalisations d’affichage et on peut les enregistrer pour les consulter à tout moment, les résultats étant mis à jour au moment de leur affichage.

(source)

On peut regrouper les interrogations de données dans des tableaux de bord thématiques sur lesquels ajouter divers filtres et options.

(source)

Perspectives

Pour une entreprise, la mise en place de Metabase est à la portée de n’importe quel prestataire.

Pour un prestataire informatique : il peut y voir la possibilité d’élargir simplement son offre en intégrant des outils de reporting très aussi simples d’utilisation.

  1. N. D. M. : BI ou business intelligence, le terme anglais pour informatique décisionnelle 

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Agenda du Libre pour la semaine 48 de l'année 2021

27 novembre, 2021 - 18:43

Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 28 événements (France: 27, internet: 1) est en seconde partie de dépêche.

N. D. M. : vu le contexte de pandémie de Covid‑19 et les restrictions locales ou nationales (Belgique, France, Québec et Suisse) sur les rassemblements, certains événements sont susceptibles d’être annulés (que les organisateurs aient pensé à mettre à jour l’Agenda du Libre ou non).

Sommaire [FR Lyon] Les permanences contre l’obsolescence - Le lundi 29 novembre 2021 de 17h00 à 19h00.

Au programme:
-Vente d’ordinateurs à prix solidaire
-Bidouillage de matériel informatique en tout genre
-Discussions circulaires et non obsolescentes
-Reconditionnement d’ordinateurs
-Initiation à Linux et aux logiciels libres

Ouvert à toutes et à tous

Superdesk : la salle de rédaction virtuelle libre

24 novembre, 2021 - 10:10

Superdesk est un logiciel libre (sous licence GNU Affero Public licence V3.0) destiné au monde du journalisme. Il propose une salle de rédaction virtuelle et la gestion de la chaîne de traitement (« workflow » en anglais) des articles de journaux.

Cette dépêche présente ce logiciel.

Note : je (Goffi) suis employé par l’organisation développant ce logiciel et ne suis donc pas neutre. Si vous avez des questions, je pourrai transmettre aux personnes compétentes si nécessaire.

Merci aux contributrices et contributeurs pour les relectures et corrections.

Sommaire

À qui s’adresse ce logiciel ?

Superdesk s’adresse avant tout aux agences de presse et aux journaux (voir « qui l’utilise ? »), mais aussi aux structures plus petites gérant des contenus de sites d’information. Une de ses grandes forces est qu’il peut s’adapter aux méthodes de travail (« workflow ») des organisations grâce à des possibilités de personnalisation poussées, ou, si besoin, au développement de fonctionnalités sur mesures.

Des concepts adaptés au journalisme

Comme son nom l’indique, Superdesk s’organise autour de la notion de bureaux (« desks ») qui sont liés à l’organisation du journal. Un bureau peut, par exemple, être lié à un thème (« politique », « média », « sport »), ou à une langue. Des utilisateurs sont associés aux bureaux, et il est possible de faire transiter les articles (de manière automatique ou non) entre eux (par exemple pour envoyer un article à une équipe pour le traduire, ou pour passer par une étape de relecture).

Dans le cycle de vie d’un article, les termes utilisés sont adaptés au milieu journalistique, ainsi on parlera de « take », d’archives légales, de mise à jour (« updates ») quand l’article est republié (avec un nouvel identifiant) avec un changement ou de correction quand l’article est modifié « sur place » (c.-à-d. en gardant son identifiant).

Les métadonnées internes se basent sur les normes de l'IPTC et en particulier ninjs.

Il est possible d’adapter les métadonnées à un environnement de travail et de facilement ajouter/éditer/supprimer des champs et leur « vocabulaire ».

Regroupement des sources (« ingest »)

Les journaux ou agences de presse reçoivent des informations de différentes sources (AFP et Reuters sont deux exemples très connus). Ces sources peuvent transmises via des moyens variés (API diverses, requêtes HTTP, Flux RSS, FTP, courriel) et dans des formats tout aussi variés.

Superdesk regroupe ces sources sous le terme générique d’« ingest » (que l’on pourrait traduire par « ingestion » ou plus simplement « source »). Chaque « ingest » se compose d’un « service d’alimentation » (feeding service) qui correspond au moyen de transmission évoqué ci-dessus, et d’un « parseur » (feed parser) qui analyse les différents formats pour créer les métadonnées correspondantes aux articles ou médias concernés.

Superdesk gère des formats communs comme Atom/RSS, tout comme les formats spécifiques au journalisme (NITF, NewsML 1, NewsML G2, ninjs, IPTC 7901), ou des API/formats spécifiques à certaines sources.

Édition

La rédaction d’articles étant une des tâches les plus importantes dans un journal, l’éditeur est logiquement soigné et adapté au travail à plusieurs.

Ainsi il est possible d’indiquer quelles fonctions d’édition riche doivent être disponibles ou non, d’incorporer des médias (et de les éditer directement depuis Superdesk), de faire des annotations, d’inclure des tableaux, d’embarquer du contenu extérieur (« embeds »), etc.

Les articles peuvent être commentés et des corrections peuvent être suggérées, des fonctionnalités particulièrement utiles dans le milieu du journalisme où il est fréquent que les articles passent par des phases de corrections, ou doivent être validés par le ou la redacteur·ice en chef·fe. Les suggestions de corrections sont mises en évidence à la manière d’un Libre Office ou de Google Docs.

Des indications utiles comme le nombre de mots/caractères ou le temps approximatif de lecture sont également disponibles.

Il est possible de configurer une prévisualisation de l’article afin qu’il apparaisse dans son thème final tel que le verront les lecteurs et lectrices.

Les articles sont créés avec des « profils de contenus » (« content profiles ») et des modèles (« templates ») qui sont la structure de l’article, avec les champs nécessaires, les éventuels médias, des contenus pré-remplis, etc. Il est possible de créer autant de profils/modèles que nécessaire, et de les lier à des bureaux en particulier.

Publication (« subscribers », « content API »)

Une fois les articles récupérés, édités, vérifiés, validés, et publiés, ils sont transmis à des « abonnés » (« subscribers »). Là encore un format est choisi (peu ou prou les mêmes que ceux des « feed parsers » lors de l’ingestion) et un type de distribution (correspondant au « feeding service » pour l’ingestion).

Il existe également une API REST pour retrouver les articles avec un outil interne (l’API des contenus ou « content API ») et une « API de production » qui s’utilise avec un service d’authentification, c’est-à-dire qu’il faut générer des permissions pour une durée spécifique pour qu’une application puisse l’utiliser (côté technique il s’agit d’OAUTH 2 avec un jeton JWT).

N’oublions pas « Newshub », un autre logiciel développé par Sourcefabric, qui permet de partager le contenu généré avec différents clients.

Gestion des archives et des médias

Les agences de presse ont souvent un système d’archives dédié pour les médias, et Superdesk peut les intégrer. Il devient alors facile d’ajouter des images, vidéos ou autre par un simple glisser/déposer dans l’article. Il est également possible d’ajouter des galeries d’images ou vidéos, et de faire de l’édition basique directement depuis Superdesk.

Adaptable à des chaînes de travail spécifiques

Un système de macros permet de modifier le contenu d’articles via des scripts (Python) soit automatiquement dans le cycle de vie d’un article, soit à la demande de l’utilisateur. Elles peuvent être utilisées pour tout un tas de raisons, allant de la conversion de devises au cours du jour à la préparation d’un article pour une traduction.

Il est possible de déplacer automatiquement un article dans un autre bureau / Desk en y appliquant optionnellement une macro si certaines conditions sont remplies (par exemple pour préparer une traduction, ou faire passer les articles avec une forte priorité dans un bureau dédié).

Chaque utilisateur se voit attribuer un rôle qui lui donne accès à un certain nombre de privilèges qui peuvent être finement réglés. Ceci est notamment utilisé par certaines agences pour donner un accès limité à des journalistes externes.

(image tirée du tutoriel en anglais « How to manage user roles and user access in Superdesk »)

Des services externes peuvent être intégrés au cycle de vie d’un article, par exemple des correcteurs orthographiques ou des services d’apprentissage automatique (« machine learning »). Ainsi des outils comme Grammalecte ou iMatrics (attribution d’étiquettes à un article via de l’apprentissage automatique) peuvent être utilisés directement dans Superdesk.

Il est courant d’ajouter des formats de fichiers spécifiques à telle ou telle organisation, ou d’utiliser des champs avec un vocabulaire dédié. Les profils de contenu sont très facilement personnalisables.

Composants et projets liés

Superdesk est extensible, et plusieurs composants importants sont développés en interne.

Planning

Ce composant permet de gérer les évènements (élections, événement sportif, etc.), et d’y gérer des assignations (qui doit écrire un article, prendre des photos, etc).

Analytics

Ce composant produit graphiques et données diverses.

SAMS

Le « Super Asset Management Service » (super service de gestion des ressources) permet une gestion avancée des divers fichiers dont vous pouvez avoir besoin, de les retrouver et réutiliser facilement dans divers articles.

Newshub

Déjà mentionné plus haut, Newshub peut être utilisé pour livrer vos contenus à des abonnés.

Publisher et Wordpress

Publisher, cet autre projet développé par Sourcefabric, peut être utilisé pour créer le site pour l’utilisateur final.

Si vous voulez intégrer Superdesk à une installation existante de Wordpress, il existe un plugin.

Liveblog

Liveblog est un outil pour afficher un flux d’information en temps réel (comme vous en avez très probablement déjà vu sur des sites d’informations).

Qui l’utilise ?

Il n’est pas possible de lister toutes les organisations qui utilisent Superdesk, mais parmi celles que l’on peut citer il y a :

Installation

Ce logiciel est installable sur Docker, ou manuellement sur Linux et MacOS.
Les sources sont disponibles sur GitHub.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Garradin - Émission « Libre à vous ! » du 16 novembre 2021 — Podcasts et références

22 novembre, 2021 - 18:21

122e «  Libre à vous !  » de l’April. Podcast et programme :

  • sujet principal : le gestionnaire d'associations libre Garradin, avec BohwaZ, développeur, Isabelle Dutailly, contributrice, et José Relland, bénévole à Oisux
  • la chronique « Les transcriptions qui redonnent le goût de la lecture » de Marie-Odile Morandi sur le thème « Valeurs du Libre, éthique de l’élu »

Rendez‑vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 FM en Île‑de‑France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune.

Vous pouvez laisser un message sur le répondeur de la radio, pour réagir à l’un des sujets de l’émission ou poser une question. Le numéro du répondeur : +33 9 72 51 55 46.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Proxmox Virtual Environment 7.1 est disponible

22 novembre, 2021 - 10:09

Les développeurs Proxmox ont aujourd’hui publié la version 7.1 de la plate-forme de virtualisation libre Proxmox Virtual Environment (VE). La solution est basée sur Debian 11.1 (“Bullseye”), et un noyau Linux 5.13. Proxmox a actualisé les différentes technologies à QEMU 6.1, LXC 4.0, Ceph Pacific 16.2.6 et inclut OpenZFS 2.1.

Principales nouveautés de la version 7.1 :
  • il est possible de définir la rétention de sauvegarde par tâche de sauvegarde via l’interface graphique.
  • pvescheduler : Les tâches de sauvegarde dans Proxmox VE sont maintenant exécutées par un nouveau démon planificateur, appelé pvescheduler. Ceci permet des options de planification plus flexibles.
  • à toute VM, on peut ajouter le Trusted Platform Module (TPM) 2.0. Cela permet aux utilisateurs d’installer et d’exécuter Windows 11. Cela peut être ajouté facilement via l’interface web.
  • les conteneurs de Proxmox VE 7.1 prennent en charge Fedora 35 et Ubuntu 21.10, ainsi que les distributions AlmaLinux et Rocky Linux. Les templates de conteneurs peuvent être compressés avec l’algorithme de compression sans perte Zstandard (Zstd).
  • l’authentification à deux facteurs (2FA) : Pour améliorer le contrôle d’accès, plusieurs seconds facteurs peuvent être configurés pour un seul compte. On a ajouté WebAuthn et les clés de récupération à usage unique. Tout cela peut être configuré à partir de l’interface web.

Proxmox Virtual Environment est une gestion de la virtualisation libre sous licence AGPL v3. Le développeur Proxmox Server Solutions propose un support d’entreprise à partir de 90 EUR par an et par processeur.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Revue de presse — novembre 2021

22 novembre, 2021 - 09:13

L’Open Source Experience est derrière nous. Pour vous consoler, de nombreuses sorties de bimestriels sont disponibles depuis début novembre ! Voici donc un petit tour subjectif et parti{e,a}l de la presse-papier sortie récemment, celle que vous pouvez encore trouver dans vos kiosques à journaux préférés.

Les nouveautés de novembre 2021 :

  • GNU/Linux Magazine France no 253, surfe sur les NFT ;
  • Linux Pratique no 128 et le cloud privé (et souverain ?) ;
  • MISC magazine no 118 vous initie aux techniques d’OSINT (Open Source INTelligence) ;
  • GNU/Linux Magazine hors‑série no 117 pose les bases de l’IA ;
  • Le Virus Informatique no 49 fusionne avec Pirate Mag' ;
  • MagPI no21 pour devenir un génie du Raspberry Pi.

Et toujours disponibles :

  • Planète Linux no 123 s’aventure sur le « Dark Web » ;
  • Linux Pratique hors‑série no 52 pousse l’apprentissage de Docker encore plus loin ;
  • Hackable no 39 crée un système d’affichage WiFi… à base d’ESP32 ;
  • La suite des Linux Identity Starter, Set et Kit no43, 51 et 47 respectivement, avec de la distribution Linux en masse pour ceux qui n’ont pas de connexion ou forfait adapté.

Tour d’horizon plus détaillé des nouveautés dans la suite de cette dépêche.
Bonnes lectures !

Les sommaires des numéros sortis en novembre 2021 GNU/Linux Magazine numéro 253

Au sommaire de ce numéro de novembre 2021 :

  • Génération automatique de NFT ;
  • Voyage initiatique vers la bio-informatique : en route pour l’aventure ;
  • Présentez du code de manière élégante en LaTeX ;
  • Une API de coroutines pour le langage C ;
  • Streamlit : concevez simplement vos applications graphiques multiplateformes Python ;
  • Techniques avancées avec AlaSQL.
Linux Pratique numéro 128

Au sommaire de ce numéro de novembre - décembre 2021 :

  • Le B-Boost comme si vous y étiez
  • Optimisez votre distribution Debian
  • Gérez votre stockage avec Stratis
  • Monter sa plateforme Cloud avec OpenNebula
  • Plus sûr et plus simple que Docker, connaissez-vous Singularity ?
  • Comment tester un rôle Ansible avec Molecule ?
  • Personnaliser Tomcat avec Ansible
  • Se préparer à un contrôle de la CNIL
MISC Magazine numéro 118

Au sommaire de ce numéro de novembre - décembre 2021 :

  • Techniques de contournement de la supervision des EDR ;
  • Audit d’applications Android, Java ne répond plus !
  • Description du système de fichiers ExFAT ;
  • Dossier : Techniques d’OSINT à l’usage des honnêtes gens ;
    • OSINT : de l’importance d’une approche méthodologique décentrée des outils ;
    • L’Open Source Intelligence, un jeu ?
    • Faciliter son Red Team grâce à l’OSINT ;
  • Exemples d’utilisation d’un TPM (Trusted Platform Module) ;
  • Première plongée dans le noyau de Windows ;
  • CTF : un outil pour la sensibilisation large à distance.
GNU/Linux Magazine hors‑série numéro 117

Au sommaire de ce numéro de novembre - décembre 2021 :

  • Concevoir un outil Java en ligne de commande avec Quarkus ;
  • Dossier : Les bases de l’IA ;
    • L’IA est partout !
    • Au début était le neurone ;
    • Un bon framework IA, ça fait tout, c’est d’ailleurs à ça qu’on les reconnaît !
    • Exploiter des modèles préentraînés ;
    • Deepfake audio : comment est-ce que ça marche ?
  • Les bases de la visualisation de données avec Matplotlib.
Le Virus Informatique numéro 49

Extrait du sommaire de ce numéro du dernier trimestre 2021, hybridé avec Pirate Mag' :

  • News en pagaille ;
  • Affaire Quantic Dream : nouvelles du front judiciaire ;
  • Prix exorbitant des vieux jeux vidéo : un marché truqué ?
  • Le passe sanitaire ne passera pas par nous ;
  • Paris sportifs long terme : l’autre arnaque en ligne de Maxence Rigottier ;
  • Souvenirs sur les piratages de Télécartes ;
  • MSX : un dernier VR pour la route ?
  • Contourner le verrouillage FRP des appareils sous Android ;
  • YesSIM : une carte SIM révélatrice de codes PIN !
  • Parcs à vélos « sécurisés » : le loup dans la bergerie ?
  • De mystérieuses serrures NFC à explorer !
  • Dangereux, les chargeurs par induction ?
MagPi numéro 21

Au sommaire de ce numéro de novembre - décembre 2021 :

  • Devenez un Génie du Raspberry Pi ;
  • Raspberry Pi PoE+ Nouvelle version de HAT ;
  • Projets
    • Moniteur de température ;
    • Robot-poisson Bluebot ;
    • Pico Pong ;
    • RUHAcam ;
    • Rotateur de plante ;
    • Souricière bienveillante ;
    • Bop It, contrôleur Minecraft ;
    • PrivacyMic ;
    • Feu de signalisation pour la qualité de l’air ;
    • Kenbak-2/5 ;
  • Tutoriels
    • Construire une borne d’arcade : décoration du meuble ;
    • Pico-Voice ;
    • Création d’interfaces graphiques en Python avec guizero : jeu Flood-it ;
    • Capteur de temperature du Raspberry Pi Pico ;
    • Réaliser le serveur domestique ultime avec Raspberry Pi ;
    • Construire une borne d’arcade : RetroPie et Steam Link ;
    • Création d’interfaces graphiques en Python avec guizero : duo d’émojis ;
  • Créer des jeux avec le Raspberry Pi ;
  • Banc d’essai
    • micro:Pi ;
    • Marty le Robot V2 ;
    • pi-top [4] Robotics Kit et platine d’extension ;
  • Communauté
    • Interview : Al Pemartin ;
    • Interview : Zack Freedman ;
    • Raspberry Pi au sirop d’érable.
Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur