…un timido osservatore

Friedrich Seidenstücker, esploratore d’ombra e luce, ha ballato sulla pellicola del quotidiano, illuminando la scena con la lente della sua macchina fotografica. Il suo palcoscenico era il mondo, un teatro aperto dove la vita comune recitava la sua ordinaria bellezza.

La sua tecnica, un abito di penitenza che si porta per amore, era austera, disciplinata. Il suo strumento, la macchina fotografica, un messaggero che restituiva alla luce il racconto nascosto in ogni frammento di realtà.

Seidenstücker si ritirava a un passo di distanza, un timido osservatore che lasciava che la vita svolgesse la sua danza. E in quel vortice ordinato, trovava momenti di pura umanità, attimi di tenerezza, sprazzi di sorpresa.

Le sue fotografie non erano adornate da artifici o elaborate composizioni, ma erano l’autentico specchio della vita quotidiana. Scatti vivi, profondi, impregnati di quella risonanza segreta che solo un osservatore vero può cogliere.

Nella sua opera, la quotidianità svelava la sua dignità nascosta, il quotidiano si trasformava in poesia. Seidenstücker ci parlava di una bellezza universale, presente in ogni angolo di strada, in ogni volto, in ogni gesto.

Le sue immagini erano un canto all’invisibile, una voce per l’inaudito. In ogni fotografia, l’ordinario si vestiva d’eccezionale, il banale diventava sublime. La vita comune, sotto il suo obiettivo, diventava una sinfonia di significati, un coro di emozioni.

Era l’arte di rendere visibile l’invisibile, di dare voce al silenzio. Seidenstücker, col suo occhio sensibile e l’anima in ascolto, ci ha lasciato un patrimonio di momenti sospesi, di attimi immortali, di frammenti di umanità catturati per sempre nel mosaico di una pellicola.

La bellezza nascosta della Spirale di Ulam…

Uno dei modi più affascinanti di esplorare la bellezza intrinseca dei numeri primi è attraverso la Spirale di Ulam. Questa particolare disposizione dei numeri rivela una struttura nascosta tra i numeri primi che altrimenti potrebbe passare inosservata.

La Spirale di Ulam è una matrice quadrata che inizia con il numero 1 al centro e procede verso l’esterno in senso orario, numerando sequenzialmente ogni cella lungo la spirale. Quando si evidenziano i numeri primi all’interno di questa spirale, emergono sorprendenti modelli a forma di diagonale. Questo fenomeno, scoperto dall’inventore e matematico Stanislaw Ulam nel 1963, è ancora oggetto di studio e di dibattito tra i matematici.

La generazione di una Spirale di Ulam può essere un ottimo esercizio per imparare a manipolare gli array in Python e per visualizzare dati con Matplotlib. Ecco un esempio di come farlo:

import numpy as np  # Importa la libreria numpy per la manipolazione di array
import matplotlib.pyplot as plt  # Importa la libreria matplotlib per la creazione di grafici
import matplotlib.cm as cm  # Importa il modulo cm da matplotlib per la gestione dei colori

def make_spiral(arr):
    nrows, ncols= arr.shape  # Ottiene il numero di righe e colonne dell'array
    idx = np.arange(nrows*ncols).reshape(nrows,ncols)[::-1]  # Crea un array di indici e lo inverte
    spiral_idx = []  # Inizializza una lista vuota per gli indici della spirale
    while idx.size:  # Mentre ci sono ancora elementi in idx
        spiral_idx.append(idx[0])  # Aggiunge la prima riga di idx a spiral_idx
        # Rimuove la prima riga (quella che abbiamo appena aggiunto a spiral).
        idx = idx[1:]
        # Ruota il resto dell'array in senso antiorario
        idx = idx.T[::-1]
    # Crea un array piatto di indici che formano una spirale nell'array.
    spiral_idx = np.hstack(spiral_idx)
    # Index into a flattened version of our target array with spiral indices.
    spiral = np.empty_like(arr)  # Crea un nuovo array vuoto con la stessa forma di arr
    spiral.flat[spiral_idx] = arr.flat[::-1]  # Assegna i valori di arr a spiral secondo l'ordine degli indici nella spirale
    return spiral

# Dimensione del lato dell'array quadrato.
w = 251
# Numeri primi fino a e compreso w**2.
primes = np.array([n for n in range(2,w**2+1) if all(
                        (n % m) != 0 for m in range(2,int(np.sqrt(n))+1))])
# Crea un array di valori booleani: 1 per i numeri primi, 0 per i numeri composti
arr = np.zeros(w**2, dtype='u1')
arr[primes-1] = 1
# Spiraleggia i valori in senso orario partendo dal centro
arr = make_spiral(arr.reshape((w,w)))

plt.matshow(arr, cmap=cm.binary)  # Crea una visualizzazione della matrice usando una colormap binaria
plt.axis('off')  # Nasconde gli assi
plt.show()  # Mostra il grafico

In questo script Python, iniziamo importando le librerie necessarie: numpy per la manipolazione degli array, matplotlib.pyplot per la creazione dei grafici e matplotlib.cm per la gestione dei colori.

La funzione make_spiral prende un array e lo trasforma in un array a spirale. Per fare questo, genera prima un array di indici idx e poi crea una lista spiral_idx per contenere gli indici nell’ordine in cui dovrebbero apparire nella spirale. Questa lista viene poi utilizzata per riordinare l’array originale in un ordine a spirale.

Successivamente, definiamo la dimensione w del lato della nostra matrice quadrata e generiamo un array di numeri primi fino a w**2. Questo array di numeri primi viene utilizzato per creare un array di zeri e uni, dove gli uni rappresentano i numeri primi.

Infine, trasformiamo il nostro array in una spirale con la funzione make_spiral e visualizziamo il risultato con plt.matshow, utilizzando una colormap binaria per distinguere i numeri primi (rappresentati in bianco) dai numeri non primi (rappresentati in nero). Il risultato è una bella rappresentazione della Spirale di Ulam, che evidenzia la misteriosa struttura dei numeri primi.

Nella figura, i numeri primi sembrano concentrarsi lungo certe linee diagonali. Nella spirale di Ulam di dimensione 250×250 mostrata sopra, le linee diagonali sono chiaramente visibili, confermando che il modello continua. Sono evidenti anche linee orizzontali e verticali con un’alta densità di numeri primi, sebbene meno evidenti.

# Creiamo una nuova colormap personalizzata.
# I colori sono specificati in formato RGBA; (0, 0, 0, 1) è nero e (0, 1, 0, 1) è verde.
cmap = ListedColormap([(0, 0, 0, 1), (0, 1, 0, 1)])

plt.matshow(arr, cmap=cmap)  # Usiamo la nostra nuova colormap
plt.axis('off')
plt.show()

Qui, di seguito, con la piccola modifica allo script sopra indicata, si ottiene una visualizzazione più contrastata della spirale di Ulam

La Spirale di Ulam è un perfetto esempio di come la matematica possa rivelare pattern nascosti nel caos apparente. Con poche linee di codice Python, possiamo esplorare queste meravigliose strutture e forse avvicinarci un po’ di più alla comprensione del mistero dei numeri primi.

una sinfonia visiva di vita quotidiana…

Fred Herzog, incisore del quotidiano con l’occhio della macchina fotografica, ha navigato il vasto oceano della vita urbana, gettando l’ancora nelle strade di Vancouver. Da lì, raccolse la sua opera, una sinfonia visiva di vita quotidiana, con le sue mille storie nascoste dietro l’apparente banalità.

Il colore, lui lo prende e lo fa suo, una pennellata di audacia in un’epoca che vedeva solo in bianco e nero. Non per lui le ombre e le luci contrastanti, ma la tavolozza della realtà, viva e vibrante come la vita stessa. Immortalava il quotidiano con la stessa passione di un pittore che affronta una tela bianca, trasformando l’ordinario in straordinario attraverso l’obiettivo della sua macchina.

La sua Vancouver è un teatro di vita, popolato da attori inconsapevoli. Ogni scatto, un atto in sé, racconta una storia di umanità: bambini giocano in strada, insegne luminose accendono la notte, un barbiere guarda fuori dalla finestra. E così, con la precisione di un orologiaio, Herzog cattura il tempo, lo congela e lo consegna all’eternità.

Uno dei suoi ritratti più emblematici è ‘Man with Bandage’, 1968. È un’immagine che parla non solo di un uomo, ma dell’intera umanità, nella sua vulnerabilità e resilienza. Un uomo con un cerotto, un eroe del quotidiano che porta i segni delle sue battaglie, un viandante solitario nel paesaggio urbano.

In tutto questo, c’è la poesia di Herzog, una poesia visiva che parla attraverso il silenzio delle immagini, che racconta le storie non scritte dietro i volti e i luoghi. C’è la musica del quotidiano, un canto di colori e luci, un’armonia ritratta in ogni scatto. Ed è così che Herzog ci consegna un ritratto di noi stessi, un ritratto della vita, vibrante e colorata, in tutta la sua amara dolcezza.