social.dk-libre.fr is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.

This server runs the snac software and there is no automatic sign-up process.

Search results for tag #dev

[?]Camille Roux » 🌐
@camilleroux@mastodon.social

HLBuilder offre une interface visuelle pour planifier son homelab : topologie réseau en drag-and-drop, recommandations hardware selon vos besoins et liste de courses avec estimations de prix. Open source et self-hosted. ⬇️
github.com/Butterski/homelab-b

📬 Ma veille dev de la semaine → camilleroux.com/veille

Capture d'écran de l'interface web de HLBuilder, une application de planification d'infrastructure homelab, affichant le tableau de bord "My Projects" avec trois projets listés dans un thème sombre.

Alt...Capture d'écran de l'interface web de HLBuilder, une application de planification d'infrastructure homelab, affichant le tableau de bord "My Projects" avec trois projets listés dans un thème sombre.

    [?]Camille Roux » 🌐
    @camilleroux@mastodon.social

    Cloud Mail : un service mail self-hosted sur Cloudflare Workers, sans serveur. Envoi via Resend, pièces jointes sur R2, notifications Telegram et détection automatique des codes de vérification par Workers AI. ⬇️
    github.com/maillab/cloud-mail/

    📬 Ma veille dev de la semaine → camilleroux.com/veille

      [?]Camille Roux » 🌐
      @camilleroux@mastodon.social

      Flix : un quadcopter open source à base d'ESP32, conçu pour l'éducation et la recherche. Firmware Arduino en moins de 2 000 lignes, simulation Gazebo, bibliothèque Python, protocole MAVLink. Le châssis s'imprime en 3D. ⬇️
      github.com/okalachev/flix

      📬 Ma veille dev de la semaine → camilleroux.com/veille

      Un mini quadcopter fait maison à cadre blanc, équipé de quatre hélices noires et d'une carte de développement ESP32 bleue montée au centre, avec des câbles multicolores apparents.

      Alt...Un mini quadcopter fait maison à cadre blanc, équipé de quatre hélices noires et d'une carte de développement ESP32 bleue montée au centre, avec des câbles multicolores apparents.

        [?]Camille Roux » 🌐
        @camilleroux@mastodon.social

        Manim : le moteur Python derrière les vidéos de 3Blue1Brown, disponible en open source. Du code Python vers des animations mathématiques précises, avec support LaTeX et rendu OpenGL. `pip install manimgl` suffit pour démarrer. ⬇️
        github.com/3b1b/manim

        📬 Ma veille dev de la semaine → camilleroux.com/veille

        Capture d'écran du dépôt GitHub de Manim, un moteur d'animation mathématique open source, affichant son logo avec un graphique illustrant une intégrale de Riemann et la description « Mathematical Animation Engine ».

        Alt...Capture d'écran du dépôt GitHub de Manim, un moteur d'animation mathématique open source, affichant son logo avec un graphique illustrant une intégrale de Riemann et la description « Mathematical Animation Engine ».

          [?]Camille Roux » 🌐
          @camilleroux@mastodon.social

          NASA Worldview : plus de 1000 couches satellite mondiales en haute résolution, avec certaines données disponibles 3h après observation. Open source, compatible OpenLayers, Leaflet et Cesium. ⬇️
          github.com/nasa-gibs/worldview

          📬 Ma veille dev de la semaine → camilleroux.com/veille

          Capture d'écran de l'application NASA Worldview affichant une image satellite de Brisbane, Queensland (Australie), datée du 16 octobre 2020, montrant la côte et les eaux turquoise de la mer avec des sédiments visibles près des embouchures des rivières.

          Alt...Capture d'écran de l'application NASA Worldview affichant une image satellite de Brisbane, Queensland (Australie), datée du 16 octobre 2020, montrant la côte et les eaux turquoise de la mer avec des sédiments visibles près des embouchures des rivières.

            [?]Camille Roux » 🌐
            @camilleroux@mastodon.social

            reqlog génère un dashboard live de toutes vos requêtes HTTP.
            Headers, body, latence, replay et diff entre appels. Trois lignes pour l'intégrer sur Express, NestJS, Fastify ou Go. ⬇️
            github.com/FirasLatrech/reqlog

            📬 Ma veille dev de la semaine → camilleroux.com/veille

            Alt...L'image est entièrement noire et ne contient aucun contenu visible.

              [?]Camille Roux » 🌐
              @camilleroux@mastodon.social

              Weathergotchi : un petit appareil autonome qui mesure en continu la température et l'humidité, affiche les données sur un écran basse consommation et garde l'historique en mémoire. Open source, schémas et firmware inclus. ⬇️
              github.com/Michael-Manning/E-P

              📬 Ma veille dev de la semaine → camilleroux.com/veille

              Petit capteur de température et d'humidité portable à écran e-paper, affichant 23,9°C, 44% d'humidité à 12h15, accompagné d'un graphique des relevés sur les 60 dernières minutes, le tout suspendu à un sac par un mousqueton.

              Alt...Petit capteur de température et d'humidité portable à écran e-paper, affichant 23,9°C, 44% d'humidité à 12h15, accompagné d'un graphique des relevés sur les 60 dernières minutes, le tout suspendu à un sac par un mousqueton.

                [?]Camille Roux » 🌐
                @camilleroux@mastodon.social

                Le plus bel outil de visualisation de regex que j'ai vu depuis des années.
                Regex Vis est un visualiseur et éditeur de regex qui rend les expressions régulières plus lisibles. ⬇️
                regex-vis.com/

                Capture d'écran de l'outil **Regex Vis**, un visualiseur d'expressions régulières, affichant cinq exemples de regex (nombres entiers, décimaux, positifs/négatifs et URL) sous forme de diagrammes de flux interactifs sur fond sombre.

                Alt...Capture d'écran de l'outil **Regex Vis**, un visualiseur d'expressions régulières, affichant cinq exemples de regex (nombres entiers, décimaux, positifs/négatifs et URL) sous forme de diagrammes de flux interactifs sur fond sombre.

                  [?]Camille Roux » 🌐
                  @camilleroux@mastodon.social

                  Databasement : sauvegardes de bases de données via une interface web, self-hosted. MySQL, PostgreSQL, MongoDB, Redis, planification, rétention GFS, restore cross-serveur, stockage S3/SFTP/local, SSH tunnel. Un conteneur Docker suffit. ⬇️
                  github.com/David-Crty/database

                  Capture d'écran promotionnelle de **Databasement**, un outil open-source d'interface web pour la sauvegarde et restauration de bases de données, présentant son logo, sa compatibilité avec MySQL, PostgreSQL, MariaDB, SQL Server, SQLite, MongoDB, Firebird et Redis, ainsi qu'un aperçu de son tableau de bord affichant des statistiques de snapshots, l'activité des jobs et l'état du stockage.

                  Alt...Capture d'écran promotionnelle de **Databasement**, un outil open-source d'interface web pour la sauvegarde et restauration de bases de données, présentant son logo, sa compatibilité avec MySQL, PostgreSQL, MariaDB, SQL Server, SQLite, MongoDB, Firebird et Redis, ainsi qu'un aperçu de son tableau de bord affichant des statistiques de snapshots, l'activité des jobs et l'état du stockage.

                    [?]Fireside Fedi » 🌐
                    @firesidefedi@btfree.social

                    Your favorite #podcast ( you know the one. The one that's #livestream at FiresideFedi.live and the #VODS hosted at tubefree.org/@firesidefedi )

                    MORE LIVE-ER

                    ...

                    than EVER!

                    ...

                    FIRESIDE FEDI LIVE!

                    ...

                    AND IN PERSON!

                    They said it couldn't be done! But we're doing it!

                    Talking with #fediverse #developers live and on stage!

                    ...

                    FIVE on ONE!

                    ...

                    Without a NET!

                    And this time the STAKES are even HIGHER!

                    Live studio audience!

                    RABID #Fedizens!

                    ...

                    Rabid for content!

                    ...

                    WITH SPECIAL GUEST for the first time ANYWHERE:

                    JOHN MASTODON! *Cancelled*

                    This won't be just any normal show! It's the show you've waited your ENTIRE LIFE to see!

                    We'll also be speaking with these following extraordinary people:

                    - Dan Supernault - @dansup@mastodon.social

                    Currently building @pixelfed, @loops, @supapp, @fedidb, and more.

                    - Django Doucet - @django@social.coop -

                    At #CoLab.coop , #Django is a developer for #WordPress sites. His approach is people-centric, which influences the usability, #performance and #accessibility of his designs.

                    - Vagrant Cascasian - @vagrantc@floss.social -

                    Involved in various #FOSS projects such as #ReproducibleBuilds #Debian #Guix and so much more. Passionate about #Aikido and #Solar hobbyist.

                    - Matt Baer - @matt@writing.exchange -

                    #Founder writing.exchange/@write_as , musing.studio

                    Lead #dev writing.exchange/@writefreely

                    Co-organizer gram.social/nycphotostroll

                    #Admin @ https://Writing.Exchange

                    - Ben Pate - @benpate@mastodon.social -

                    Ben is the nerd who's building emissary.dev/ - an #ActivityPub server for building custom social applications on the #Fediverse .

                    First app on this platform is a #music #sharing #server for indie bands, called bandwagon.fm/ . He's also working on atlasmaps.org/, a #social #mapping server for adding #Federated annotations to places in the real world.

                    HARD HITTING questions! Questions like:

                    Pie or Cake?

                    Red, Blue or Green?

                    Best Fediverse Application?

                    Don't forget to catch us at #FOSSY #FediCon track Aug 8th! 2026.fossy.ca/schedule/prese...

                    IT

                    WILL

                    BE

                    hopefully, honestly just a really a lovely time really!

                    Rectangular picture.  Person in the upper left rotated 90 degrees and he's covering his face like he's in fear.

Middle shows FOSSY 2026.  August 6th - 9th 2026 - University of British Columbia, Cananda.

Bottom left is the Fireside Fedi icon, a spinning Fediverse icon on fire.

Middle bottom - FEDICON Fossy 08/008/2026

Bottom Right there are multiple pictures.  

Top shows a shadowy man with the name John Mastodon and a cancelled banner over it.

Next is a man in a ball cap with glasses and a beard with the name MATT BAER.

Then man with a beard leaning towards the camera with DJANGO DOUCET.

Then a man with a dog behind him.  DAN SUPERNAULT.

Then a picture of someone turned 120 degrees in a blanket waving.  VAGRANT CASCADIAN.

Finally a cartoon character in the South Park style.  BEN PATE.

                    Alt...Rectangular picture. Person in the upper left rotated 90 degrees and he's covering his face like he's in fear. Middle shows FOSSY 2026. August 6th - 9th 2026 - University of British Columbia, Cananda. Bottom left is the Fireside Fedi icon, a spinning Fediverse icon on fire. Middle bottom - FEDICON Fossy 08/008/2026 Bottom Right there are multiple pictures. Top shows a shadowy man with the name John Mastodon and a cancelled banner over it. Next is a man in a ball cap with glasses and a beard with the name MATT BAER. Then man with a beard leaning towards the camera with DJANGO DOUCET. Then a man with a dog behind him. DAN SUPERNAULT. Then a picture of someone turned 120 degrees in a blanket waving. VAGRANT CASCADIAN. Finally a cartoon character in the South Park style. BEN PATE.

                      [?]Camille Roux » 🌐
                      @camilleroux@mastodon.social

                      Les devs n'aiment pas le CSS parce qu'ils ne le maîtrisent pas vraiment. L'article déconstruit les idées reçues : CSS est un vrai langage, avec ses règles de cascade qui déroutent les habitué·es des langages généralistes. ⬇️
                      csscade.fr/articles/pourquoi-l

                      Alt...Un personnage animé de la série *Family Guy* tire sur le cordon d'un store de fenêtre, avec le mot **"CSS"** affiché en bas de l'image — suggérant que manipuler le CSS, c'est comme tirer sur un store : on ne sait jamais ce qui va se passer.

                        [?]Camille Roux » 🌐
                        @camilleroux@mastodon.social

                        Native SDK : un toolkit pour construire des apps desktop natives avec du markup déclaratif et Zig comme logique, aucun browser, aucun WebView, un binaire de quelques mégaoctets. ⬇️
                        github.com/vercel-labs/native

                        Capture d'écran d'une interface de lecteur de musique desktop développée avec **vercel-labs/native**, affichant une bibliothèque d'albums avec des pochettes colorées et minimalistes, ainsi qu'une barre de lecture en bas avec le titre "Glass" d'Aurora Fields en cours de lecture.

                        Alt...Capture d'écran d'une interface de lecteur de musique desktop développée avec **vercel-labs/native**, affichant une bibliothèque d'albums avec des pochettes colorées et minimalistes, ainsi qu'une barre de lecture en bas avec le titre "Glass" d'Aurora Fields en cours de lecture.

                          [?]Camille Roux » 🌐
                          @camilleroux@mastodon.social

                          Infrastructure as code pour un homelab Proxmox et Kubernetes, géré en GitOps avec Flux, Ansible et Talos. Le repo expose l'ensemble de la configuration : VMs, cluster K8s, automatisations et networking, tout versionné et déployé via CI/CD. ⬇️
                          github.com/Mafyuh/iac

                            AodeRelay boosted

                            [?]Fake Scrum Stats Memes & Humor » 🌐
                            @FakeScrumStats@techhub.social

                            Photo of two halves of different bathtubs separated by a wood table.

Caption: Legacy bathtub after years of design changes and updates. At least that's how my software-centric brain sees it.

                            Alt...Photo of two halves of different bathtubs separated by a wood table. Caption: Legacy bathtub after years of design changes and updates. At least that's how my software-centric brain sees it.

                              [?]ArcaneChat » 🌐
                              @arcanechat@fosstodon.org

                              's in-chat mini-apps have more potential than most people realize

                              This is incredible awesome: treasure chests in chats that can only be unlocked with the right key!

                              Basically with this content creators and channel owners can offer paid posts, sticker packs and other content to their subscribers

                              This was created by a channel owner for their particular needs in a few hours, and delivered to users across several platforms, no need to struggle with publishing to app stores

                                AodeRelay boosted

                                [?]Radio_Azureus » 🌐
                                @Radio_Azureus@ioc.exchange

                                Browsing through the Linux kernel

                                • section devices
                                • sub section block
                                • file badblocks.c
                                • level critical

                                When I look in sources for real work I use the old school method

                                • terminal (ba(c)(k)(z)(fi)sh)
                                • vim
                                • logic
                                • patience

                                This is just a lazy exercise

                                DESCRIPTION

                                badblocks is used to search for bad blocks on a device (usually a disk partition). device is the special file corresponding to the device (e.g /dev/hdc1). last_block is the last block to be checked; if it is not specified, the last block on the device is used as a default. first_block is an optional parameter specifying the starting block number for the test, which allows the testing to start in the middle of the disk. If it is not specified the first block on the disk is used as a default.

                                sources:

                                man badblocks(8)

                                explorar.dev/linux-kernel/

                                  [?]Camille Roux » 🌐
                                  @camilleroux@mastodon.social

                                  🔎 x402 : paywaller une API sur un site statique sans pub ni bouton de don, via le protocole x402 et un Cloudflare Worker. Un exercice concret qui montre enfin à quoi peut servir le code HTTP 402, resté inutilisé depuis des décennies. ⬇️
                                  shtein.me/posts/x402-poc/

                                  Interface de paiement Web3 demandant 0,01 USDC sur le réseau Base Sepolia pour accéder à une blague premium, avec un wallet connecté (0xAF40...5a0e) et un bouton "Pay now".

                                  Alt...Interface de paiement Web3 demandant 0,01 USDC sur le réseau Base Sepolia pour accéder à une blague premium, avec un wallet connecté (0xAF40...5a0e) et un bouton "Pay now".

                                    mmu_man boosted

                                    [?]Camille Roux » 🌐
                                    @camilleroux@mastodon.social

                                    🔎 asciinema : enregistrer son terminal dans des fichiers texte ultra-légers, rejouables à la demande, exportables en GIF via `agg`. Utile pour documenter des procédures ou illustrer des formations sans passer par la vidéo. ⬇️
                                    linuxtricks.fr/wiki/asciinema-

                                    Alt...Capture d'écran d'un terminal Linux affichant une invite de commande avec le nom d'utilisateur "adrien@spasiba" dans le répertoire "~/tmp/ascii", horodatée à 20:34:03.

                                      [?]Camille Roux » 🌐
                                      @camilleroux@mastodon.social

                                      🔎 DNSGlobe : un checker de propagation DNS en TUI Rust, qui interroge 34 resolvers en parallèle dans le monde entier et affiche les résultats sur une carte dans le terminal, avec un mode watch qui refresh automatiquement jusqu'à propagation complète. ⬇️
                                      github.com/514-labs/dnsglobe

                                      Alt...Capture d'écran d'un terminal noir affichant une interface en ligne de commande avec un curseur clignotant, correspondant au démarrage de l'outil DNSGlobe, un vérificateur de propagation DNS en Rust.

                                        [?]Aral Balkan » 🌐
                                        @aral@mastodon.ar.al

                                        Just learned about the `gw` navigation command in Helix Editor and, wow, how have I lived before?

                                        (Bind it to enter in normal mode for an even better workflow.)

                                        Credit: reddit.com/r/HelixEditor/comme

                                          Tuxicoman boosted

                                          [?]Le Journal du hacker » 🌐
                                          @journalduhacker@framapiaf.org

                                          [?]Camille Roux » 🌐
                                          @camilleroux@mastodon.social

                                          🔎 ds.css : un framework CSS qui recrée fidèlement l'interface de la Nintendo DS Lite, double écran compris ⬇️
                                          github.com/spiritov/ds.css

                                          Capture d'écran d'un dépôt GitHub nommé **spiritov/ds.css**, décrit comme un framework CSS recréant l'interface utilisateur de la Nintendo DS / DS Lite, affichant 330 étoiles, 2 forks et 1 contributeur.

                                          Alt...Capture d'écran d'un dépôt GitHub nommé **spiritov/ds.css**, décrit comme un framework CSS recréant l'interface utilisateur de la Nintendo DS / DS Lite, affichant 330 étoiles, 2 forks et 1 contributeur.

                                            [?]Camille Roux » 🌐
                                            @camilleroux@mastodon.social

                                            🔎 Flyline : un plugin Bash écrit en Rust pour remplacer readline, avec coloration syntaxique, recherche dans l'historique, prompts enrichis, tooltips et intégration d'agents, sans plugin manager ni configuration laborieuse. ⬇️
                                            github.com/HalFrgrd/flyline

                                            Alt...Capture d'écran d'un terminal Linux affichant la commande `flyline suggestions --auto-suggest true && clear` saisie par l'utilisateur "john" sur l'hôte "my-hostname", avec une syntaxe colorée en vert et blanc sur fond noir.

                                              [?]Camille Roux » 🌐
                                              @camilleroux@mastodon.social

                                              🔎 QUALITY.md : un format de fichier ouvert pour déclarer ce que "bon" signifie sur un projet, sécurité, maintenabilité, qualité du code, des tests, avec un contexte explicite et des critères évaluables par des humains ou des agents. ⬇️
                                              getquality.md/

                                              Page de documentation de bienvenue pour **QUALITY.md**, un format open source permettant de modéliser la qualité d'un projet pour que les équipes et les agents puissent l'évaluer et s'aligner sur une définition commune de la qualité.

                                              Alt...Page de documentation de bienvenue pour **QUALITY.md**, un format open source permettant de modéliser la qualité d'un projet pour que les équipes et les agents puissent l'évaluer et s'aligner sur une définition commune de la qualité.

                                                AodeRelay boosted

                                                [?]Anthony » 🌐
                                                @abucci@buc.ci

                                                update-notifier-crash on Ubuntu 24.04 wrote 1 Tbyte of garbage to syslog before I noticed and stopped it. I noticed because it filled the disk.

                                                Unbelievably annoying behavior. I guess that'll teach me to ignore an update notification rather than figuring out how to disable it forever.


                                                  [?]Camille Roux » 🌐
                                                  @camilleroux@mastodon.social

                                                  🔎 Oak, une couche de versioning pensée pour les agents de code : une branche par session, des descriptions plutôt que des commits, et un montage lazy pour attaquer n'importe quel dépôt en quelques secondes. ⬇️
                                                  oak.space/docs

                                                  Peinture à l'huile représentant la canopée d'un chêne vue d'en bas, avec des feuilles vertes, des glands et un ciel bleu nuageux, sur laquelle est superposé un logo pixélisé blanc en forme de losange.

                                                  Alt...Peinture à l'huile représentant la canopée d'un chêne vue d'en bas, avec des feuilles vertes, des glands et un ciel bleu nuageux, sur laquelle est superposé un logo pixélisé blanc en forme de losange.

                                                    [?]Camille Roux » 🌐
                                                    @camilleroux@mastodon.social

                                                    🔎 Cloudflare Drop : déposez un dossier ou un zip dans le navigateur, le site est en ligne sur le réseau Cloudflare en quelques secondes. Sans compte. Le déploiement expire après 60 minutes, sauf si vous le réclamez. ⬇️
                                                    cloudflare.com/drop/

                                                      [?]Camille Roux » 🌐
                                                      @camilleroux@mastodon.social

                                                      Astryx : le design system open source de Meta, en beta, 160+ composants React, thèmes personnalisables et support MCP pour l'intégrer directement dans un workflow avec des agents IA. ⬇️
                                                      astryx.atmeta.com/

                                                      Présentation du système de design open source **Astryx**, illustrée par plusieurs composants d'interface utilisateur : paramètres d'apparence, progression de récompenses, extrait de code TypeScript, interface de marketplace et d'inventaire, sur un fond dégradé pastel.

                                                      Alt...Présentation du système de design open source **Astryx**, illustrée par plusieurs composants d'interface utilisateur : paramètres d'apparence, progression de récompenses, extrait de code TypeScript, interface de marketplace et d'inventaire, sur un fond dégradé pastel.

                                                        mmu_man boosted

                                                        [?]Camille Roux » 🌐
                                                        @camilleroux@mastodon.social

                                                        cnie-python-tools lit la puce NFC de la carte d'identité française sous Linux : état civil, adresse, photo JPEG 2000. Les empreintes restent hors de portée, protégées par l'EAC. ⬇️
                                                        korben.info/carte-identite-ele

                                                          [?]Camille Roux » 🌐
                                                          @camilleroux@mastodon.social

                                                          superfile : un file manager en terminal qui fait enfin attention à son apparence, navigation clavier, thèmes, plugins, support macOS/Linux/Windows, installation en une ligne. ⬇️
                                                          opensourceprojects.dev/post/su

                                                          Alt...Capture d'écran d'un terminal en fond noir affichant une invite de commande avec le caractère « s », illustrant le lancement de l'application **superfile**, un gestionnaire de fichiers en ligne de commande.

                                                            [?]Camille Roux » 🌐
                                                            @camilleroux@mastodon.social

                                                            Hanami 3.0 : mailers, i18n et Minitest au programme, avec des perfs qui donnent envie, jusqu'à 3x plus de throughput et 14x moins d'allocations par requête, sans toucher au code existant. ⬇️
                                                            hanakai.org/blog/2026/06/30/ha

                                                              mmu_man boosted

                                                              [?]βrυɲϋs » 🌐
                                                              @brunus@mamot.fr

                                                              [edit] prob visible sous Chrome uniquement... Chrome caca !
                                                              Hello !
                                                              J'encode des vidéo MOV (QT) en MP4, avec ffmpeg.
                                                              J'ai bien l'habitude de cet outil mais pour la première fois, j'ai une désynchronisation du son et de l'image, pas super flagrant mais visible quand même.
                                                              J'ai testé PLEIN d'options pour gérer ça... et là j'en suis à changer de format de sortie pour passer en WEBM.

                                                              Si quelqu'un⋅e à déjà expérimenté le prob avec ffmeg, je suis preneur d'un retour !
                                                              Merci d'avance !

                                                                [?]nico » 🌐
                                                                @n@gotosocial.tourmentine.com

                                                                [?]𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™ » 🌐
                                                                @kubikpixel@chaos.social

                                                                Open source game engine Godot will no longer accept AI-authored code contributions: 'We can't trust heavy users of AI to understand their code enough to fix it'

                                                                At risk of drowning in AI slop code, @godotengine is firming up its contribution requirements.

                                                                🎮 pcgamer.com/gaming-industry/op

                                                                  Tykayn boosted

                                                                  [?]Post Tenebras Lire 📚 » 🌐
                                                                  @ptl@tooting.ch


                                                                  - il peut y avoir des doublons dans la colonne UID
                                                                  - moi... U c'est pas pour unique ????

                                                                    [?]adb » 🌐
                                                                    @adbenitez@mastodon.de

                                                                    Heads up for Chatmail bots developers:

                                                                    The Chatmail API for Go library got a new release to support the latest chatmail core 2.53.0

                                                                    github.com/chatmail/rpc-client

                                                                      [?]Aral Balkan » 🌐
                                                                      @aral@mastodon.ar.al

                                                                      Sharing this not because it’s about AI/LLMs but because it’s solid advice and the recommendations work equally well for *people* coding web applications (funny that, almost like these things were made by people for people or something).

                                                                      TL;DR: Use web and platform standards; don’t reinvent the wheel.

                                                                      jimmont.com/llm-style-token-co

                                                                        [?]Aral Balkan » 🌐
                                                                        @aral@mastodon.ar.al

                                                                        🥳 New release: Tap Monkey version 2.0

                                                                        I just released version 2 of Tap Monkey (a TAP formatter that’s also a monkey), reworked for node:test.

                                                                        (TAP is meant to be a standard and all but node:test and Tape spit out very different diagnostics, etc., so I thought it best to keep the Tape version at 1.x – it’s basically been done for years now anyway – and have a separate 2.x branch for modern node:test, which is clearly based on Tape and has huge advantages like concurrent tests – which just sped up my unit tests on Kitten by 8× after I refactored them so they could run concurrently.)

                                                                        codeberg.org/small-tech/tap-mo

                                                                        Enjoy!

                                                                        🍌🐒

                                                                          [?]nico » 🌐
                                                                          @n@gotosocial.tourmentine.com

                                                                          [?]Jean Marie Favreau » 🌐
                                                                          @jm_favreau@c.im

                                                                          Ce mardi 30 juin 2026 à 18h30, je présenterai le fonctionnement de Trognoncal, le moteur d'agenda culturel participatif que je développe depuis plus de trois ans pour propulser pommesdelune.fr

                                                                          Ça se passera au bar Fermenté.e, et même si on ne rentrera pas trop dans la technique, je présenterai tout de même pas mal d'éléments du fonctionnement interne.

                                                                          Tout ça est organisé par David Rigaudie / PyClermont, et il reste encore quelques places :

                                                                          meetup.com/pyclermont/events/3

                                                                          Après 20h, on invite toutes les personnes intéressées par l'agenda à venir partager un moment de convivialité pour la fin de la deuxième saison de pommes de lune.

                                                                            [?]nico » 🌐
                                                                            @n@gotosocial.tourmentine.com

                                                                            [?]Fabien LOISON (FLOZz) » 🌐
                                                                            @FLOZz@mastodon.social

                                                                            Epic Games (les créateurs d'Unreal Engine) lancent Lore, un VCS concurrent à Git, mais dédié aux besoins du développement de jeux vidéos (gros fichiers binaires, tout ça)

                                                                            ➡️ phoronix.com/news/Epic-Games-L

                                                                              [?]dada » 🌐
                                                                              @dada@diaspodon.fr

                                                                              Nanowar Of Steel - Kotlin (Official Power Point Video) - youtube.com/watch?v=BsfXZjKLT9A

                                                                              🤣

                                                                                AodeRelay boosted

                                                                                [?]adb » 🌐
                                                                                @adbenitez@mastodon.de

                                                                                [?]Tykayn » 🌐
                                                                                @tykayn@mastodon.cipherbliss.com

                                                                                gare aux fuites de données pour !!

                                                                                article sur la fuite des sources de mastodon

                                                                                Alt...article sur la fuite des sources de mastodon

                                                                                mastodon hacké

                                                                                Alt...mastodon hacké

                                                                                  [?]Aral Balkan » 🌐
                                                                                  @aral@mastodon.ar.al

                                                                                  If you’re trying to register for a Bank of Ireland account and the form fails silently, don’t worry, it’s simple to find out what happened and fix it.

                                                                                  1. Open up developer tools on your browser
                                                                                  2. Copy the failed regular expression from the console
                                                                                  3. Put it, and your generated password into Regexr (regexr.com)

                                                                                  And voila, as you can see the problem with mine* was that it hit the 16 character limit which was, to keep things exciting, not mentioned on the page.

                                                                                  Simples.

                                                                                  What muppets!

                                                                                  * Don’t worry, it’s a different one now.

                                                                                  Screenshot of me debugging why the password my password manager generated was being silently rejected by Bank of Ireland’s registration form.

                                                                                  Alt...Screenshot of me debugging why the password my password manager generated was being silently rejected by Bank of Ireland’s registration form.

                                                                                    [?]Aral Balkan » 🌐
                                                                                    @aral@mastodon.ar.al

                                                                                    And here’s a real-world example of the lifecycle of an action performed on a local copy of the Gaza Verified web site¹ showing the event from the toggle button on the client being automatically mapped to the relevant event handler on the SignUpsSwitch Kitten component instance on the server and that handler setting a boolean on a JavaScript object in memory, which is automatically persisted to disk via Kitten’s default JSDB² database.

                                                                                    Note that Kitten is smart enough to automatically redact fields in the log output that look like they might be secrets.

                                                                                    All this is in the stateful-components-api-breaking-change branch³ at the moment and will be in the next release.

                                                                                    ¹ gaza-verified.org
                                                                                    ² codeberg.org/small-tech/jsdb
                                                                                    ³ codeberg.org/kitten/app/src/br

                                                                                    Screenshot of the Gaza Verified admin interface (Interviews section) running on https://localhost/admin/interviews/ showing the Sign-ups are open checkbox And the Team Schedule section with a table of volunteers to days with checkmarks for which day a volunteer is active this week. The main navigation shows Home, People, Donate, Guide, Team, دليل, and انضم إلنا! as well as a تسجيل الدخول button.

                                                                                    Alt...Screenshot of the Gaza Verified admin interface (Interviews section) running on https://localhost/admin/interviews/ showing the Sign-ups are open checkbox And the Team Schedule section with a table of volunteers to days with checkmarks for which day a volunteer is active this week. The main navigation shows Home, People, Donate, Guide, Team, دليل, and انضم إلنا! as well as a تسجيل الدخول button.

                                                                                    Screenshot of Kitten’s Interactive Shell (REPL), showing an action performed in the browser (client event) automatically triggering a server-side event handler that then updates a boolean value in a JavaScript object in memory that is automatically persisted to disk using Kitten’s built-in JSDB (JavaScript Database):

📄 → 🐱: Client event

« signUpSwitch » SignUpsSwitch (KittenComponent) sign-up-switch
{ _componentId: 'sign-up-switch' }


💾 Settings updated in memory.

Settings {
  id: '7832e729-1996-4ac4-b7d0-db3b6ba294d9',
  allowSignUps: true,
  mastodonAccessToken: '**** [REDACTED]'
} => allowSignUps = false


🐱 → 📄: Streaming HTML

<div hx-swap-oob="morph" data-kitten-component id="sign-up-switch" class="signUpSwitch off">
  <div class="Switch">
    <label for="switch-53fb247e-5681-44c1-b8a0-f3f5bac6521d" class="Switch">Sign-ups are closed.</label>
    <input id="switch-53fb247e-5681-44c1-b8a0-f3f5bac6521d" name="signUpSwitch" type="checkbox" role="switch" ws-send hx-ext="ws,morph" hx-swap-oob="morph">
  </div>
</div>


💾 Settings persisted to disk.

kitten.db.settings.allowSignUps = false

Persisted as:

'_[[`allowSignUps`]] = false;\n'
🐱 💬

                                                                                    Alt...Screenshot of Kitten’s Interactive Shell (REPL), showing an action performed in the browser (client event) automatically triggering a server-side event handler that then updates a boolean value in a JavaScript object in memory that is automatically persisted to disk using Kitten’s built-in JSDB (JavaScript Database): 📄 → 🐱: Client event « signUpSwitch » SignUpsSwitch (KittenComponent) sign-up-switch { _componentId: 'sign-up-switch' } 💾 Settings updated in memory. Settings { id: '7832e729-1996-4ac4-b7d0-db3b6ba294d9', allowSignUps: true, mastodonAccessToken: '**** [REDACTED]' } => allowSignUps = false 🐱 → 📄: Streaming HTML <div hx-swap-oob="morph" data-kitten-component id="sign-up-switch" class="signUpSwitch off"> <div class="Switch"> <label for="switch-53fb247e-5681-44c1-b8a0-f3f5bac6521d" class="Switch">Sign-ups are closed.</label> <input id="switch-53fb247e-5681-44c1-b8a0-f3f5bac6521d" name="signUpSwitch" type="checkbox" role="switch" ws-send hx-ext="ws,morph" hx-swap-oob="morph"> </div> </div> 💾 Settings persisted to disk. kitten.db.settings.allowSignUps = false Persisted as: '_[[`allowSignUps`]] = false;\n' 🐱 💬

                                                                                      [?]Aral Balkan » 🌐
                                                                                      @aral@mastodon.ar.al

                                                                                      You also have some helpful new error messages to look forward to :)

                                                                                      Screenshot of error message in Kitten (terminal output):

❌ Error: Cannot stream component update as component does not have a single root DOM node.

What your component update looks like currently:

<div id="counter" aria-live="assertive">3</div>
<style inline>#counter { color: green; }</style>
<style>#counter { font-size: 3em; margin: 0.25em 0; }</style>

What it would look like with a single root DOM node (e.g., a <div>):

<div>
  <div id="counter" aria-live="assertive">3</div>
  <style inline>#counter { color: green; }</style>
  <style>#counter { font-size: 3em; margin: 0.25em 0; }</style>
</div>

                                                                                      Alt...Screenshot of error message in Kitten (terminal output): ❌ Error: Cannot stream component update as component does not have a single root DOM node. What your component update looks like currently: <div id="counter" aria-live="assertive">3</div> <style inline>#counter { color: green; }</style> <style>#counter { font-size: 3em; margin: 0.25em 0; }</style> What it would look like with a single root DOM node (e.g., a <div>): <div> <div id="counter" aria-live="assertive">3</div> <style inline>#counter { color: green; }</style> <style>#counter { font-size: 3em; margin: 0.25em 0; }</style> </div>

                                                                                        [?]Tykayn » 🌐
                                                                                        @tykayn@mastodon.cipherbliss.com

                                                                                        trouve les hydrants les plus chauds de ta région!

                                                                                        cercles rouges autour des hydrants dans osm mon commerce sur la ville d'échirolles

                                                                                        Alt...cercles rouges autour des hydrants dans osm mon commerce sur la ville d'échirolles

                                                                                        [?]Aral Balkan » 🌐
                                                                                        @aral@mastodon.ar.al

                                                                                        PS. The updated component render you’re seeing streamed to the browser in the previous screenshot is the code rendered by Kitten (showing the underlying HTMX internals, etc.)

                                                                                        The code you write in Kitten is considerably less complicated.

                                                                                        The attached screenshot is all the code in the simple counter example (all in one file, index.page.ts). To run it, you’d just run `kitten` in the directory that file is in and then hit https://localhost.

                                                                                        Screenshot of Helix Editor showing all the code (52 lines) for the stateful counter example, split across two panes so it can be shown at a larger font size:

/**
  Type-safe counter example using stateful Kitten components.
*/
import kitten from '@small-web/kitten'

// Declare database schema and initialise, if necessary.
type Schema = { counter?: { count: number } }
const database = (kitten.db as Schema).counter ??= { count: 0 }

export default class CounterPage extends kitten.Page {
  counter

  constructor () {
    super()
    this.counter = this.addChild(new Counter())
  }

  override html () {
    return kitten.html`
      <page css>
      <h1>Counter</h1>
      <${this.counter} />
    `
  }
}

class Counter extends kitten.Component {
  override html () {
    return kitten.html`
      <div morph>
        <div aria-live='assertive'>
          ${database.count}
        </div>
        <button name='update' connect data='{value: -1}' aria-label='decrement'>-</button>
        <button name='update' connect data='{value: 1}' aria-label='increment'>+</button>
        <style inline>
          @scope {
            div {
              font-size: 3em;
              margin: 0.25em 0;
            }
          }
        </style>
      </div>
    `
  }

  onUpdate (data: { value: number } ) {
    database.count += data.value
    this.update()
  }
}

                                                                                        Alt...Screenshot of Helix Editor showing all the code (52 lines) for the stateful counter example, split across two panes so it can be shown at a larger font size: /** Type-safe counter example using stateful Kitten components. */ import kitten from '@small-web/kitten' // Declare database schema and initialise, if necessary. type Schema = { counter?: { count: number } } const database = (kitten.db as Schema).counter ??= { count: 0 } export default class CounterPage extends kitten.Page { counter constructor () { super() this.counter = this.addChild(new Counter()) } override html () { return kitten.html` <page css> <h1>Counter</h1> <${this.counter} /> ` } } class Counter extends kitten.Component { override html () { return kitten.html` <div morph> <div aria-live='assertive'> ${database.count} </div> <button name='update' connect data='{value: -1}' aria-label='decrement'>-</button> <button name='update' connect data='{value: 1}' aria-label='increment'>+</button> <style inline> @scope { div { font-size: 3em; margin: 0.25em 0; } } </style> </div> ` } onUpdate (data: { value: number } ) { database.count += data.value this.update() } }

                                                                                          [?]Aral Balkan » 🌐
                                                                                          @aral@mastodon.ar.al

                                                                                          Very excited about the new stateful components model in Kitten¹ that I’m looking forward to releasing this week (finally) and the amount of visibility you can now get into the flow of your Kitten apps in the Kitten Interactive Shell (REPL)².

                                                                                          Since the new model is a breaking change (Kitten is prerelease) I’m in the middle of updating our own apps/sites and I still need to document everything. So it will take me a few days to do all that but then I’m very much looking forward to focussing on finishing up Catalyst and Yarn³ for launch this year.

                                                                                          It’s been a six year trek to reach what will essentially be the starting point of the Small Web :)

                                                                                          💕

                                                                                          PS. If you want to support our work, please see small-tech.org/fund-us/

                                                                                          ¹ kitten.small-web.org
                                                                                          ² kitten.small-web.org/tutorials
                                                                                          ³ ar.al/2024/06/24/small-web-com

                                                                                          Screenshot of the Kitten REPL running in WezTerm:

🐢 Kitten Interactive Shell (REPL) ctrl-d to exit; .help for assistance.

 Key
🐱 Kitten      📄  Page        🛜  Server event
🧩 Component   ◉━◉ Connected   ◉╌◌ Disconnected

🐱 💬 kitten.$showEventsOnTable('counter')

  undefined

🐱 💬

📄 → 🐱: Client event

« update » Counter (KittenComponent) c9333a86
{
  update: '',
  value: 1,
  _componentId: 'kid-c9333a86-208f-468a-93f6-c6c706a13148'
}


💾 Counter updated in memory.

{ count: 41 } => count = 42


🐱 → 📄: Streaming HTML

<div data-kitten-component id="kid-c9333a86-208f-468a-93f6-c6c706a13148" hx-swap-oob="morph" hx-ext="morph">
  <div aria-live="assertive">42</div>
  <button name="update" aria-label="decrement" ws-send hx-ext="ws" hx-vals="js:{value: -1}">-</button>
  <button name="update" aria-label="increment" ws-send hx-ext="ws" hx-vals="js:{value: 1}">+</button>
  <style inline>@scope { div { font-size: 3em; margin: 0.25em 0; } }</style>
</div>


💾 Counter table update.

kitten.db.counter.count = 42

Persisted as:

'_[[`count`]] = 42;\n'

                                                                                          Alt...Screenshot of the Kitten REPL running in WezTerm: 🐢 Kitten Interactive Shell (REPL) ctrl-d to exit; .help for assistance. Key 🐱 Kitten 📄 Page 🛜 Server event 🧩 Component ◉━◉ Connected ◉╌◌ Disconnected 🐱 💬 kitten.$showEventsOnTable('counter') undefined 🐱 💬 📄 → 🐱: Client event « update » Counter (KittenComponent) c9333a86 { update: '', value: 1, _componentId: 'kid-c9333a86-208f-468a-93f6-c6c706a13148' } 💾 Counter updated in memory. { count: 41 } => count = 42 🐱 → 📄: Streaming HTML <div data-kitten-component id="kid-c9333a86-208f-468a-93f6-c6c706a13148" hx-swap-oob="morph" hx-ext="morph"> <div aria-live="assertive">42</div> <button name="update" aria-label="decrement" ws-send hx-ext="ws" hx-vals="js:{value: -1}">-</button> <button name="update" aria-label="increment" ws-send hx-ext="ws" hx-vals="js:{value: 1}">+</button> <style inline>@scope { div { font-size: 3em; margin: 0.25em 0; } }</style> </div> 💾 Counter table update. kitten.db.counter.count = 42 Persisted as: '_[[`count`]] = 42;\n'

                                                                                            [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                                                                                            @Steve12L@mamot.fr

                                                                                            ⋅ Les 20 langages informatiques les plus populaires en juin 2026

                                                                                            blogdumoderateur.com/20-langag

                                                                                              [?]Nigel » 🌐
                                                                                              @nigelharpur@musicians.today

                                                                                              I'd like an Android volume control where I could set a different ring/notification __*volume*__ for an individual contact.

                                                                                              So for example I could have my beloved's ring/notification volume on maximum, whilst leaving all other contacts at my usual, less intrusive, level.

                                                                                              Different contact ringtones is no problem, it's __*volume*__ that I am looking for.

                                                                                                adb boosted

                                                                                                [?]adb » 🌐
                                                                                                @adbenitez@mastodon.de

                                                                                                AodeRelay boosted

                                                                                                [?]Anthony » 🌐
                                                                                                @abucci@buc.ci

                                                                                                Lately I've been using an ordinary XMPP chat app as a todo list, and it is almost great for this but definitely adequate. An actual todo-list-y user interface would make it nearly perfect for what I'd want from todo list software.

                                                                                                Open up chat to myself. Send a chat for each todo item. Use a reaction emoji to indicate status (done/cancelled/etc). Reply to the chat to add additional information and/or surface the item. All of it is shared among all devices, encrypted, and generates notifications. The one feature I'd like that I haven't figured out how to hack manually is scheduled reminders. An XMPP chat app that had scheduled messages could do it! I haven't found an XEP specifically about this but XEP-0471 might be bent to this purpose.


                                                                                                  adb boosted

                                                                                                  [?]adb » 🌐
                                                                                                  @adbenitez@mastodon.de

                                                                                                  adb boosted

                                                                                                  [?]adb » 🌐
                                                                                                  @adbenitez@mastodon.de

                                                                                                  @benrob0329 it is extremely cool, for example, I am learning and I have created an app to practice sentences for myself, all is synchronized across devices so I can stop in the computer and pick the phone and continue the practice on the phone exactly where I left it in the PC all without any 3rd party service! 🤩🤯

                                                                                                    Martouf boosted

                                                                                                    [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                    @FakeScrumStats@techhub.social

                                                                                                    Girl (labeled New Hire) with blue hair sitting next to an old man (labeled Me) on a train.

Caption: How I feel when a fresh college grad joins the department

                                                                                                    Alt...Girl (labeled New Hire) with blue hair sitting next to an old man (labeled Me) on a train. Caption: How I feel when a fresh college grad joins the department

                                                                                                      adb boosted

                                                                                                      [?]adb » 🌐
                                                                                                      @adbenitez@mastodon.de

                                                                                                      stanlog boosted

                                                                                                      [?]Entr'ouvert SCOP » 🌐
                                                                                                      @entrouvert@mastodon.libre-entreprise.com

                                                                                                      L’équipe Entr’ouvert s’agrandit encore : nous recrutons un·e développeur·euse Python/Django.
                                                                                                      Consultez l'offre et candidatez avant le 7 juin : entrouvert.com/actualites/2026

                                                                                                        3 ★ 5 ↺
                                                                                                        Dๅᴉĸo boosted

                                                                                                        [?]oldsysops » 🌐
                                                                                                        @oldsysops@social.dk-libre.fr

                                                                                                        stanlog boosted

                                                                                                        [?]Entr'ouvert SCOP » 🌐
                                                                                                        @entrouvert@mastodon.libre-entreprise.com

                                                                                                        L’équipe Entr’ouvert s’agrandit encore : nous recrutons un·e développeur·euse Python/Django.
                                                                                                        Consultez l'offre et candidatez avant le 7 juin : entrouvert.com/actualites/2026

                                                                                                          [?]nico » 🌐
                                                                                                          @n@gotosocial.tourmentine.com

                                                                                                          [?]nico » 🌐
                                                                                                          @n@gotosocial.tourmentine.com

                                                                                                          mmu_man boosted

                                                                                                          [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                          @FakeScrumStats@techhub.social

                                                                                                          Illustration of a gray haired man in a suit (labeled executives) holding a bow and arrow (arrow labeled AI) pointing at a man (labeled dev team) who is grabbing the bow

                                                                                                          Alt...Illustration of a gray haired man in a suit (labeled executives) holding a bow and arrow (arrow labeled AI) pointing at a man (labeled dev team) who is grabbing the bow

                                                                                                            ffoodd boosted

                                                                                                            [?]Ana Tudor 🐯 » 🤖 🌐
                                                                                                            @anatudor@mastodon.social

                                                                                                            My take on `box-sizing: border-box` reddit.com/r/css/comments/1tbl

                                                                                                            TL;DR unlearn adding it to the reset, as well as setting dimensions (width/ height) explicitly.

                                                                                                            👋 to @kevinpowell for giving me a video to link to 😀

                                                                                                            👋 to @mia for the cool article on `body` margin to reference 😎

                                                                                                              [?]Mark Wyner Won’t Comply :vm: » 🌐
                                                                                                              @markwyner@mas.to

                                                                                                              GitLab CFO, Brian Robins, says they are “aligned with the goals of DOGE, because the company’s software tools aim to help people do more with less. What the Department of Government Efficiency is trying to do is what GitLab does.”

                                                                                                              archive.is/okSlz

                                                                                                              You either support fascism or you don’t. It’s binary. There’s no gray area or “aligning.”

                                                                                                              Considering GitLab? Don’t.

                                                                                                              Use @Codeberg instead.

                                                                                                              (Hat tip @aphyr)

                                                                                                                [?]nico » 🌐
                                                                                                                @n@gotosocial.tourmentine.com

                                                                                                                [?]⁢Ƥĥąɳʈȯɱ :fedora: 🎸 🏳️‍🌈 ⁂ » 🌐
                                                                                                                @Steve12L@mamot.fr

                                                                                                                ⋅ Les 20 langages informatiques les plus populaires en mai 2026

                                                                                                                blogdumoderateur.com/20-langag

                                                                                                                  [?]Aral Balkan » 🌐
                                                                                                                  @aral@mastodon.ar.al

                                                                                                                  RE: chaos.social/@lucaslove/116554

                                                                                                                  Indie Mac App Store alternative that’s free for FOSS. Sounds good to me :)

                                                                                                                    [?]nico » 🌐
                                                                                                                    @n@gotosocial.tourmentine.com

                                                                                                                    [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                                    @FakeScrumStats@techhub.social

                                                                                                                    Picture of a skeleton at a desk

Caption:
After being forced to transition to AI Coding
The company now tells us to hold up as they deal with a monthly invoice that was much larger than expected

                                                                                                                    Alt...Picture of a skeleton at a desk Caption: After being forced to transition to AI Coding The company now tells us to hold up as they deal with a monthly invoice that was much larger than expected

                                                                                                                      [?]nico » 🌐
                                                                                                                      @n@gotosocial.tourmentine.com

                                                                                                                      [?]Aral Balkan » 🌐
                                                                                                                      @aral@mastodon.ar.al

                                                                                                                      One of the beautiful things about Sublime Merge¹ (and git/diffs) is that you can see exactly what has changed in complex expected values in tests to ensure that you’re updating the tests without overlooking regressions.

                                                                                                                      (This is from the Markdown page loader tests in Kitten², as I’m refactoring to implement the upcoming breaking change in the stateful components API³ as it affects the generated code for stateful layout components in Markdown pages.)

                                                                                                                      ¹ Which I always have running, full-screen on its own monitor.
                                                                                                                      ² kitten.small-web.org
                                                                                                                      ³ Currently experimental and undocumented but that should change once this breaking change is implemented.

                                                                                                                      Screenshot of Sublime Merge displaying a lovely side-by-side diff of my ES Module Loader tests for Kitten, making it very clear exactly what has changed between normalised expected values of various Kitten HTML template renders (in this case, the generated code for the page – if it’s a stateless (functional) Kitten page – is defined as a regular function instead of as a closure (arrow function).

                                                                                                                      Alt...Screenshot of Sublime Merge displaying a lovely side-by-side diff of my ES Module Loader tests for Kitten, making it very clear exactly what has changed between normalised expected values of various Kitten HTML template renders (in this case, the generated code for the page – if it’s a stateless (functional) Kitten page – is defined as a regular function instead of as a closure (arrow function).

                                                                                                                        [?]nico » 🌐
                                                                                                                        @n@gotosocial.tourmentine.com

                                                                                                                        [?]screwlisp » 🌐
                                                                                                                        @screwlisp@gamerplus.org

                                                                                                                        I haven't clicked the link yet, but I guess I should also reannounce Robert Smith's new for super-macro () named mine.

                                                                                                                        coalton-lang.github.io/2026042

                                                                                                                        @vindarel @sanityinc @simon_brooke @jackdaniel @dougmerritt (reverse-chronological earlier toots).

                                                                                                                          David Gerard boosted

                                                                                                                          [?]Anthony » 🌐
                                                                                                                          @abucci@buc.ci

                                                                                                                          The typical webapp login process for me is anywhere from 5 to 7 steps, and I'd say I give up about 5-10% of the time after the 2nd CAPTCHA. I can't imagine this is good for anybody, and it almost surely does not reduce abuse either. Just a swirling dark pattern feeding on itself. Everyone likes to ape post-9/11 airport "security" for some reason.


                                                                                                                            Gwenn boosted

                                                                                                                            [?]Le Journal du hacker » 🌐
                                                                                                                            @journalduhacker@framapiaf.org

                                                                                                                            [?]Aral Balkan » 🌐
                                                                                                                            @aral@mastodon.ar.al

                                                                                                                            🥳 New Kitten¹ release!

                                                                                                                            Implemented workaround:

                                                                                                                            There is a bug in the CommonMark spec that results in preformatted code with empty lines nested in an HTML node not rendering correctly.²

                                                                                                                            In Kitten, this previously threw an error (see #294³ and also #318⁴).

                                                                                                                            Kitten now works around the issue in its own parser.

                                                                                                                            Full change log: codeberg.org/kitten/app/src/br

                                                                                                                            Enjoy!

                                                                                                                            :kitten:💕

                                                                                                                            ¹ kitten.small-web.org
                                                                                                                            ² github.com/commonmark/commonma
                                                                                                                            ³ codeberg.org/kitten/app/issues
                                                                                                                            codeberg.org/kitten/app/issues

                                                                                                                              [?]SDF.ORG » 🌐
                                                                                                                              @SDF@mastodon.sdf.org

                                                                                                                              We are offering another free loaner MNT Reform which is now available for Plan9 development in the USA, Canada and Japan.

                                                                                                                              Please contact 'membership' at sdf.org to tell us about your intent and apply.

                                                                                                                              mnt reform running plan9

                                                                                                                              Alt...mnt reform running plan9

                                                                                                                              mnt reform running plan9

                                                                                                                              Alt...mnt reform running plan9

                                                                                                                              mnt reform running plan9

                                                                                                                              Alt...mnt reform running plan9

                                                                                                                                Marcos Dione boosted

                                                                                                                                [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                                                @FakeScrumStats@techhub.social

                                                                                                                                Image shows a person sitting at a massive, circular desk submerged under an overwhelming amount of papers, books, and laptops.

Caption: What a company's Jira instance looks like during my first day on the job

                                                                                                                                Alt...Image shows a person sitting at a massive, circular desk submerged under an overwhelming amount of papers, books, and laptops. Caption: What a company's Jira instance looks like during my first day on the job

                                                                                                                                  [?]Aral Balkan » 🌐
                                                                                                                                  @aral@mastodon.ar.al

                                                                                                                                  In what I’m telling myself is in no way feature creep, I just added experimental TypeScript support to Kitten in a dev branch.

                                                                                                                                  I’m actually surprised how easy it was to do. Given I’m already using esbuild to create the Kitten bundle and already using a custom module loader, the change was basically making esbuild a dependency instead of a dev dependency, lazily transforming .ts files in the loader, and updating a few places in the code to ensure that you can use .ts as an extension in special Kitten extensions like .page.js, .post.js, etc. (so now you can have page.ts, post.ts, etc.)

                                                                                                                                  Everything works the same way it does with TypeScript as it does with JavaScript – there’s no scaffolding or any additional workflow required.

                                                                                                                                  For obvious reasons, I won’t be deploying this at end of day Friday but, hopefully, along with the major breaking change to the stateful component API, I plan to next week.

                                                                                                                                  More details in the work-in-progress change log:
                                                                                                                                  codeberg.org/kitten/app/src/br

                                                                                                                                  :kitten:💕

                                                                                                                                    [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                                                    @FakeScrumStats@techhub.social

                                                                                                                                    The image captures a moment of a peregrine falcon grooming its talons, which appears to the human eye as a "shhh" gesture.

Caption: Me to the rest of the team when it's Friday afternoon and the meeting organizer asks if anyone has anything else they want to discuss.

                                                                                                                                    Alt...The image captures a moment of a peregrine falcon grooming its talons, which appears to the human eye as a "shhh" gesture. Caption: Me to the rest of the team when it's Friday afternoon and the meeting organizer asks if anyone has anything else they want to discuss.

                                                                                                                                      [?]nico » 🌐
                                                                                                                                      @n@gotosocial.tourmentine.com

                                                                                                                                      [?]nico » 🌐
                                                                                                                                      @n@gotosocial.tourmentine.com

                                                                                                                                      [?]Daniel o secours » 🌐
                                                                                                                                      @dad@mastodon.mim-libre.fr

                                                                                                                                      @bortzmeyer pour tabs vs spaces, j’ai la solution : both

                                                                                                                                      emacswiki.org/emacs/SmartTabs

                                                                                                                                      3 panels comic strip:
1. A 40 years old man in suit says “spaces” and a 30 years old man says “tabs”
2. A third youger man says “both”
3. The 30 years old man is punching the younger on the ground and the 40 years old stand with a base ball bat preparing to hit the younger

                                                                                                                                      Alt...3 panels comic strip: 1. A 40 years old man in suit says “spaces” and a 30 years old man says “tabs” 2. A third youger man says “both” 3. The 30 years old man is punching the younger on the ground and the 40 years old stand with a base ball bat preparing to hit the younger

                                                                                                                                        [?]nico » 🌐
                                                                                                                                        @n@gotosocial.tourmentine.com

                                                                                                                                        [?]Aral Balkan » 🌐
                                                                                                                                        @aral@mastodon.ar.al

                                                                                                                                        Oh, you just slapped a 1MB image on your web page? That’s nice.

                                                                                                                                        Back in the day, folks were hiding running code and data in the graphics of their games that had to fit into 22KB.

                                                                                                                                        revs.bbcelite.com/deep_dives/h

                                                                                                                                        Screenshot of BBC Micro driving game Rev with the code and data normally hidden in blue in the sky shown in yellow.

                                                                                                                                        Alt...Screenshot of BBC Micro driving game Rev with the code and data normally hidden in blue in the sky shown in yellow.

                                                                                                                                          [?]Fabien LOISON (FLOZz) » 🌐
                                                                                                                                          @FLOZz@mastodon.social

                                                                                                                                          J'ai 2 fichiers identiques de 600 octets précisément stockés sur la même partition NTFS.

                                                                                                                                          L'un prend (soit disant) 0 octet d'espace sur le disque, l'autre 4096 octets.

                                                                                                                                          Je trouve ça rigolo 😄

                                                                                                                                          (je suis en train de bosser sur une fonction qui estime l'espace disque occupé par un ensemble de dossiers et de fichier sur un volume NTFS ^^)

                                                                                                                                          Capture d'écran de la fenêtre de propriété de l'explorateur de fichier Windows de deux fichiers identiques.

À gauche: fichier "a.txt"
Size: 600 Bytes
Size on disk: 0 Bytes

À droite: "abcdefghijklmnopqrstuvwxyz.txt"
Size: 600 Bytes
Size on disk: 4096 Bytes

                                                                                                                                          Alt...Capture d'écran de la fenêtre de propriété de l'explorateur de fichier Windows de deux fichiers identiques. À gauche: fichier "a.txt" Size: 600 Bytes Size on disk: 0 Bytes À droite: "abcdefghijklmnopqrstuvwxyz.txt" Size: 600 Bytes Size on disk: 4096 Bytes

                                                                                                                                            [?]nico » 🌐
                                                                                                                                            @n@gotosocial.tourmentine.com

                                                                                                                                            AodeRelay boosted

                                                                                                                                            [?]Anthony » 🌐
                                                                                                                                            @abucci@buc.ci

                                                                                                                                            I cosign this sentiment from Ross Barkan's Substack, and would add that it extends to software development as well:
                                                                                                                                            I’ve made this point before about how inane AI hype is now, but a computer beat the best chess player in the world in 1997. No one pretended, after 1997, it wasn’t worthwhile to have humans compete in chess. In fact, the world of chess developed strict protocols around computer use and you can get banned from tournaments if you use a computer program as you play. You are certainly shamed and mocked.

                                                                                                                                            AI and writing needs to be treated the same way. I do think people should be shamed for using AI to help them write creatively. It’s an embarrassment, and a form of cheating.


                                                                                                                                              [?]nico » 🌐
                                                                                                                                              @n@gotosocial.tourmentine.com

                                                                                                                                              mortal boosted

                                                                                                                                              [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                                                              @FakeScrumStats@techhub.social

                                                                                                                                              That's why they abbreviate a Community of Practice as "CoP".

                                                                                                                                              A man (labeled "Me who updated my Jira ticket incorrectly") being chased by baton welding police (labeled "Scrum master community of practice") on horseback.

                                                                                                                                              Alt...A man (labeled "Me who updated my Jira ticket incorrectly") being chased by baton welding police (labeled "Scrum master community of practice") on horseback.

                                                                                                                                                ffoodd boosted

                                                                                                                                                [?]𝕂𝚞𝚋𝚒𝚔ℙ𝚒𝚡𝚎𝚕™ » 🌐
                                                                                                                                                @kubikpixel@chaos.social

                                                                                                                                                One of the most popular JavaScript packages on earth Axios has been compromised

                                                                                                                                                The Axios NPM package has been compromised and the maintainer of the project has been locked out of their account. This will go down in history as one of the most successful software supply chain attacks ever

                                                                                                                                                💥 opensourcemalware.com/blog/axi

                                                                                                                                                  [?]Aral Balkan » 🌐
                                                                                                                                                  @aral@mastodon.ar.al

                                                                                                                                                  So I just bought @nileane’s TinyStart launcher and, yep, it’s beautiful.

                                                                                                                                                  Minimalist in the best possible way. I’m keeping Spotlight around for the moment but already I’m not sure why I would use it for anything.

                                                                                                                                                  So lovely to see indie devs showing trillion-dollar corporations how it should be done.

                                                                                                                                                  💕

                                                                                                                                                  The main TinyStart launcher window showing my most launched apps and links (for the moment, WezTerm, the Catalyst web site, and Sublime Merge).

                                                                                                                                                  Alt...The main TinyStart launcher window showing my most launched apps and links (for the moment, WezTerm, the Catalyst web site, and Sublime Merge).

                                                                                                                                                  TinyStart’s beautiful emoji picker, with my last used emoji (cat face) in the Recent list, followed by the Smileys & Emotion section.

                                                                                                                                                  Alt...TinyStart’s beautiful emoji picker, with my last used emoji (cat face) in the Recent list, followed by the Smileys & Emotion section.

                                                                                                                                                  TinyStart’s settings panel, showing the Links section active with links I’ve entered that I want to access quickly (the Kitten and Catalyst web sites and their source repository pages as well as the Gaza Verified page).

                                                                                                                                                  Alt...TinyStart’s settings panel, showing the Links section active with links I’ve entered that I want to access quickly (the Kitten and Catalyst web sites and their source repository pages as well as the Gaza Verified page).

                                                                                                                                                    [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                                                                    @FakeScrumStats@techhub.social

                                                                                                                                                    Randy (labeled "QA waiting for the build") from the TV show My Name is Earl, looks like hes waiting while Earl (labeled "Dev after telling QA that the build is just about ready for them") is up against a door through which an arm (labeled "build errors") broke through the door and is strangling him

                                                                                                                                                    Alt...Randy (labeled "QA waiting for the build") from the TV show My Name is Earl, looks like hes waiting while Earl (labeled "Dev after telling QA that the build is just about ready for them") is up against a door through which an arm (labeled "build errors") broke through the door and is strangling him

                                                                                                                                                      [?]nico » 🌐
                                                                                                                                                      @n@gotosocial.tourmentine.com

                                                                                                                                                      mathieui boosted

                                                                                                                                                      [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                                                                      @FakeScrumStats@techhub.social

                                                                                                                                                      Smiling man pointing to a fire burning under an overpass.

Caption: Me during sprint review

                                                                                                                                                      Alt...Smiling man pointing to a fire burning under an overpass. Caption: Me during sprint review

                                                                                                                                                        [?]Aral Balkan » 🌐
                                                                                                                                                        @aral@mastodon.ar.al

                                                                                                                                                        🥳 New Kitten¹ Release

                                                                                                                                                        • Adds Kitten Introspection API

                                                                                                                                                        I’ll record a video this week demonstrating it.

                                                                                                                                                        In the meanwhile, check out the change log for details:
                                                                                                                                                        codeberg.org/kitten/app/src/br

                                                                                                                                                        Enjoy!

                                                                                                                                                        :kitten:💕

                                                                                                                                                        ¹ kitten.small-web.org

                                                                                                                                                          [?]Aral Balkan » 🌐
                                                                                                                                                          @aral@mastodon.ar.al

                                                                                                                                                          Me: I really need to launch the things I’m building with Kitten¹ this year.

                                                                                                                                                          Also me: You know what would be sweet? If I added an introspection API to make working with the Kitten Shell (REPL)² easier.

                                                                                                                                                          (It is going to be sweet though. Prototyping it in the REPL now and I’ll record a little demo when I’m done and it’s released. It’s going to make examining and affecting the state of the client from the server interactively even easier.)

                                                                                                                                                          ¹ kitten.small-web.org
                                                                                                                                                          ² kitten.small-web.org/tutorials

                                                                                                                                                            [?]Aral Balkan » 🌐
                                                                                                                                                            @aral@mastodon.ar.al

                                                                                                                                                            You know how you’re in the middle of a process and you refresh a web page and it loses state?

                                                                                                                                                            So that sucks.

                                                                                                                                                            With Kitten¹ – when using the new state-maintaining/class-based and event model-based component model – it’s easy to have flowing interfaces that animate between states, etc., that don’t lose state if you refresh the page (or open another tab).

                                                                                                                                                            What you can’t do on the Web, however, is restore the state of any cross-origin iframes. (As you have no visibility into their contents to take a snapshot, etc.)

                                                                                                                                                            This is something I ran into with the embedded Stripe component I’m using in Catalyst². Specifically, it has a success state that I want to restore so the interface, which uses selective disclosure and has animated to that step in the sign up process, doesn’t jump if you refresh it or look different if you open it in another tab.

                                                                                                                                                            So what do you do if you’re obsessed with making things work as well as possible?

                                                                                                                                                            Apparently, this:

                                                                                                                                                            1. You go and manually save the Stripe iframe’s HTML and relevant CSS

                                                                                                                                                            2. You notice that it is ~371KB in size and you sigh

                                                                                                                                                            3. You use a combination of automated and manual methods to whittle that down to a 4.2KB HTML/CSS snapshot of the state.

                                                                                                                                                            4. You make that into a Kitten component³ so you can set the bits that are dynamic⁴

                                                                                                                                                            5. You make sure that it matches the original exactly using PixelSnap 2 guides⁵ (see screenshot; and yes, I told you I’m obsessed) :)

                                                                                                                                                            6. Et voila!

                                                                                                                                                            🤷‍♂️

                                                                                                                                                            ¹ kitten.small-web.org
                                                                                                                                                            ² catalyst.small-web.org
                                                                                                                                                            ³ kitten.small-web.org/tutorials
                                                                                                                                                            codeberg.org/project-catalyst/
                                                                                                                                                            pixelsnap.com

                                                                                                                                                            Screenshot of the restored state of the Stripe component’s success state using a mock HTML/CSS snapshot of the state with some dynamic areas included. The screen is full of horizontal and vertical guides aligned to areas of the success message to ensure that the mock is pixel perfect.

                                                                                                                                                            Alt...Screenshot of the restored state of the Stripe component’s success state using a mock HTML/CSS snapshot of the state with some dynamic areas included. The screen is full of horizontal and vertical guides aligned to areas of the success message to ensure that the mock is pixel perfect.

                                                                                                                                                              [?]Aral Balkan » 🌐
                                                                                                                                                              @aral@mastodon.ar.al

                                                                                                                                                              🥳 New Kitten Release

                                                                                                                                                              • Fix: Events on `KittenComponent` hierarchies are now bubbled in reverse (from children down to parents). This provides for predictable event firing in cases where parents might emit events (e.g., a page emitting an event from its `onConnect()` handler). Your existing code should work as before with certain edge cases that might have broken before no longer breaking.

                                                                                                                                                              Enjoy!

                                                                                                                                                              :kitten:💕

                                                                                                                                                                [?]Aral Balkan » 🌐
                                                                                                                                                                @aral@mastodon.ar.al

                                                                                                                                                                🥳 New Kitten Release

                                                                                                                                                                • `KittenComponent` (and thereby `KittenPage`) gains an `emit()` method.

                                                                                                                                                                Use this to bubble events from your page to all child components or from any component to all of its child components.

                                                                                                                                                                This is useful, for example, for setting the state of a page or a component where each child component knows how to present itself for that state.

                                                                                                                                                                (That, in turn, is useful if you want to be able to restore state based on URLs.)

                                                                                                                                                                The naming convention-based mapping of event names to event handler names is the same as for the events you receive from the client. So an event called `myEvent` will result in `onMyEvent` handlers on child components being called.

                                                                                                                                                                (Also update @small-web/kitten to version 7.1.0 to get language intelligence for the new method.)

                                                                                                                                                                Enjoy!

                                                                                                                                                                :kitten:💕

                                                                                                                                                                  [?]nico » 🌐
                                                                                                                                                                  @n@gotosocial.tourmentine.com

                                                                                                                                                                  [?]nico » 🌐
                                                                                                                                                                  @n@gotosocial.tourmentine.com

                                                                                                                                                                  mathieui boosted

                                                                                                                                                                  [?]Fake Scrum Stats Memes & Humor » 🌐
                                                                                                                                                                  @FakeScrumStats@techhub.social

                                                                                                                                                                  This image captures a massive fire at the Platt's Eyot boatyard in Hampton, south-west London, which occurred on May 3, 2021. In the picture a man casually sits on a boat using his mobile device.

Caption: Production is down and management is blowing up my phone, but since they made it clear that I can't work from home, I'll just sit in my car until it's officially time to head inside

                                                                                                                                                                  Alt...This image captures a massive fire at the Platt's Eyot boatyard in Hampton, south-west London, which occurred on May 3, 2021. In the picture a man casually sits on a boat using his mobile device. Caption: Production is down and management is blowing up my phone, but since they made it clear that I can't work from home, I'll just sit in my car until it's officially time to head inside

                                                                                                                                                                    [?]Aral Balkan » 🌐
                                                                                                                                                                    @aral@mastodon.ar.al

                                                                                                                                                                    🥳 New @small-web/kitten (Kitten globals) release.

                                                                                                                                                                    • Improved type information.
                                                                                                                                                                    • Now plays nice with tsconfig.json and tsc.
                                                                                                                                                                    • Adds `rawBody` to `KittenRequest`.

                                                                                                                                                                    This is not really a breaking change (in that it won’t break your apps) but I’m releasing it as a major version update so as not to surprise you if you notice the type information is different (more detailed than before).

                                                                                                                                                                    To update in your kitten apps:
                                                                                                                                                                    npm install @small-web/kitten@7

                                                                                                                                                                    For more information on how to use this module, see the Kitten Type Safety tutorial:
                                                                                                                                                                    kitten.small-web.org/tutorials

                                                                                                                                                                    Full change log:
                                                                                                                                                                    codeberg.org/kitten/globals/sr

                                                                                                                                                                    Enjoy!

                                                                                                                                                                    :kitten:💕