Technic Lego compatible brick - PrintableBricks.com

Aaaahhh, le remplaçant de Print-a-brick qui avait disparu, victime d'une entreprise Lego jalouse de ses brevets. A vos imprimantes 3D !

[EDIT]

J'ajoute https://machineblocks.com/ qui permet même d'éditer les briques ! On peut changer les paramètres de largeur, longueur, hauteur forme etc en partant de briques existantes ! Le tout téléchargeable en plusieurs formats dont STL

glopglop !

You no longer need JavaScript Ʊ lyra

Oui, avant tout recours à JS on devrait vérifier que ce n'est pas possible en CSS/HTML5 pur...

Le nesting est en effet un game changer, même si la dernière fois que j'ai voulu reprendre le CSS de mon appli de documents/exerciseur pour le collège, j'avais omis de compter avec le manque de mises à jours sur les ordis du boulot.

Au passage, je me note les possibilités du RGB() pour dériver une couleur d'une autre: à utiliser dans mon framework perso... plus simple que les multiplications de variables CSS... On ne garde qu'une variable pour la couleur de base et on calcule les autres couleurs nécessaires...


 /* remove blue from a color */
rgb(from #123456 r g 0);
/* make a color transparent */
rgb(from #123456 r g b / 0.5);
/* make a color lighter */
hsl(from #123456 h s calc(l + 10));
/* change the hue in oklch color space */
oklch(from #123456 l c calc(h + 10));
/* mix two colors in oklab color space */
color-mix(in oklab, #8CFFDB, #04593B 25%);

Et ça marche avec des variables CSS:


*{ --base-color:red; }

/Ajouter de la transparence/ .transparent{ hsl(from var(--base-color) h s calc(l + 12)); }

/ désaturer une couleur de base/ .desat{ color: hsl(from var(--base-color) h calc(s + -50) l); }

/ complémentaire/ .complementaire{ hsl(from var(--base-color) calc(h + 180) s l); }

/ plus loin : primary, seconday, tertiary/ .primary{ hsl(from var(--base-color) calc(h + 90) s l); } .secondary{ hsl(from var(--base-color) calc(h + 180) s l); } .tertiary{ hsl(from var(--base-color) calc(h + 270) s l); }

De plus, depuis un an, on peut centrer officiellement un block verticalement sans quitter le display:block; à l'aide de align-content: center; #youpi

Et que dire de @starting-style qui permet de se passer de keyframes ?


 .toast {
  transition: opacity 1s, translate 1s;
  opacity: 1;
  translate: 0 0;
  @starting-style {
    opacity: 0;
    translate: 0 10px;
  }
}
Via https://link.toutetrien.lithio.fr/

C'est officiel : stocker vos données en Europe ne sert à rien face aux USA

Heu... non, ce n'est pas ce qui est dit: il ne sert à rien d'héberger ses données chez une entreprise américaine même si elle est basée en Europe... mais rien de nouveau ici.

Si tu as tes données ailleurs que chez amazon & consorts, tu es tranquille. Les USA n'ont pas le droit de récupérer tes données stockées chez O2switch par exemple...

Via https://cochi.se/links/?r1jTeg

User Inyerface - A worst-practice UI experiment

Outre le fait que c'est vraiment nien trouvé, c'est ABSOLUMENT hilarant tellement le concept d'UI mal foutue est poussé loin. Ce n'est plus de la dark pattern, c'est de la troll pattern

Insupportable !

Via https://cochi.se/links/

Petit topo sur la différence Whatsapp /Signal pour ma gamine qui voulait comprendre - www.monvoisin.xyz

Un résumé rapide de ce remarquable article:

Whatsapp, c'est Meta: donc, tout ce qu'on peut reprocher à Facebook peut l'être à whatsapp.

Whatsapp récupère de fait systématiquement:

  • les contacts,
  • l'identifiant perso,
  • l'IP,
  • ce que l'on regarde comme pubs, comme services, ...
  • chez qui on achète, avec quoi on paie,
  • combien de temps on es en ligne, quand, avec qui, et où

Whatsapp récupère très probablement:

  • nos sons et vidéos locales (accès obligatoire au support de stockage local)

Whatsapp récupère tes données mais également celle des autres même s'ils refusent d'utiliser Whatsapp.

Tout ce qui est stocké en info de contact finit sur les serveurs de Meta ➜ on nuit aux autres aussi.

en croisant et corrélant les données auxquelles il a accès, Whatsapp :

  • peut établir et deviner des liens complexes entre les utilisateurs en comparant les données de chacun: des messages échangés entre personnes ayant des positions de rapprochant = un rendez-vous; selon les POI autour, on devine la raison du RDV.
  • par ces corrélations, il déduit tes VRAIES données (habitudes, âge, heure de lever et de coucher, habitudes de consommation, sant, intérêts, engagements politiques etc.)

Whatsapp est utilisé comme outil de surveillance et de propagande

Entreprise américaine = exploitation des données par l'état. Meta préfère payer des amendes que de respecter les lois européennes de protection des données.

Whatsapp est sujet aux failles et fuites de données

Signal n'a pas tous ces défauts et son code est ouvert; même s'il reste centralisé et qu'il faut un numéro de téléphone (qu'on n'est pas obligé de donner à un contact)

via https://qosgof.fr/fosteb/shaare/v9v-yQ



L'animation dans les interfaces numériques : moins, mais mieux. - Alsacreations

Résume :

Amen.

  • On définit le but : est-ce que c'est pour expliquer, guider, ou juste faire plaisir ?
  • On pense à la fréquence : plus c'est utilisé, moins ça doit bouger
  • On reste rapide, toujours sous les 300 ms
  • On donne le contrôle, en respectant toujours les préférences de la personne qui utilise l'interface.

(oui, l'image de titre est bien un troll )

Ce que les couleurs de vos ports USB vous indiquent (et pourquoi ...

Au temps pour le «UNIVERSAL» de USB...

Donc, pour les ports USB A:

  • Blanc = USB 1.0 / 12Mbps
  • Noir = USB 2.0 / 480Mbps
  • Jaune = USB 2.0/3.0 + toujours alimentés même sur une machine éteinte
  • Orange = USB 3.0 + toujours alimentés même sur une machine éteinte
  • Bleu = USB 3.0 Superspeed / 5Gbps
  • Turquoise = USB 3.1 / 10 Gbps
  • Rouge = USB 3.1 Gen 2 / 10-20 Gbps + toujours alimentés même sur une machine éteinte

Résumé en une image (trouvée sur https://www.corsair.com/fr/fr/explorer/diy-builder/storage/usb-port-colors-explained/ )

FireShot Capture 008 - Explication des couleurs des ports USB - CORSAIR - www.corsair.com.png

IA Bot war: on BOT en touche ? [EDIT]

Les IA qui butinent broutent comme des vaches sur nos serveurs semblent poser de plus en plus de problèmes à tout le monde, si on en croit masto et la river...

Symptômes

  • durées de visite anormales dans les logs (millisecondes par exemple)
  • pics de connexions inexpliqués et violents

Risques

  • vol de données et détournement du contenu
  • pertes de performance voire plantage du serveur
  • inflation dantesque des fichiers logs
  • frais supplémentaires

Bref, les crawlers des IA sont comme les IA elles-mêmes: de la merde envahissant et ressourçophage...

Oui, ressourçophage...   j'ai le droit de néologismer  quand je veux...

Quelles solutions pour lutter ?

le robot.txt : 👍 facile - 👎 efficace que pour ceux qui jouent le jeu

En gros, on joue sur la détection du user-agent, pas forcément fiable puisqu'il est simple de le modifier.

voir https://alyze.info/Blog/le-fichier-robots-txt-ia , https://sebsauvage.net/links/?hyKnfA & https://github.com/ai-robots-txt/ai.robots.txt/blob/main/robots.txt

IP & htaccess : 👍 efficace avec les bots connus - 👎 plus ardu, besoin de mises à jour

On bloque des IP ou des plages d'IP dont on sait qu'elles sont utilisées par les bots.

Premier problème, obtenir une liste de ces plages d'IP... second problème, la garder à jour. Sans compter que le fait de bidouiller le htaccess quand on est un peu noob n'est pas sans danger ou prises de tête...

voir https://chemicloud.com/kb/article/block-bad-bots-and-spiders-using-htaccess/

action user : 👍 efficace - 👎 chiant pour le visiteur et js obligatoire

Pour faire simple, on attend une action du visiteur avant de lui servir la page: un captcha par exemple... Mais il faut JS et se faire chmir à cliquer sur des machins...

[EDIT] https://framapiaf.org/@sebkirche/115486519579128004 m'a fait passer une solution plus simple, bloquer tout accès n'ayant pas un cookie, rediriger vers un JS qui crée le cookie et recharger: les Bots IA n'exécutant pas le JS [pour le moment], ils restent à la porte. ( https://fxgn.dev/blog/anubis/ )

une appli tierce de blocage 👍 efficace - 👎 ardu pour le webmestre amateur

On a entendu parler d'Anubis ( https://sebsauvage.net/links/?ZFvxlg ) que je n'ai pas testé mais qui détecte qu'un BOT en est un en faisant remplir une «preuve de travail» au navigateur. Même s'ils bossent dessus, le problème, pour les gens un sensibles comme nous, reste qu'il faut JS activé... et que ça semble un peu poilu à configurer...

Même chose pour goaway (https://git.gammaspectra.live/git/go-away) qui semble fonctionner comme un reverse proxy...

Un piège façon HoneyPot: https://ecirtam.net/links/?CLMOQQ

On faisait ça pour les anciens bots qui commentaient sur es blogs: en gros, un lien vers une page de ban de l'IP qui est rendue invisible via CSS: l'utilisateur ne le voyant pas, il n'y va pas... Seuls les BOTS, qui n'interprètent pas le CSS, le suivent et tombent dedans.

Admettons   un instant...

que je veuille une solution simple à installer en PHP qui permette de filtrer raisonnablement les bots en question...

Il faut déjà détecter le bot:

  • avec le useragent -même si ce n'est pas la panacée-,
  • via son IP -avec une mise à jour régulière -,
  • grâce à la fréquence de visite: lors des pics, il peut y avoir beaucoup connexions en très peu de temps, ce qu'un humain ne pourrait pas faire...

ensuite il faut lutter contre le bot

  • soit en le bloquant carrément: peu de charge pour le serveur mais le bot va réitérer ses tentatives de connexions,
  • soit en lui envoyant un header (too many connections / moved permanently ) : peu de charge et [peut-être] plus de demandes de connexion...

Mais on peut bien sûr choisir de lutter, au prix d'un peu de charge serveur:

  • générer du blabla incohérent à l'aide d'un lorem ipsum aléatoire,
  • générer des expressions fantaisistes à partir d'un jargonneur afin que l'IA ne puisse pas filtrer le bruit,
  • générer un labyrinthe de liens dans lequel elle se perdra,
  • renvoyer une page statique simple, légère, avec le texte pollueur,
  • rediriger la demande vers un autre site afin que ce soit lui qui se bouffe la charge (un GAFAM dans l'idéal )
  • rendre les données très lentement
  • faire une zipbomb

Exemple de zip-bomb. (Votre serveur envoie 10 Mo, côté client ça se décompresse en 10 Go côté client. La plupart des bots qui scannent les sites web supportent la compression gzip et chargeront bien volontier ce fichier. Et comme ils sont mal développés, ils vont planter. (En principe, que vous développez un client http, il faut coder la quantité de données maximales de données que vous allez lire d'une requête http. Par exemple, il n'est généralement pas utile de charger plus de 20 Mo pour une image. Par défaut, ce n'est pas limité.) (via https://shaarli.zoemp.be/shaare/mx1lcg) Une autre manière de répondre aux bots, c'est d'envoyer les données, mais très lentement. Ça ne consomme que peu de ressources côté serveur, mais côté client il va attendre les données.

dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz

<?php
if (ipIsBlackListed() || isMalicious()) {
    header("Content-Encoding: gzip");
    header("Content-Length: "+ filesize(ZIP_BOMB_FILE_10G)); // 10 MB
    readfile(ZIP_BOMB_FILE_10G);
    exit;
}
?>

une bidouille perso : antibotai

photo de subotai
Mon cerveau est content, il a fait sa blague de merde
S'pas facile des fois...

Donc, c'est un petit script PHP dont je préfère vous annoncer de suite qu'il s'agit plus d'une proof of concept que d'un truc à intégrer dans l'immédiat...

Toutefois

  1. il permet de détecter les user-agents de bots IA
  2. il gère les adresses IP et les plages d'IP
  3. il détecte les fréquences de connexions trop rapides
  4. en cas de bot, on peut choisir:
    1. le blocage par header (404 etc)
    2. la redirection automatique vers une URL de son choix
    3. la pollution par retour de bruit (lorem ipsum aléatoire mélangeant des mots français, anglais et espagnols...)

On gère la configuration par des constantes:

  1. en précisant un code HTML dans HEADER_CODE_FOR_BOTS, antibotai boutera le bot avec le header correspondant.
  2. sinon, REDIRECT_TO_URL peut contenir une URL de redirection
  3. USE_CONNECTION_FREQUENCY , USE_USERAGENT et USE_IP, s'ils sont à TRUE, vont déclencher les diverses détections correspondantes.
  4. POLLUTE_LENGTH (nombre de mots) qui, s'il n'est pas vide génère un texte de pollution

Afin de pouvoir contrôler l'efficacité du bouzin, il y a un fichier log (LOGFILE) ce qui m'a permis de voir que ça avait fonctionné pour quelques bots au moins:

Capture d’écran du 2025-11-02 10-25-19.png

Limite constatée

Si une page de votre site redirige automatiquement vers une autre, antibotai peut penser qu'il s'agit d'un bot car la fonction is_too_quick_to_be_honest() va détecter deux accès trop rapides pour la même ip... Il m'a fallu adapter ce script pour le cas précis de ces redirections.

Je n'ai pas tout testé mais si le coeur vous en dit: de mon côté j'ai pas le temps: rien que pour TERMINER cet article -commencé il y a un moment - j'ai été interrompu pour : réparer un vélux, réparer une fuite de douche, couper les cheveux et préparer à manger... (en plus des interruptions diverses habituelles )

Sources diverses:

Téléchargement

Le zip est à récupérer là http://cdn.warriordudimanche.net/antibotai.zip

Il contient :

  • antibotai.php qui est le script à appeler au début de page.
  • base.php, un fichier texte contenant simplement les mots à utiliser pour polluer
  • ip.php contenant les ip à détecter
  • useragents.php qui fait de même avec les user-agents.

(...)

Fil RSS des articles