≡ Menu

In “L’Immensità,” lo sguardo è sia la prigione che la liberazione. Le immagini che scorrono sul piccolo schermo televisivo rappresentano una finestra su mondi alternativi, una fuga dalla tirannia patriarcale e dal tradizionalismo asfissiante. È un film che gioca sul confine tra l’effimero e l’eterno, tra l’immagine proiettata e quella vissuta. Pop e patriarcato convergono e si scontrano, come onde che si infrangono su una spiaggia di aspettative e desideri.
La madre, figura di bellezza e forza, si trova nella posizione ambivalente di essere l’immagine da venerare e, allo stesso tempo, quella da rimuovere dall’occhio collettivo. È simbolica della donna nel cinema e nella società italiana degli anni ’70: oggetto di desiderio e, al tempo stesso, di repressione. È la chiamata silente a guardare altrove, a cercare nuovi modelli di riferimento, che il film porta avanti attraverso la figura di Adriana, o meglio, Adri. Adri vive nel dualismo tra la realtà imposta e l’identità desiderata, un conflitto incarnato attraverso icone pop come Raffaella Carrà e Adriano Celentano. Essi rappresentano un ideale di libertà, una trasgressione in immagini e suoni, che le permette di esplorare il suo essere nel mondo, benché in una solitudine quasi assoluta.
Il film di Emanuele Crialese è un’esplorazione del desiderio di cambiamento in un mondo che rifiuta di cambiare, una denuncia sottile ma pungente di un’Italia ancorata a pregiudizi e tradizioni che soffocano più che proteggono. E nel finale, quando le note di “L’immensità” di Johnny Dorelli riempiono lo schermo, sappiamo che poco è cambiato, eppure tutto è in movimento, almeno negli sguardi e nelle immagini che rimangono impresse nella mente e nell’anima. Siamo di fronte a una tragedia, ma una tragedia che lascia spazio all’immaginazione, all’atto di vedere oltre, di cercare la propria “immensità” in un mondo che sembra rimpicciolirsi sempre più.

{ 0 comments }

In the interplay between past and present, we often find that vulnerability isn’t a flaw, but rather a human condition that enriches us. It’s like an invisible fabric that binds us, allowing us to feel more deeply and understand more fully. In a world that often prizes strength above all else, vulnerability may seem like an anchor pulling us down. Yet, it’s also a sail that enables us to navigate the complexities of human relationships, the art of compassion, and the subtleties of empathy. In this light, vulnerability becomes not just a core aspect of being human but a potent means of transformation and connection.

{ 0 comments }

Le vacanze, nel loro attimo effimero e sfuggente, diventano un paradiso perduto al ritorno alla routine, ai rumori costanti della città, ai compiti e responsabilità che sembrano più pesanti nel loro richiamo. Nel cassetto della memoria, si ripongono gli attimi trascorsi come un abito da cerimonia, da indossare solo nei momenti di contemplazione. Ma è nel semplice gesto del ritrovamento delle foto che si consuma un rito sacro, quello del ricordo e dell’eternità. Le fotografie sono sempre più che semplici istantanee; sono finestre verso un passato che non tornerà più, ma che persiste nell’essenza del nostro essere. Guardare una foto non è solo un atto visivo, ma un’esperienza sensoriale a tutto tondo: si sente il respiro del mare e il suo odore di sale e alghe, si avverte il calore del sole estivo sulla pelle, si percepisce il fruscio delle foglie mosse dal vento. Ogni foto è un piccolo poema, un canto che richiede una chiave di lettura custodita nel più intimo del nostro cuore.
Non tutte le foto sono perfette, ed è proprio nella loro imperfezione che spesso risiede la loro più profonda verità. Una foto sfocata può catturare con maggiore autenticità il movimento frenetico di un mercato all’aperto, una foto sovraesposta può evocare l’abbagliante luce di un giorno estivo che non si vuole dimenticare. Queste “imperfezioni tecniche” sono, in realtà, testimonianze del nostro tentativo di imprigionare l’inesprimibile, di dare forma al flusso caotico della vita. Le fotografie sbagliate, in questo senso, sono il nostro biglietto d’ingresso alla fragilità umana, all’errore come parte indissolubile della nostra condizione. Non cercano la perfezione, ma piuttosto un sincero ritratto del momento. Le mani che hanno scattato queste foto, spesso in movimento e avvolte da emozioni contrastanti, hanno impresso in esse non solo un’immagine, ma anche un’anima. In ogni foto c’è una narrazione sottintesa, un dialogo tra chi ha catturato l’immagine e chi, in un tempo diverso, si imbatte nel suo sguardo immobile. E così, sfogliare un album di fotografie diventa un esercizio di umiltà e di amore: umiltà nel riconoscere che ogni istante è irripetibile e amore nel concedere a ogni immagine il diritto di essere custodita come un tesoro, indipendentemente dalla sua perfezione tecnica.
In un mondo che corre troppo velocemente, dove l’attimo è sempre più spesso sacrificato sull’altare dell’efficienza e della produttività, le foto ci ricordano l’importanza del qui e ora. Sono il nostro legame tangibile con un tempo che sfugge, un faro nel mare della memoria. Sono, in fin dei conti, una dichiarazione d’amore alla vita, con tutte le sue imperfezioni, le sue incertezze e la sua inestimabile bellezza.

{ 0 comments }

The tabular representation of data is crucial in various domains of programming and data analysis. Whether it’s about creating a report for business analytics or generating tables for scientific papers, having the right tools to facilitate this task can be invaluable. In Python, there are several libraries designed for table creation, among which are tabulate and texttable. This article explores these two libraries, discussing their functionalities, advantages, and disadvantages, with the aim of providing an in-depth understanding through a practical example.


Introduzione

La rappresentazione tabulare dei dati è fondamentale in diversi ambiti della programmazione e dell’analisi dati. Che si tratti di creare un report per un’analisi di business o di generare tabelle per documenti scientifici, avere a disposizione strumenti che facilitino questo compito può essere molto utile. In Python, ci sono diverse librerie per la creazione di tabelle, tra cui tabulate e texttable. Questo articolo esplora queste due librerie, discutendo le loro funzionalità, vantaggi e svantaggi, con l’obiettivo di fornire una comprensione approfondita attraverso un esempio pratico.

Tabulate

La libreria tabulate è estremamente versatile e facile da usare per la creazione di tabelle in Python. Permette di generare tabelle in diversi formati come plain text, HTML e LaTeX. Le funzionalità principali includono l’organizzazione dei dati in un formato leggibile e la possibilità di aggiungere intestazioni e allineamenti.

Funzionamento Base

Il cuore di tabulate è la funzione tabulate, che prende una lista di righe (ogni riga è una lista di colonne) e un set opzionale di intestazioni. Questa funzione può generare una stringa di output che rappresenta una tabella.

from tabulate import tabulate
print(tabulate([['apple', 1], ['banana', 2]], headers=['Fruit', 'Count']))

Questo l’output:

Fruit      Count
-------  -------
apple          1
banana         2

Texttable

Texttable è un’altra libreria di Python utilizzata per creare tabelle semplici ma ben formattate. A differenza di tabulate, texttable offre più controllo sulla formattazione, consentendo all’utente di impostare l’allineamento, la larghezza delle colonne e altre opzioni a livello di cella.

Funzionamento Base

Si può iniziare con un oggetto Texttable vuoto e aggiungere righe e colonne utilizzando i metodi add_rows e set_cols_align, tra gli altri.

from texttable import Texttable
t = Texttable()
t.add_rows([['Name', 'Age'], ['Alice', 24], ['Bob', 22]])
print(t.draw())

In questo caso, otteniamo:

+-------+-----+
| Name  | Age |
+=======+=====+
| Alice | 24  |
+-------+-----+
| Bob   | 22  |
+-------+-----+

Esempio Pratico: Confronto tra Razzi

Per dimostrare le funzionalità di queste due librerie, consideriamo un esempio che confronta diversi tipi di razzi spaziali.

Codice Originale

from tabulate import tabulate
from texttable import Texttable
import latextable

rows = [['Rocket', 'Organisation', 'LEO Payload (Tonnes)', 'Maiden Flight'],
        ['Saturn V', 'NASA', '140', '1967'],
        ['Space Shuttle', 'NASA', '24.4', '1981'],
        ['Falcon 9 FT-Expended', 'SpaceX', '22.8', '2017'],
        ['Ariane 5 ECA', 'ESA', '21', '2002']]

# Creazione di una tabella con Texttable
table = Texttable()
table.set_cols_align(["c"] * 4)
table.set_deco(Texttable.HEADER | Texttable.VLINES)
table.add_rows(rows)

# Output delle tabelle
print('Tabulate Table:')
print(tabulate(rows, headers='firstrow'))

print('\nTexttable Table:')
print(table.draw())

print('\nTabulate Latex:')
print(tabulate(rows, headers='firstrow', tablefmt='latex'))

print('\nTexttable Latex:')
print(latextable.draw_latex(table, caption="A comparison of rocket features."))

Nel seguito, mostriamo l’output del codice:

Tabulate Table:
Rocket                Organisation      LEO Payload (Tonnes)    Maiden Flight
--------------------  --------------  ----------------------  ---------------
Saturn V              NASA                             140               1967
Space Shuttle         NASA                              24.4             1981
Falcon 9 FT-Expended  SpaceX                            22.8             2017
Ariane 5 ECA          ESA                               21               2002

Texttable Table:
       Rocket        | Organisation | LEO Payload (Tonnes) | Maiden Flight
=====================+==============+======================+==============
      Saturn V       |     NASA     |         140          |     1967     
   Space Shuttle     |     NASA     |        24.400        |     1981     
Falcon 9 FT-Expended |    SpaceX    |        22.800        |     2017     
    Ariane 5 ECA     |     ESA      |          21          |     2002     

Tabulate Latex:
\begin{tabular}{llrr}
\hline
 Rocket               & Organisation   &   LEO Payload (Tonnes) &   Maiden Flight \\
\hline
 Saturn V             & NASA           &                  140   &            1967 \\
 Space Shuttle        & NASA           &                   24.4 &            1981 \\
 Falcon 9 FT-Expended & SpaceX         &                   22.8 &            2017 \\
 Ariane 5 ECA         & ESA            &                   21   &            2002 \\
\hline
\end{tabular}

Texttable Latex:
\begin{table}
        \begin{center}
                \begin{tabular}{c|c|c|c}
                        Rocket & Organisation & LEO Payload (Tonnes) & Maiden Flight \\
                        \hline
                        Saturn V & NASA & 140 & 1967 \\
                        Space Shuttle & NASA & 24.400 & 1981 \\
                        Falcon 9 FT-Expended & SpaceX & 22.800 & 2017 \\
                        Ariane 5 ECA & ESA & 21 & 2002 \\
                \end{tabular}
        \end{center}
        \caption{A comparison of rocket features.}
\end{table}

Il codice LaTeX fornito, compilato, produce la seguente tabella:

Dettagli del Codice

  1. Import delle librerie: Importiamo tutte le librerie necessarie (tabulate, texttable, latextable).
  2. Preparazione dei dati: Prepariamo una lista di liste (rows) che contiene le informazioni sui razzi.
  3. Creazione della tabella con Texttable: Creiamo un oggetto Texttable e impostiamo l’allineamento e il decoratore. Poi, aggiungiamo le righe con add_rows.
  4. Output delle tabelle: Utilizziamo le funzioni tabulate e Texttable.draw() per generare e stampare le tabelle. Inoltre, generiamo le versioni LaTeX delle tabelle.

Questo esempio mostra come sia tabulate che texttable possano essere utilizzati efficacemente per formattare dati tabulari. Tuttavia, la scelta tra i due dipenderà dalle specifiche esigenze dell’utente, come il livello di personalizzazione richiesto o i formati di output necessari.


The Python ecosystem offers a multitude of libraries for various tasks, but when it comes to creating beautiful command-line interfaces (CLIs) with rich text support, one library stands out—rich. Unlike simple text formatting libraries, rich not only allows you to add styles and colors to your text but also supports rendering tables, markdown, syntax-highlighted code, and much more.

Here, we’ll focus on the Table feature offered by rich, which allows you to create well-formatted tables with ease.

Rich Tables

Setup

Before running the code, make sure you’ve installed the rich library. You can install it using pip:

pip install rich

Code Example

Here is a simple example to showcase how to create a table using rich.

from rich.console import Console
from rich.table import Table

# Initialize the Console object from rich
console = Console()

# Create a Table object, set its properties
table = Table(show_header=True, header_style="bold magenta")
table.add_column("Date", style="dim", width=12)
table.add_column("Title")
table.add_column("Production Budget", justify="right")
table.add_column("Box Office", justify="right")

# Add rows to the table
table.add_row(
    "Dec 20, 2019", "Star Wars: The Rise of Skywalker", "$275,000,000", "$375,126,118"
)
table.add_row(
    "May 25, 2018",
    "[red]Solo[/red]: A Star Wars Story",
    "$275,000,000",
    "$393,151,347",
)
table.add_row(
    "Dec 15, 2017",
    "Star Wars Ep. VIII: The Last Jedi",
    "$262,000,000",
    "[bold]$1,332,539,889[/bold]",
)

# Render the table on the console
console.print(table)

Code Explanation

  1. Import Modules: We import Console and Table from rich. from rich.console import Console from rich.table import Table
  2. Initialize Console: console = Console() initializes a console object that we can use to print our table.
  3. Create Table: We create a Table object and specify some of its properties, like whether to show the header (show_header=True) and what style to use for the header (header_style="bold magenta").
  4. Add Columns: table.add_column() is used to add columns to the table. You can also specify attributes like the style and width for each column.
  5. Add Rows: We add rows using table.add_row(). The order of the data should match the columns’ order. Rich text formatting can also be applied here.
  6. Render Table: Finally, we print the table on the console using console.print(table).

rich offers a wide variety of customization options, making it one of the go-to libraries for creating visually appealing CLIs and tables.

{ 0 comments }

[…]

Letture di fine Agosto…

{ 0 comments }

Pietre Levigate: Il Respiro della Vacanza…

In tasca una pietra levigata dal mare, in mano una valigia con il peso dell’abitudine. Le vacanze sono finite e si torna sul binario del dovere, con il silenzio delle spiagge vuote come eco nell’anima.
C’è un ritmo nelle vacanze, una melodia che ci sottrae alle grida caotiche della vita di ogni giorno. Il mare cancella le impronte sulla sabbia, e così la mente si svuota delle incrostazioni dell’obbligo. Ogni onda è un respiro profondo che ci fa ritrovare noi stessi, ognuno con la sua misura di tempo.
Ma il ritorno è inevitabile. La chiave nella serratura ha il suono di un punto e virgola: una pausa, ma non un punto fermo. Si ritorna alla fretta, alla routine, al chiasso delle città, con il cuore ancora legato al battito delle onde, alla luce calda del tramonto. Eppure, quella pausa non è perduta. Rimane in noi come un balsamo, come una forza silente che inquina il rumore del quotidiano. Riporta sorrisi e sguardi sinceri, fa riscoprire la pazienza, l’attenzione per i piccoli dettagli, l’ascolto.
La vacanza è un luogo dell’anima, non solo un punto su una mappa. È una terra che s’irriga con lentezza, con il sale delle onde, con il vento che accarezza e sferza, insegnando la dolcezza e la resistenza: non finisce con il ritorno, ma continua a vivere in noi, nelle pieghe della memoria, nei momenti di stanchezza, quando chiudiamo gli occhi e possiamo ancora sentire il suono del mare, il profumo del sale.
La pietra levigata in tasca è una promessa, un patto con se stessi. Un ricordo che si può toccare, un impegno a non dimenticare che la vita non è solo fretta e rumore, ma anche silenzio e ascolto, contemplazione e riscoperta.
Le vacanze ci insegnano che c’è un tempo per tutto, anche per fermarsi, per guardarsi dentro, per rigenerarsi. E quello che appare come un’interruzione è in realtà un nutrimento, un balsamo che rafforza e purifica, un respiro profondo prima di riprendere il cammino; una manciata di ricordi per riscaldare le fredde sere dell’inverno che verrà.
La vacanza è un dono, una pausa, un ritorno a se stessi. E in questo ritorno, c’è tutta la ricchezza della vita.

{ 0 comments }

L’Appalachia di Kranitz si leva dal territorio come una montagna dalle molteplici facce, una regione che non chiede pietà né ammirazione, ma semplicemente un’osservazione onesta. Stacy Kranitz non s’inganna nel cercare di adornarla con fioriture inutili o abbruttirla con inesorabili cliché. Scruta l’Appalachia con occhi severi ma non giudicanti, con uno sguardo che non chiede né concede. È un lavoro fotografico, ma sopra ogni cosa, è un discorso umano, un dialogo con una terra e la sua gente, spesso calpestata e mal rappresentata. Kranitz non gioca a fare la redentrice, non arriva con promesse, ma con domande, e questo è il suo pregio.


Le sue fotografie non sono risposte, ma interrogativi. Non sono giudizi, ma considerazioni. La sua lente è un occhio che vede ma non pretende di sapere, uno strumento che ritrae ma non definisce. E in questo sta la forza del suo lavoro, nell’essere l’indagine senza conclusione, l’osservazione senza prescrizione.
Kranitz fa a meno di trincee e barriere, si colloca in un terreno di mezzo, tra il giusto e lo sbagliato, tra il bello e il brutto. E in quel luogo, vede l’Appalachia per quello che è, non per quello che dovrebbe o potrebbe essere. È una testimonianza cruda, ma non crudele.


Il suo stile, asciutto come l’aria di montagna, acuto come il filo di un rasoio, non concede spazio al superfluo. Non c’è pietà nel suo sguardo, ma c’è comprensione. Non c’è indulgenza, ma c’è rispetto. E in questo sta la sua maestria, nell’essere spietata nella verità ma compassionevole nell’umanità.
Stacy Kranitz non ha fotografato l’Appalachia; ha dialogato con essa. Ha posto domande senza aspettarsi risposte, ha guardato senza voler vedere. Il suo testo è un sentiero tra le montagne, un percorso che non conduce a una meta, ma offre panorami inattesi. È un’indagine che non si accontenta e non si placa, che richiede e sollecita.
Così, l’Appalachia di Kranitz è una regione viva, pulsante, ferita ma fiera, bella nella sua complessità, vera nella sua dualità. Un luogo che non si lascia catturare, ma che, grazie a Kranitz, si lascia finalmente guardare.

{ 0 comments }

Rebecca la prima moglie…

Nella penombra di una tenuta maestosa, dove i ricordi sussurrano attraverso i corridoi e il mare minaccia con un eterno mormorio, si trova il palcoscenico di “Rebecca la prima moglie”. Daphne Du Maurier ci invita a varcare la soglia di Manderlay, dove una giovane donna cerca disperatamente di trovare la sua identità, lottando contro l’ombra ingombrante di una presenza assente.
Il romanzo si apre con una delicatezza sottile, con una narrazione che si muove lentamente come i passi timidi della protagonista senza nome. Il lettore è subito avvolto dalla malinconia, dalla quiete apparente di un amore appena sbocciato, e dal mistero di una vita passata che non vuole essere dimenticata. Le pagine iniziali si sciolgono come nebbia mattutina, rivelando a poco a poco i contorni di un dramma che si nutre di inquietudini. Manderlay diventa un personaggio a sé, un luogo dove il silenzio parla, dove ogni oggetto, ogni sguardo, racchiude un segreto.
La scrittura di Du Maurier, ricca eppure leggera, costruisce una tensione sottile, crescente, fatta di attese e paure sotterranee. Il lettore si trova ad esplorare con la protagonista i luoghi dell’assenza, di un amore perduto che sembra animare ogni angolo della casa. Rebecca, l’assente onnipresente, diventa un’ossessione, un incubo che si materializza in ogni dettaglio.
E proprio nei dettagli sta la maestria dell’autrice: nulla è lasciato al caso. Ogni descrizione, ogni dialogo, ogni pensiero è un tassello di un mosaico che compone un’immagine inquietante, carica di desiderio, di rancore, di paura.
Il mare, elemento costante e perturbante del romanzo, è metafora dell’incessante tormento che accompagna la protagonista. Il suo frastuono, la sua presenza imperiosa, sono il riflesso di un’angoscia che non conosce tregua.
Il finale, sorprendente e amaro, svela con un colpo di scena le vere facce dei personaggi, ribaltando le certezze e lasciando un senso di smarrimento e inquietudine.
“Rebecca la prima moglie” è un viaggio in una psiche tormentata, un’intrusione in un amore complesso, un’esplorazione dell’identità femminile in un mondo dominato dalle ombre del passato. È un romanzo che non lascia, che si insinua nei pensieri e che, come la presenza di Rebecca stessa, continua a vivere oltre le pagine, in ogni piega delle tende, in ogni sguardo.
Consigliato per chi cerca un’opera che sia al contempo elegante e inquietante, un romanzo che sappia afferrare l’anima e non lasciarla più.

{ 0 comments }

Risonanze dell’Infanzia…

Una foto ingiallita, consumata dall’uso, in mano ha il peso di una pietra e il sapore del mare salmastro che bagna i nostri primi passi. La classe di allora, una moltitudine di volti amici, sguardi teneri e spensierati; alcuni di quei sorrisi ancora lì incrocio per le vie del paese, altri si sono persi nei meandri della memoria. Non importa, in quell’immagine ci sono tutti, e i loro nomi risuonano in una melodia lontana, una canzone d’infanzia che non si dimentica. In quegli anni, si è scritta la grammatica della nostra esistenza, la trama dei primi sogni e le linee guida delle avventure future. Eravamo marinai senza mare, esploratori di un mondo che ci appariva vasto e inesplorato. Le mani strette, le risate sincere, i giochi condivisi sono diventati il ritmo del nostro crescere. Il tempo, implacabile maestro, ci ha scolpiti e modellati, ha disegnato traiettorie diverse, ci ha spinti su strade non parallele. Eppure, l’essenza di quegli anni, il sapore passato dei giorni felici, non ha smesso di vibrare nelle nostre ossa. Siamo fiumi che scorrono, cambiando direzione, ma l’acqua è la stessa, e porta con sé i sedimenti dei nostri primi anni.
Le piacevoli casualità della vita, come l’incontro con gli amici di scuola, sono come l’eco di una melodia che continua a risuonare, a dar forma a ciò che siamo. L’amore, l’amicizia, i dolori e le gioie, sono tessere di un mosaico che non smette mai di essere costruito. I passi che abbiamo compiuto sono intrisi di quei ricordi, di quei visi, di quei momenti. Se guardiamo indietro, possiamo ancora vedere i sentieri che abbiamo percorso, i bivi che abbiamo attraversato. In fondo, siamo il risultato di ogni sguardo incrociato, di ogni mano stretta, di ogni parola scambiata. La vita ci dona questi momenti, queste connessioni, come fossero perle sparse in un mare sconfinato. Raccoglierle, custodirle, è un dovere e una grazia, un omaggio alla semplicità e alla profondità dell’essere umani, in un mondo che a volte sembra dimenticare la dolcezza dell’infanzia e la purezza delle prime amicizie.
Tutto ciò che siamo, tutto ciò che saremo, porta con sé il segno di quei giorni, di quei volti, di quei nomi. E forse, in una stanza segreta del cuore, quel banco di scuola, quel sorriso sincero, quella stretta di mano, continuano a vivere, eterni e immutabili, come un faro che illumina il nostro cammino.

{ 0 comments }