Weekly Shaarli
Week 25 (June 17, 2024)

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 😉

"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 🤔
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

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",
},
},
}

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 ?