Skip to content

Commit c04f57f

Browse files
committed
feat: improve blog posts, events pages and homepage
1 parent 7cd6e1c commit c04f57f

26 files changed

+552
-36
lines changed

public/data/blog-posts.json

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,34 @@
55
"titleEn": "Welcome to the Python Catania blog",
66
"date": "2025-03-01",
77
"author": "Python Catania",
8+
"coverImage": "/images/events/event-306025381.jpg",
89
"content": "Siamo felici di annunciare il lancio del nostro nuovo blog dove condivideremo articoli tecnici, novità e aggiornamenti dalla community.",
910
"contentEn": "We are happy to announce the launch of our new blog where we will share technical articles, news and updates from the community.",
10-
"url": "https://github.com/PythonCatania"
11+
"fullContent": "Siamo felici di annunciare il lancio del nostro nuovo blog!\n\nIl blog di Python Catania nasce con l'obiettivo di essere un punto di riferimento per tutti gli appassionati del linguaggio Python nella nostra città e non solo. Qui troverete articoli tecnici scritti dai membri della community, resoconti dei nostri meetup, guide pratiche e tanto altro.\n\nChi può contribuire? Chiunque faccia parte della community! Se hai un'idea per un articolo, un progetto da raccontare o un'esperienza da condividere, contattaci. Il blog è aperto a tutti i livelli: dal principiante che muove i primi passi con Python all'esperto che vuole condividere pattern avanzati.\n\nRestate sintonizzati: nei prossimi mesi pubblicheremo i primi articoli tecnici, i recap dei meetup passati e molto altro. Bentornati nel futuro di Python Catania!",
12+
"fullContentEn": "We are happy to announce the launch of our new blog!\n\nThe Python Catania blog is created with the goal of being a reference point for all Python language enthusiasts in our city and beyond. Here you will find technical articles written by community members, reports from our meetups, practical guides and much more.\n\nWho can contribute? Anyone who is part of the community! If you have an idea for an article, a project to talk about or an experience to share, contact us. The blog is open to all levels: from the beginner taking their first steps with Python to the expert who wants to share advanced patterns.\n\nStay tuned: over the coming months we will publish the first technical articles, recaps of past meetups and much more. Welcome back to the future of Python Catania!"
1113
},
1214
{
1315
"id": 2,
1416
"title": "Python 3.13: Le novità più importanti",
1517
"titleEn": "Python 3.13: The most important new features",
1618
"date": "2025-01-15",
1719
"author": "Salvatore Rapisarda",
20+
"coverImage": "/images/events/event-304691223.jpg",
1821
"content": "Una panoramica delle funzionalità più interessanti introdotte in Python 3.13, dal nuovo interprete interattivo ai miglioramenti del GIL.",
1922
"contentEn": "An overview of the most interesting features introduced in Python 3.13, from the new interactive interpreter to GIL improvements.",
20-
"url": "https://github.com/PythonCatania"
23+
"fullContent": "Python 3.13 è arrivato con una serie di novità che rendono il linguaggio ancora più piacevole da usare. Vediamo insieme le più interessanti.\n\n**Nuovo REPL interattivo**\n\nIl REPL di Python 3.13 è stato completamente riscritto con supporto nativo per la sintassi multi-riga, completamento automatico migliorato e colori nella shell. Finalmente non serve più ipython per avere un'esperienza interattiva decente!\n\n**Free-threaded mode (PEP 703)**\n\nUna delle novità più attese: Python 3.13 introduce in via sperimentale la possibilità di disabilitare il GIL. Questo apre la strada al vero parallelismo sui thread, anche se per ora è disponibile solo come build separata (`python3.13t`).\n\n**Miglioramenti ai messaggi di errore**\n\nPython continua a migliorare i messaggi di errore rendendoli più leggibili e utili. In 3.13 vengono evidenziate con ancora più precisione le parti di codice responsabili dell'errore.\n\n**Deprecazioni**\n\nAlcuni moduli della libreria standard vengono deprecati in preparazione alla rimozione in versioni future: `aifc`, `cgi`, `chunk`, `crypt`, `imghdr`, `mailcap`, `msilib`, `nis`, `nntplib`, `ossaudiodev`, `pipes`, `sndhdr`, `spwd`, `sunau`, `telnetlib`, `uu`, `xdrlib`.\n\nUna versione ricca di novità che vale assolutamente la pena esplorare!",
24+
"fullContentEn": "Python 3.13 has arrived with a series of new features that make the language even more enjoyable to use. Let us look at the most interesting ones together.\n\n**New interactive REPL**\n\nThe Python 3.13 REPL has been completely rewritten with native support for multi-line syntax, improved autocompletion and colours in the shell. Finally you no longer need ipython to have a decent interactive experience!\n\n**Free-threaded mode (PEP 703)**\n\nOne of the most anticipated new features: Python 3.13 experimentally introduces the ability to disable the GIL. This opens the door to true thread parallelism, although for now it is only available as a separate build (`python3.13t`).\n\n**Improved error messages**\n\nPython continues to improve error messages making them more readable and useful. In 3.13, the parts of code responsible for the error are highlighted with even greater precision.\n\n**Deprecations**\n\nSome standard library modules are deprecated in preparation for removal in future versions: `aifc`, `cgi`, `chunk`, `crypt`, `imghdr`, `mailcap`, `msilib`, `nis`, `nntplib`, `ossaudiodev`, `pipes`, `sndhdr`, `spwd`, `sunau`, `telnetlib`, `uu`, `xdrlib`.\n\nA feature-rich version that is absolutely worth exploring!"
2125
},
2226
{
2327
"id": 3,
2428
"title": "FastAPI in produzione: consigli pratici",
2529
"titleEn": "FastAPI in production: practical tips",
2630
"date": "2024-11-20",
2731
"author": "Matteo Jacopo Schembri",
32+
"coverImage": "/images/events/event-301402271.jpg",
2833
"content": "Come strutturare e deployare un'applicazione FastAPI in produzione con Docker, e le best practice che abbiamo imparato sul campo.",
2934
"contentEn": "How to structure and deploy a FastAPI application in production with Docker, and the best practices we have learned in the field.",
30-
"url": "https://github.com/PythonCatania"
35+
"fullContent": "FastAPI è ormai uno standard de facto per costruire API REST in Python. Ma portare un'applicazione FastAPI in produzione richiede un po' di attenzione. Ecco quello che abbiamo imparato sul campo.\n\n**Struttura del progetto**\n\nOrganizza il progetto per dominio, non per tipo di file. Invece di `models/`, `routes/`, `schemas/`, preferisci `users/`, `events/`, `auth/` con i rispettivi sotto-moduli. Scala molto meglio man mano che il progetto cresce.\n\n**Dockerfile ottimizzato**\n\nUsa il multi-stage build per tenere l'immagine finale leggera. Sfrutta il layer caching copiando prima `requirements.txt` e installando le dipendenze, poi copiando il resto del codice. Con `uv` i tempi di build si riducono drasticamente.\n\n**Gestione delle configurazioni**\n\nUsa `pydantic-settings` per leggere le configurazioni da variabili d'ambiente. È type-safe, supporta i file `.env` e si integra perfettamente con FastAPI.\n\n**Health check e graceful shutdown**\n\nAggiungi sempre un endpoint `/health` e gestisci i segnali `SIGTERM` per un graceful shutdown. In Kubernetes questo fa la differenza tra un deploy senza downtime e uno con.\n\n**Logging strutturato**\n\nUsa `structlog` o il logging JSON di `uvicorn` per avere log che puoi interrogare facilmente con strumenti come Loki o Elasticsearch.\n\nCon queste accortezze, FastAPI in produzione è un piacere.",
36+
"fullContentEn": "FastAPI has become a de facto standard for building REST APIs in Python. But taking a FastAPI application to production requires a bit of care. Here is what we have learned in the field.\n\n**Project structure**\n\nOrganise the project by domain, not by file type. Instead of `models/`, `routes/`, `schemas/`, prefer `users/`, `events/`, `auth/` with their respective sub-modules. It scales much better as the project grows.\n\n**Optimised Dockerfile**\n\nUse multi-stage builds to keep the final image lightweight. Take advantage of layer caching by first copying `requirements.txt` and installing dependencies, then copying the rest of the code. With `uv`, build times are dramatically reduced.\n\n**Configuration management**\n\nUse `pydantic-settings` to read configurations from environment variables. It is type-safe, supports `.env` files and integrates perfectly with FastAPI.\n\n**Health check and graceful shutdown**\n\nAlways add a `/health` endpoint and handle `SIGTERM` signals for a graceful shutdown. In Kubernetes this makes the difference between a zero-downtime deploy and one with.\n\n**Structured logging**\n\nUse `structlog` or `uvicorn`'s JSON logging to have logs that you can easily query with tools like Loki or Elasticsearch.\n\nWith these precautions, FastAPI in production is a pleasure."
3137
}
3238
]

0 commit comments

Comments
 (0)