↩ Accueil

Vue lecture

Réviser SQL en jouant au détective : SQLNoir

SQL Noir est un jeu libre (licence MIT) par Hristo « Cool as a cucumber » Bogoev, où vous incarnerez le rôle d’une personne enquêtant sur un crime, mais à grand renfort de requêtes SQL. Le SQL pour Structured Query Language ou « langage de requêtes structurées » est un langage informatique normalisé servant à exploiter des bases de données relationnelles (Wikipédia).

Logo SQL Noir

Bref vous avez une interface web qui vous permet de faire des requêtes dans les bases de données de témoins, suspects, enregistrements audio ou vidéo, etc., et vous devez trouver qui est la personne ayant le commis le crime. Sur le principe vous allez identifier des éléments dans les données, traquer les infos correspondantes ou manquantes, faire le lien entre les éléments, repérer des liens entre personnes ou des transactions, et tout cela avec des requêtes SQL.

Il y a actuellement 4 enquêtes disponibles (et probablement plus à venir). C'est rapide, ludique, joli et ergonomique. L'outil aide en suggérant les mots clés SQL ou les noms de tables par exemple. L'outil dispose d'une zone pour prendre des notes, ce qui est à la fois pratique pour garder trace des requêtes SQL, mais surtout des résultats, et vous en aurez besoin pour les cas compliqués.

Le premier commit du projet date du début du mois, et le projet est donc assez jeune, tout en étant à la fois prometteur, et déjà très sympa.

Note: full disclosure, LinuxFr.org utilise du SQL. Cette information est-elle pertinente ici ? Absolument pas, mais des fois il y a des infos inutiles dans les enquêtes. Et merci à @siltaer d'avoir partagé ce message qui m'a fait découvrir ce jeu.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Décès de Jean-Pierre Archambault

Jean-Pierre Archambault est décédé le 23 février 2025. Ancien enseignant et professeur agrégé de mathématiques, il présidait notamment l'association Enseignement Public et Informatique (EPI). Il a été un acteur essentiel des ressources libres et des logiciels pour l'Éducation nationale en France et dans la francophonie.

L'étiquette jean-pierre_archambault vient nous remémorer combien il était actif autour du logiciel libre et de l'éducation depuis longtemps, que nous le croisions régulièrement lors de conférences et d'événements, et combien il était une personne appréciée, active, humaine et de convictions.

LinuxFr.org présente ses plus sincères condoléances à sa famille et à ses proches.

Jean-Pierre Archambault (photo tirée d'une citation pour l'April)

Commentaires : voir le flux Atom ouvrir dans le navigateur

02/25 ArcoLinux 25.03.05

ArcoLinux (previously known as ArchMerge) is a distribution based on Arch Linux. The development takes places in three branches - ArcoLinux, ArcoLinuxD and ArcoLinuxB. ArcoLinux is a full-featured distribution that ships with the Xfce desktop (as well as Openbox and i3 window managers). ArcoLinuxD is a minimal distribution that includes scripts that enable power users to install any desktop and application. ArcoLinuxB is a project that gives users the power to build custom distributions, while also developing several community editions with pre-configured desktops, such as Awesome, bspwm, Budgie, Cinnamon, Deepin, GNOME, MATE and KDE Plasma. ArcoLinux also provides various video tutorials as it places strong focus on learning and acquiring Linux skills.

App Grid Wizard Puts GNOME Shell Shortcuts into Folders

App Grid WizardThe application picker (aka app grid) in GNOME Shell is pretty perfect as it comes, showing launchers for installed apps plus the ability to rearrange them using drag and drop and create custom folders to group apps together. Some folks prefer a little more order. I’ve spotlighted a few Ubuntu app grid tweaks over the years, from one that puts app shortcuts in alphabetical order to ones which restores ‘missing’ shortcuts for apps pinned to the Ubuntu Dock. And now a new app grid helper has appeared – one sure to appeal to those with a preference for keeping things […]

You're reading App Grid Wizard Puts GNOME Shell Shortcuts into Folders, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

AMD Ryzen 9000 vs. Intel Core Ultra Arrow Lake On Linux For Q1-2025 In ~400 Benchmarks

For those wondering how the latest AMD Ryzen 9000 "Zen 5" series and Intel Core Ultra Series 2 "Arrow Lake" desktop processors are battling it out on Linux, here are some fresh benchmarks on Ubuntu Linux with the latest software updates as well as the newest system BIOS updates for a fresh, all-new look at these Intel Core Ultra and AMD Ryzen desktop CPUs on Linux.

Armbian 25.2 Released with Support for New Boards, Linux 6.12 LTS, and More

Armbian 25.2 distribution for ARM devices is now available for download with support for new boards, Linux kernel 6.12 LTS, as well as various improvements. Here’s what’s new!

The post Armbian 25.2 Released with Support for New Boards, Linux 6.12 LTS, and More appeared first on 9to5Linux - do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.

Revue de presse de l’April pour la semaine 8 de l’année 2025

Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

[clubic.com] DeepSeek continue de bousculer l'IA en partageant plus largement ses modèles

✍ Samir Rahmoune, le vendredi 21 février 2025.

La start-up chinoise continue de faire son trou dans le monde des grandes IA. Et elle se distingue encore par son engagement pour l’open source.

Et aussi:

[leParisien.fr] Polémique Wikipédia: cinq minutes pour comprendre les critiques qui visent l'encyclopédie en France - Le Parisien

Le vendredi 21 février 2025.

Le Point, magazine hebdomadaire d’actualité français, a déclenché une guerre médiatique contre Wikipédia. Ils s’accusent mutuellement, l’un d’intimidation, l’autre de désinformation.

Et aussi:

[Next] Donald Trump supprime l'indépendance des agences de régulation FTC, FCC et SEC

✍ Martin Clavey, le jeudi 20 février 2025.

Les agences FTC, FCC et SEC régulent les marchés américains et surveillent notamment les entreprises américaines du numérique. Elles opéraient jusque ici de manière indépendante du pouvoir exécutif fédéral américain. Un décret de Donald Trump publié le 18 février dernier veut leur imposer une supervision présidentielle.

[Next] GNOME 47.4 et 48 Beta disponibles: quelles nouveautés?

✍ Vincent Hermann, le mardi 18 février 2025.

Durant le week-end, l’équipe de développement de GNOME a publié coup sur coup deux versions. La première, stable, contient des améliorations pour l’actuelle branche 47 et est diffusée sur l’ensemble des distributions Linux l’utilisant. L’autre, en bêta, représente la prochaine branche majeure et contient des nouveautés plus importantes.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Illico Editor : nouveautés depuis 2021

Illico Editor est un (petit) couteau suisse de la qualification de données développé à l’origine pour permettre aux experts métiers de transformer les données sans recourir à la programmation… le tout dans une simple page HTML (pas de serveur Web) donc une utilisation à travers le navigateur.

Aujourd’hui, plus de 150 transformations de données sont disponibles prêtes à l'emploi.

Particularité : chaque transformation exécutée ainsi que son résultat sont inscrits dans un journal de bord créant ainsi une sorte de procédure-type sans effort.

Publié sous licence GPL, le code d’Illico est globalement très basique : standards HTML5/CSS3/JS, et zéro dépendance, bibliothèque ou appel à un code tiers. Les données restent dans le (cache du) navigateur.
Les algorithmes sont très simples. La complexité est plutôt liée à la manière d’imaginer de nouvelles transformations de données, à la fois génériques (paramétrables) tout en restant simples pour l’utilisateur (nombre réduit de paramètres).

Sommaire

Quelques limites à connaître

Dans mon usage, des crashs du navigateur ont été constatés sur des grands jeux de données avec les fonctionnalités qui sollicitent le plus grand nombre de comparaisons (précisément le calcul de la distance d’édition / lignes).

Pour un grand volume de données, mon conseil serait d’opter pour Opera/Vivaldi qui proposent à l’utilisateur d’augmenter la mémoire allouée à la page (plutôt que de faire crasher l’onglet/navigateur) ; de réduire le jeu de données aux colonnes/lignes à traiter (ce qui réduirait la taille), avant de se lancer dans les transformations ; ou d’opter pour des outils plus adaptés à cette volumétrie.

Un test sur des données factices m’avait permis d’identifier des tailles limites de jeu de données : https://illico.ti-nuage.fr/doc/build/html/fct/principes.html#jeu-de-donnees-volumineux

 Objet de la dépêche

Cette dépêche fait écho à la précédente de janvier 2021.

Au-delà des corrections de bug et des améliorations (gestion des nombres décimaux et négatifs pour les intervalles, options supplémentaires pour décider l’interprétation de “valeurs” vides), je voulais présenter ici la trentaine de nouvelles fonctionnalités/traitements et les nouveaux tutoriels.

Avant de commencer

Dans Illico, l’expression valeurs en liste désigne

  • des données présentées sous la forme a, b, c (le séparateur peut être un caractère ou une chaîne)
  • des listes de couples de valeurs xxx:1 / yyy:2 / zzz:3 (un séparateur de liste / + un délimiteur {clé => valeur} ici :

Nouveaux tutoriels

La section tutoriels décrit des cas concrets pour lesquels il n’existe pas de résolution « en 1 étape ».
Dans certains cas, une fonctionnalité a été développée pour couvrir tout ou partie de la résolution.

Ces tutoriels sont détaillés pas à pas dans la section “tutoriels” afin d’être utilisés comme support de formation.

Je résume ici leur logique.

Transposer une matrice

Au sens “mathématique” du terme, bascule les lignes en colonnes et vice-versa :

nombre d’étapes/actions du tutoriel : 6

une nouvelle fonctionnalité a été développée par la suite pour transposer les données en 1 clic/étape/action

Comparer (rapidement) des groupes de colonnes

Comparer des groupes de colonnes prises deux à deux était déjà possible. Cependant, avec un grand nombre de colonne, l’opération pouvait s’avérer fastidieuse et source d’erreurs.
Le tutoriel présente une manière plus générique de comparer un grand nombre de colonne de deux fichiers sources avec le même en-tête, par exemple la description d’une même population sur deux années différentes.

nombre d’étapes/actions du tutoriel : (2 par fichier source) + 4

l’intérêt de ce tutoriel réside surtout dans le fait de rendre la complexité du traitement indépendante du nombre (de paires) de colonnes à comparer

Comparer des lignes dans un fichier cumul

On souhaite identifier des différences mais cette fois au sein d’un même fichier de données décrivant un cumul.
Il peut s’agir par exemple de deux jeux de données mis bout-à-bout décrivant une même population sur deux années différentes.

nombre d’étapes/actions du tutoriel : 3

Créer un fichier cumul à partir de deux sources aux formats proches

Le cas a été rencontré lors d’une analyse de journaux comptables où les jeux de données présentaient des rubriques/codes comptables en colonne.
D’un mois sur l’autre, le nombre et l’ordre de ces colonnes/rubriques différaient. Le tutoriel permet de s’affranchir de ces variations de la structure des données.

nombre d’étapes/actions du tutoriel : (4 par fichier source) + 3

Reconstituer des calendriers

Autre cas de figure rencontré, les données décrivent des personnes présentes sur des périodes avec en colonne la date de début, la date de fin, puis les autres données.
À partir de ces données, on recherche les dates/jours exactes qui ont rassemblé le plus de personne.

La résolution consiste à générer l’ensemble des jours (entre la date de début et la date de fin), c’est-à-dire une description des faits à une échelle unitaire/atomique (chaque ligne décrivant alors une date et non une période).

Trois approches sont proposées dans le tutoriel : entre 3 et 6 étapes/actions

Fidélisation (suivre une cohorte)

La problématique soulevée était de comprendre les parcours, trajectoires pour une population donnée.

Exemple simplifié : 4 lignes de données décrivent (dans l’ordre chronologique) les états/statuts successifs d’un individu, à raison d’un par ligne : a -> b -> c -> d.

dans la pratique, le jeu de données décrivait une population d’individu avec des trajectoire de 4 à 50 états, parfois circulaires a -> b -> a -> d -> c

On souhaite identifier :

  1. le parcours par rapport à l’état initial pour l’individu pris en exemple, le résultat sera la relation suivante : a => {b -> c -> d}
  2. les changements d’état (de proche en proche) pour le même exemple, le résultat sera une liste de couple de valeurs : (a => b), (b => c), (c => d)
  3. les relations entre l’état initial et n’importe quel autre état du parcours même exemple, le résultat sera trois couples de valeurs : (a => b), (a => c), (a => d)
  4. les relations entre n’importe quel état du parcours et n’importe quel autre état rencontré par la suite même exemple, le résultat sera six couples :
    • (a => b), (a => c), (a => d)
    • (b => c), (b => d)
    • (c => d)

La fonctionnalité utilisée possède une option “scénario” avec les 4 choix.
Ainsi, on définit « ce que représente les données » en précisant le ou les séparateurs, et la transformation est appliquée selon la demande.

Les 4 scénarios sont proposés dans le tutoriel : 3 étapes/actions (une 4ème étape est nécessaire si on souhaite étudier à part le 1er état et l’état terminal de la trajectoire)

Nouvelles fonctionnalités

La majorité des nouvelles fonctionnalités concerne

  • des traitements de dates (décalage, conversion)
  • des traitements d’intervalles numériques
  • des traitements de périodes (intervalles de dates)

Elles sont présentées ci-dessous dans leur rubrique respective (dans l’ordre d’apparition des rubriques dans Illico et dans la documentation).

(dans l’application, chaque écran permettant d’exécuter une transformation possède un lien vers la section/page concernée dans la documentation)

Valeurs en liste : compacter, inverser l’ordre, filtrer

compacter les listes

rubrique « valeurs en liste : agrégats"

Pour une liste qui présente des répétitions—a,a,b,c,a,d,b—les deux options de cette transformation permettent d’obtenir :

  • a,b,c,a,d,b : réduire à une occurrence, pour chaque série
  • a,b,c,d : conserver globalement les premières occurrences
  • c,a,d,b : conserver globalement les dernières occurrences

inverser l’ordre des éléments des listes

rubrique « valeurs en liste : structure"

Pour une colonne décrivant des listes d’éléments—a:1, b:2—,

  • inverse l’ordre des valeurs des listes (b:2, a:1)
  • inverse l’ordre des valeurs des listes imbriquées seulement (1:a, 2:b)
  • inverse l’ordre des listes imbriquées et des valeurs dans ces listes (2:b, 1:a)

filtrer ou exclure les valeurs d’une liste

rubrique « valeurs en liste : filtres"

compare les listes de valeurs d’une colonne par rapport à une autre colonne de référence

  • égal
  • différent de
  • supérieur/inférieur ou égal à
  • strictement supérieur/inférieur à

réduire la liste à certaines clés

conserver/exclure certains couples {clé:valeur} lorsque la clé existe dans une autre colonne (qui contient pour chaque ligne la liste de clés à conserver ou à exclure)

Par exemple—et sans devoir utiliser des regex/expressions rationnelles—la liste 2021=3,2022=1,2024=4 pourra être réduite à 2022=1,2024=4 si la clé 2021 existe dans la colonne de contrôle.

Valeurs en liste : lister les permutations, mélanger la liste

rubrique valeurs en liste : enrichissement

lister les permutations des valeurs d’une liste

produit la liste de toutes les permutations des valeurs des listes de la colonne sélectionnée.

mélanger les valeurs de la liste

applique le mélange de Fisher-Yates sur les valeurs de la liste

enlever les accents et les cédilles de l’en-tête

rubrique « en-tête"

surtout utile lorsque l’on part d’un tableur et que l’on cherche à injecter les données dans une base de données ne tolérant pas ces caractères dans les en-têtes

Permuter les colonnes

rubrique « colonnes : ordre"

Dans le cas d’un export de données depuis un logiciel métier, ou suite à certaines transformations, certaines colonnes peuvent être générées dans un ordre qui ne s’avère pas très intuitif.

Cette nouvelle fonctionnalité inverse en 1 clic l’ordre des colonnes sélectionnées en permutant (au choix)

  • 1ʳᵉ et 2ᵉ, 3ᵉ et 4ᵉ, etc.
  • 1ʳᵉ et dernière, 2ᵉ et avant-dernière, etc.

Numéroter chaque série

rubrique “lignes”

Dans Illico, le terme série désigne une suite de lignes contiguës qui possèdent la même valeur dans la colonne sélectionnée (un identifiant par exemple).
Si l’identifiant réapparaît plus loin dans les données, il s’agira d’une nouvelle série.

(une autre transformation permet déjà de numéroter chaque ligne de la série)

Obtenir les méta-données des colonnes sélectionnées

rubrique “agrégats”

Pour les colonnes sélectionnées, indique

  • si la colonne ne contient que des valeurs uniques (les valeurs vides sont comptées à part)
  • le nombre de lignes sans valeur (valeur vide)
  • le nombre de valeurs renseignées (valeur non-vide)
  • la cardinalité : nombre de valeurs différentes rencontrées dans la colonne

Décaler les dates

rubrique “temps”

décaler les dates avec 1 constante (saisie par l’utilisateur)

permet de décaler les dates d’une colonne à partir d’une constante (on précise l’unité : nombre de jours, de semaines, de mois ou d’années)

décaler des dates selon 1 autre colonne

idem précédemment mais en se basant sur les valeurs d’une autre colonne plutôt qu’une constante

Jours de la semaine

rubrique “temps”

donner le nom des jours de la semaine

la date est alors recodée : lundi, mardi…

compter chacun des jours de la semaine

nombre de lundis, de mardis, etc. dans l’intervalle décrit par des colonnes début et fin de la période

obtenir le numéro du jour dans l’année

1 pour le 1ᵉʳ janvier, 32 pour le 1ᵉʳ février…

Transformation des périodes « temps : intervalles »

compléter un intervalle de date (2 colonnes : début et fin de la période)

crée une liste de jour/date dans l’intervalle décrit

rechercher une date dans un intervalle de date

compare 1 colonne (date recherchée) par rapport à 2 autres colonnes décrivant une période (début et fin de la période)

combiner deux périodes (4 colonnes)

option (au choix) : obtenir

  • une fusion : période englobant les deux [min, max]
  • une union : période englobant les deux seulement si intersection
  • une intersection : plus petite période commune

comparer les dates et une liste de seuils (saisie par l’utilisateur)

détecter des collisions de périodes

portée de la détection

  • rechercher pour l’ensemble des données
  • rechercher dans les lignes qui partagent un même identifiant (les lignes comparées ne sont pas forcément contiguës)
  • rechercher dans les lignes qui décrivent une série (lignes contiguës avec un même identifiant)

Calculs

rubrique “calculs”

calculer une opération sur 1 colonne : options

options :

  • opérations : minimum, maximum, moyenne, somme
  • valeurs vides : ignorées ou traduites par zéro
  • calcul : total ou cumulé
    • option si cumulé : en partant de la première ou dernière ligne
  • résultat : global ou local
    • option si local : pour chaque série ou pour chaque identifiant

calculer une opération avec 1 constante (saisie par l’utilisateur)

calculer une somme ou une moyenne sur x colonnes

Convertir d’un système de numération à un autre

rubrique “enrichissement”

conversion depuis et vers une base binaire, octale, décimale, hexadécimale

Matrice : transposée, inverser, trier

rubrique “matrice”

calculer la transposée

Transpose le jeu de données : les lignes deviennent les colonnes et inversement ; la ligne d’en-tête devient la première colonne ; la première colonne devient la ligne d’en-tête.

inverser l’ordre des lignes

Inverse l’ordre des lignes du jeu de données : la première ligne devient la dernière, la dernière devient la première, etc.

trier par ordre alphabétique

options

  • ordre des lettres : A…Z…a…z…É…é ou A…É…Z…a…é…z
  • placer les valeurs vides : au début ou à la fin

trier par ordre numérique

option : les valeurs vides sont

  • les plus petites (seront placées au début du tableau)
  • les plus grandes (seront placées à la fin du tableau)
  • égales à zéro

trier par ordre chronologique

option : les valeurs vides sont

  • dans le passé lointain
  • dans un futur lointain
  • égales à la date du jour
  • égales à une date précise (à saisir)

Commentaires : voir le flux Atom ouvrir dans le navigateur

Plank Reloaded: Desktop Dock App for Cinnamon

At one time, Linux dock apps were a plentiful species, with innovative ‘panel painters’ like GNOME Do/Docky to unashamed bling-kings AWN, DockBarX and Cairo Dock. Yet it was the modest Plank which stayed the course and outlived them. Thing is, the Plank dock hasn’t seen any major development effort in years, and though it still works, there’s scope for some modern improvement, surely? One developer thinks so, and they’ve decided to do something about it. Enter, Plank Reloaded. Plank Reloaded: Plank Fork Plank Reloaded is a new fork of the original Plank Linux dock, albeit with a twist: it’s focused […]

You're reading Plank Reloaded: Desktop Dock App for Cinnamon, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

02/24 Armbian 25.2.1

Armbian is a Linux distribution designed for ARM development boards. It is usually based on one of the stable or development versions of Debian or Ubuntu and it supports a wide variety of popular ARM-based devices, including Banana Pi, Cubieboard, Olimex, Orange Pi, Odroid, Pine64 and others. Armbian includes a menu-driven configuration tool along with stock Debian utilities, the Bash shell, and a choice of Cinnamon or Xfce desktop.
❌