Monthly Shaarli

All links of one month in a single page.

June, 2024

MERC: The MErcilessly Redundant Config language

Une syntaxe pour les fichiers de configuration qui a l’air beaucoup lisible et cohérente que les formats actuels (json, yaml, toml, …)

Pure Python Web Apps with Reflex

Un framework pour réaliser des applications Web dynamiques exclusivement en #Python.
Cela crée des composants type React - pouvant être réutilisés dans des layouts (à définir en Python également).
L'exemple repris sur la page d'accueil est celui-ci :

import reflex as rx

class State(rx.State):
    count: int = 0

    def increment(self):
        self.count += 1

    def decrement(self):
        self.count -= 1

def index():
    return rx.hstack(
        rx.button(
            "Decrement",
            color_scheme="ruby",
            on_click=State.decrement,
        ),
        rx.heading(State.count, font_size="2em"),
        rx.button(
            "Increment",
            color_scheme="grass",
            on_click=State.increment,
        ),
        spacing="4",
    )

app = rx.App()
app.add_page(index)
What is exactly Coolify and what are the core features?
thumbnail

Une alternative #PaaS self-hosted à fly.io / #heroku , mais qui a l'air de piocher des idées chez #terraform - en ne se plaçant que comme intermédiaire entre le gestionnaire (Coolify) et le serveur où le déploiement sera réalisé (Hetzner, ...).

A essayer ?

GitHub - DAGWorks-Inc/burr: Build applications that make decisions (chatbots, agents, simulations, etc...). Monitor, persist, and execute on your own infrastructure.
thumbnail

"With Burr you express your application as a #state machine (i.e. a graph/flowchart). You can (and should!) use it for anything in which you have to manage state, track complex decisions, add human feedback, or dictate an idempotent, self-persisting workflow."

Plusieurs chouettes idées pour un diagramme d'états - mais je ne vois pas trop comment l'utiliser 🤔

LHDG18. IA partout (justice nulle part)
thumbnail

Et l’avis de Gee sur les IA et la fin d’internet tel qu’on l’a connu.

A critique of Cara.app: the 'No AI' Instagram and Artstation copycat child.
thumbnail

Une chouette analyse de l’application Cara.app de la part de David Revoy - auteur de Pepper and Carrot, et utilisateur de Debian 🐧

Ruby: a great language for shell scripts! - Lucas Seiki Oshiro

#ruby is more than rails! (System calls en natif, multithreading à la portée du premier venu (moi), I/O super simples, …
L’idée de l’article est que cela pourrait facilement remplacer les scripts #bash 😉

SUPMEGA Support de vélo AirTag, Support de Protection en Alliage d'aluminium Cache AirTag sous Le Porte-bidon de vélo, résistant à l'eau et antivol (vis de sécurité et clé Allen incluses) : Amazon.fr: High-Tech

Support de vélo pour aller planquer un #AirTag, et sur lequel on peut encore fixer un porte gourde.

Ce n’est pas un antivol (l’AirTag prévient la personne si il la « suit » trop longtemps…), mais cela semble quand même être un chouette compromis (étanche) pour pas trop cher.

Statically Typed Functional Programming with Python 3.12

Une (re)définition de #Python (à partir de la 3.12) pour s'approcher de programmation fonctionnelle statiquement typée - et qui s'approche d' #OCaml ou #Haskell.

A partir de quelques définitions de base, cela donne des trucs très jolis comme :

>>> example = Let("x", 1, If(BinOp("<", "x", 2), 42, 0))
>>> eval({}, example)
42
EbookFoundation/free-programming-books · GitHub
thumbnail

Une liste d'ebooks libres sur la programmation #dev

Stop Using UUIDs in Your Database
thumbnail

Utiliser des #uuids sur de très grosses structures peut poser problème aux insertions (l'arbre sous-jacent doit être rebalancé) - et qu'il est nécessaire d'avoir 128 bits de stockage pour chaque clé - là où un entier pourrait suffire.

(mais je crois être tombé sur un article récemment qui indiquait qu'il fallait oublier les clés naturelles dans une #db relationnelle... 🤔)

Omakub — An Omakase Developer Setup for Ubuntu 24.04 by DHH
thumbnail

Turn a fresh #Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command.

… et ca, c’est la proposition de #DHH pour se débarrasser de #macOS

GitHub - xaitax/TotalRecall: This tool extracts and displays data from the Recall feature in Windows 11, providing an easy way to access information about your PC's activity snapshots.
thumbnail

La nouvelle fonctionnalité « recall » de Windows AI stocke ses informations en local, dans une base de données SQLite non protégée 👌

From dotenv to dotenvx: Next Generation Config Management | dotenvx
thumbnail

Un outil pour gérer les fichiers d’environnement qui est multi plateforme, multi environnement (locaux dev, …), multi langages et qui autorise le chiffrement des secrets précédents (même si je n’ai pas trop compris cette partie là 🙃) #dotenv

deps/accepted/0014-background-workers.rst at main · django/deps · GitHub
thumbnail

Une proposition d'implémentation de backgrounds-workers dans #django, avec trois possibilités d'exécution (Immediate, Database ou Dummy (pour les stocker en mémoire, donc pour les tests)) et plusieurs statuts prédéfinis (new, running, failed, complete).

Cela ressemble énormément aux tâches async que l'on trouve en .Net.

(et c'est déjà accepté comme Enchancement Proposal ➡️ cela va arriver 😉

Optimal SQLite settings for Django – Giovanni Collazo
thumbnail

Des réglages "optimaux" (je n'ai pas vérifié) pour configurer une DB SQLite pour une application #django :

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": BASE_DIR / "db.sqlite3",
        "OPTIONS": {
            "init_command": (
                "PRAGMA foreign_keys=ON;"
                "PRAGMA journal_mode = WAL;"
                "PRAGMA synchronous = NORMAL;"
                "PRAGMA busy_timeout = 5000;"
                "PRAGMA temp_store = MEMORY;"
                "PRAGMA mmap_size = 134217728;"
                "PRAGMA journal_size_limit = 67108864;"
                "PRAGMA cache_size = 2000;"
            ),
            "transaction_mode": "IMMEDIATE",
        },
    },
}
Les différences entre Bash et sh
GitHub - piku/piku: The tiniest PaaS you've ever seen. Piku allows you to do git push deployments to your own servers.
thumbnail

The tiniest #PaaS you've ever seen. #Piku allows you to do git push deployments to your own servers. - piku/piku

A Complete Guide for Using AsciiDoc in Linux
thumbnail

Plein de chouettes explications pour utiliser #AsciiDoc sur #Linux et produire quelques documents (.adoc, .pdf, docbook, ...).

Sauf que cela ne fonctionne pas avec Gwift :-(
Et qu'il y a pratiquement 1GB de dépendances (principalement à cause de #latex))