1 private link
Une single board unit avec 8+4 coeurs CPU, quad-cores GPU, un NPU, jusqu'à 32GB de RAM, un port m2 pour un SSD (en plus d'une mmc de 128GB), ports usb 2 et 3, HDMI 8K, ... Pour 260$.
No need to say que le #RPi 5 est hors jeu 🫢
Une syntaxe pour les fichiers de configuration qui a l’air beaucoup lisible et cohérente que les formats actuels (json, yaml, toml, …)
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
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)
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.
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 😉
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
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 ?
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 liste d'ebooks libres sur la programmation #dev
"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 🤔
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... 🤔)
Et l’avis de Gee sur les IA et la fin d’internet tel qu’on l’a connu.
Une chouette analyse de l’application Cara.app de la part de David Revoy - auteur de Pepper and Carrot, et utilisateur de Debian 🐧