…sono vivo, e non ho paura

Un bianco di neve che si stende, immacolato come una tela in attesa di un tocco d’artista, ed eccolo lì, un cane nero. Lo sguardo fermo sul nulla, un profilo netto sul candido. Un contrasto cosí deciso, da risuonare come un tamburo nella solitudine del paesaggio.

Koudelka coglie quest’istante, una frazione di eternità, imprigionando in un frame un intero romanzo. Non un romanzo di parole, ma di sensazioni, di odori, di suoni muti che parlano al cuore più che all’orecchio. Una fotografia che è poesia, che è musica, che è vita.

Il cane nero diventa un asteroide che si stacca dal cielo della notte e precipita sulla neve, un segno, un simbolo. È un’incarnazione della libertà, un essere indomabile che si muove con la sicurezza di chi conosce il proprio posto nel mondo, anche se è un granello di sabbia in un deserto. È l’ombra che sfida la luce, la piccola nota stonata che dà senso alla melodia.

E allora lo guardi, quel cane, e capisci. Capisci che ogni impronta sulla neve è una dichiarazione d’amore alla vita, una sfida lanciata al destino. Capisci che la solitudine non è vuoto, ma pienezza. Capisci che l’esistenza non è un peso, ma un volo.

Questa non è semplicemente la foto di un cane sulla neve. È un racconto di resistenza e di coraggio. È un canto di solitudine e di presenza. È un inno alla vita, alla sua forza indomita, alla sua bellezza crudele. È un grido che risuona nel silenzio, un grido che dice: “Eccomi, sono qui, sono vivo, e non ho paura.”

guardava il mare e il sole che moriva all’orizzonte…

L’onda del mare, con la sua voce perpetua, veniva a baciare la sabbia con un sospiro di schiuma e sale. Marina, la ragazza, portava negli occhi il colore del mare in tempesta, mentre la sua minigonna svolazzava come una bandiera di libertà.

Ma c’era un grido soffocato nel cuore del paese, un rumore sordo di pietre lanciate contro il vetro. Tutti parlavano di Marina, della sua gonna corta, e del destino che l’aveva raggiunta. Le frasi si diffondevano come il vento tra gli alberi, agitando le foglie con parole cariche di giudizio: “Doveva coprirsi di più”, “Si è cercata guai”.

In quella terra di sguardi severi, Marina era diventata una straniera. Non era solo la lotta con l’uomo che le aveva strappato la pace, ma con l’intera comunità, con il pregiudizio che la vestiva di colpa.

Un giorno, nel silenzio della casa della nonna, scoprì tra vecchi libri un racconto. Parole che parlavano di dignità e di rispetto, incise su carta ingiallita dal tempo: “Nessun vestito può essere un invito alla violenza. La dignità non ha una lunghezza di stoffa.”

In quei versi, Marina ritrovò la sua voce. Un fuoco s’accese in lei, un fuoco che poteva incendiare il mondo. Decise di lottare. Per sé, per tutte le donne che erano state costrette al silenzio, fatte sentire in colpa per le azioni di uomini che avevano dimenticato cosa significasse il rispetto.

Il cammino fu scosso da ostacoli, porte chiuse e sguardi di ghiaccio. Ma Marina non cedette. La sua determinazione divenne una melodia potente, un canto di resistenza che echeggiava nelle strade del paese. E mentre il tempo passava, alcuni occhi iniziarono a vedere oltre la minigonna, riconoscendo la forza di una donna che non si lasciava silenziare.

Piano piano, le voci delle donne del paese si unirono al canto di Marina. La minigonna non era più una condanna, ma il simbolo di una rivoluzione silenziosa che stava cambiando le cose.

Seduta sulla sabbia, guardava il mare e il sole che moriva all’orizzonte. Ma nel cuore non c’era tristezza, solo la consapevolezza di un nuovo giorno che sarebbe nato. Un giorno in cui ogni Marina, ogni donna, avrebbe potuto vivere senza doversi difendere o giustificare. Un giorno in cui sarebbe bastato essere donna, libera di vivere, di sognare e di amare. Solo il mare, solo il vento, e la promessa silenziosa di un nuovo giorno.

una celebrazione della complessità dell’esperienza umana…

Nato a Tokyo nel 1940, Nobuyoshi Araki emerge come una figura di sfaccettata audacia, un faro nel mare tumultuoso della fotografia contemporanea giapponese. Come un vulcano in perenne eruzione, Araki ha prodotto oltre 500 libri fotografici, ognuno un frammento unico del mosaico della sua vita.

Da bambino, la passione per la fotografia si annida nel suo cuore, un seme piantato dalla macchina fotografica regalatagli dalla sua famiglia. Da quel momento, la sua lente inizia a danzare sulla tela di Tokyo, catturando la vita di strada e documentando la metamorfosi urbana e culturale del Giappone post-bellico.

Non si è mai lasciato imprigionare da un solo stile o tecnica fotografica. Come un pittore che sperimenta con pennelli e colori diversi, Araki ha danzato con la fotografia in bianco e nero e a colori, il formato medio e il Polaroid. Un incessante flusso creativo che ha modellato il suo stile inconfondibilmente eclettico.

E poi c’è “Sentimental Journey”, un faro nel mare tumultuoso della sua opera. Questa serie, che documenta la luna di miele con la moglie Yoko e la sua successiva malattia e morte, è un ritratto intimo e toccante dell’amore e della perdita. Le immagini si susseguono come i versi di una poesia, ciascuna raccontando un momento di dolcezza, di tenerezza, di struggimento. Le sue opere si inabissano nell’intimità più profonda, lì dove il personale si fonde con l’universale. Come un poeta che trae ispirazione dalla sua vita per scrivere versi che risuonano nell’anima dell’umanità, Araki ha esplorato temi come la sessualità, la morte e l’amore. Il suo lavoro è un diario personale aperto al mondo, e una lente attraverso la quale osservare la società.

Il quotidiano diventa la tela per le sue opere d’arte. I suoi scatti catturano l’effimero, il transitorio, il fragilmente bello. Fiori in decomposizione, cieli tempestosi, gatti randagi, scene di vita quotidiana… tutti acquisiscono un’aura di trascendenza attraverso la sua lente, rivelando una sensualità e una vulnerabilità che sono divenute la firma del suo stile.

Araki non ha mai avuto paura di esplorare l’oscurità, di affrontare il tabù. Ha esplorato il bondage e i suoi intrecci di potere e sottomissione. Anche se tali temi possono essere scioccanti o disturbanti, essi risuonano come un inno alla libertà artistica e una celebrazione della complessità dell’esperienza umana.

Ogni fotografia di Araki è un racconto in sé, un momento congelato nel tempo che cattura l’essenza della vita e la bellezza del fugace. Nel suo lavoro, la morte non è vista come una fine, ma come parte integrante della vita, un momento di transizione tanto affascinante quanto la nascita o l’amore.

Le sue opere sono un invito al vedere, al guardare oltre l’apparenza. Sottolineano la bellezza del quotidiano, celebrano l’umanità nella sua nuda autenticità, rivelano l’arte nella vita stessa. Offrono non solo immagini, ma frammenti di vita, di dolore, di gioia, di amore. Una celebrazione della vita in tutte le sue sfumature, un invito a vivere intensamente, ad accarezzare ogni attimo con la consapevolezza che, sebbene destinati a svanire, questi momenti rimarranno eterni nella memoria di chi li ha vissuti.

Realizzazione di TicTacToe in SwiftUI

Il presente articolo fornisce una dettagliata panoramica della realizzazione di un gioco di Tic Tac Toe (o Tris) utilizzando SwiftUI, il potente framework UI di Apple. Esploreremo le funzionalità fondamentali di SwiftUI, come le proprietà @State, le View, e i Button, e come queste possano essere utilizzate per creare un’app di gioco semplice ma interattiva.

L’app del gioco che abbiamo progettato si compone principalmente di un tabellone di gioco 3×3, rappresentato da una matrice 2D (board). Questa matrice è inizializzata con zeri, con l’idea che 1 rappresenta un giocatore (X) e 2 l’altro (O). L’app tiene traccia del giocatore corrente (currentPlayer) e se il gioco è terminato (gameOver) o meno.

Per rappresentare visivamente il tabellone di gioco, abbiamo utilizzato un anello esterno di VStack che contiene tre HStack. Ogni HStack contiene a sua volta tre Button, creando così un tabellone 3×3. Ogni Button rappresenta una cella del tabellone di gioco.

Per creare la struttura del nostro gioco, abbiamo utilizzato una combinazione di VStack (Vertical Stack) e HStack (Horizontal Stack). Questi sono tipi speciali di View in SwiftUI che permettono di impilare altre View in senso verticale o orizzontale. Guardiamo un frammento di codice:

VStack {
    ForEach(0..<3) { i in
        HStack {
            ForEach(0..<3) { j in
                ...
            }
        }
    }
}

In questo codice, creiamo un VStack che contiene tre HStack. Ogni HStack, a sua volta, contiene tre Button, creando così un layout 3×3.

Per risolvere la sfida della gestione delle mosse dei giocatori, abbiamo utilizzato la potente proprietà @State di SwiftUI. Questa proprietà ci permette di monitorare le modifiche al suo valore, aggiornando automaticamente la UI quando il valore cambia. Quando un giocatore tocca una cella del tabellone, la cella viene assegnata al currentPlayer, e il currentPlayer viene quindi alternato.

Ogni Button è collegato a un’azione che si attiva quando viene premuto. L’azione controlla se la cella del tabellone può essere occupata dal giocatore corrente:

Button(action: {
    if self.board[i][j] == 0 && !self.gameOver {
        self.board[i][j] = self.currentPlayer
        self.winner = self.checkWin()
        if self.winner != 0 {
            self.gameOver = true
        } else {
            self.currentPlayer = 3 - self.currentPlayer
        }
    }
})

Nell’azione del Button, controlliamo se la cella corrente è vuota e se il gioco non è finito. Se entrambe le condizioni sono vere, la cella viene assegnata al currentPlayer e viene verificato se c’è un vincitore. Se c’è un vincitore, gameOver viene impostato su true; altrimenti, currentPlayer viene alternato.

Una caratteristica fondamentale del Tic Tac Toe è la determinazione del vincitore. Per farlo, abbiamo implementato la funzione checkWin(), che verifica le righe, le colonne e le diagonali per un tris. Se trova un tris, restituisce il numero del giocatore che ha vinto. Se tutte le celle sono occupate senza un tris, la funzione dichiara un pareggio restituendo -1.

Dopo ogni mossa, la funzione checkWin() viene chiamata per verificare se la partita è finita. Se un giocatore ha vinto o se la partita è finita in pareggio, viene visualizzato un messaggio appropriato. Inoltre, il conto delle vittorie di ciascun giocatore viene aggiornato di conseguenza.

La funzione checkWin() è fondamentale per determinare l’esito del gioco. Verifica le righe, le colonne e le diagonali per vedere se c’è un tris. Se c’è un tris, restituisce il numero del giocatore che ha vinto. Se tutte le celle sono occupate e non c’è un tris, dichiara un pareggio restituendo -1:

func checkWin() -> Int {
    // Verifica righe e colonne
    for i in 0..<3 {
        if board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != 0 {
            return board[i][0]
        }
        if board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != 0 {
            return board[0][i]
        }
    }
    // Verifica diagonali
    if board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != 0 {
        return board[0][0]
    }
    if board[2][0] == board[1][1] && board[1][1] == board[0][2] && board[2][0] != 0 {
        return board[2][0]
    }
    // Verifica pareggio
    for i in 0..<3 {
        for j in 0..<3 {
            if board[i][j] == 0 {
                return 0
            }
        }
    }
    return -1  // Pareggio
}

Il codice, ancora, per ripristinare il gioco, resetGame(), viene chiamato alla fine di ogni partita, per riportare tutte le variabili allo stato iniziale e preparare il tabellone per una nuova partita.

Un’altra sfida da affrontare era rendere ogni cella del gioco interamente sensibile al tocco. Inizialmente, solo la parte centrale della cella (il punto in cui appare la X o la O) rispondeva al tocco. Per risolvere questo problema, abbiamo utilizzato .background(Color.white) per la View Text quando è vuota, fornendo così un’area sensibile al tocco in tutta la cella.

Infine, per garantire un’esperienza di gioco fluida, abbiamo aggiunto un Button per ripristinare la partita una volta terminata. Questo resetta il tabellone e assegna il turno al giocatore che inizia in maniera casuale, preparando tutto per una nuova partita.

In sintesi, l’utilizzo di SwiftUI ha reso relativamente semplice la realizzazione di un gioco di Tic Tac Toe funzionante. La sua reattività integrata e l’uso di proprietà @State, insieme alla struttura componibile delle view, rendono SwiftUI un ottimo strumento per creare interfacce utente dinamiche e interattive su piattaforme Apple.

un ricordo prezioso…

Hong Kong Yesterday, copertina.

“Hong Kong Yesterday”, la pregevole trilogia del visionario Fan Ho, è una sinfonia visiva, un innamoramento lento e profondo con un tempo e un luogo sussurrati. Le sue fotografie sono come pagine di un diario segreto, svelando l’anima pulsante di Hong Kong negli anni ’50 e ’60.

Questo è un tempo di transizione, un’epoca che gioca tra la consuetudine e il cambiamento, dove l’Occidente s’infiltra silenzioso nella tessitura dell’Oriente. Hong Kong si apre, un fiore delicato, tra le mani dell’occidentalizzazione e Ho Fan, un pittore di luce e ombre, ne cattura l’essenza in bianco e nero.

Gli scatti di Fan Ho s’aggirano tra baraccopoli e incroci, vicoli stretti e ampi corsi d’acqua. Raccontano la lentezza di una barca che danza sul fiume, l’abbraccio fra madre e figlio in un vicolo buio, un incrocio affollato che, nel suo caos, ritrae una danza urbana. Ogni figura catturata nella sua lente, dall’uomo d’affari al lavoratore portuale, dai bambini che giocano nella polvere ai vecchi che riposano, racconta un pezzo di quel mondo, quel tempo. È un romanticismo che nasce dalla vita vera, cruda e incolore, ma reso caldo e vibrante attraverso l’obiettivo dell’artista.

Gli scatti contenuti nel libro, dal sapore intenso di un caffè forte, semplificano il mondo in una sinfonia di bianco e nero, come se cercassero la verità nascosta dietro l’apparenza. C’è un senso di surrealismo, una vibrazione astratta nelle sue immagini che ci costringe a fermarci, a guardare più a lungo. C’è una distanza, una specie di rispetto reverenziale che mantiene con i suoi soggetti. Non troppo vicino, per non alterare la loro autenticità. Non troppo lontano, per non perdere la loro umanità.

“Hong Kong Yesterday” è un ricordo prezioso, un fermo immagine di una Hong Kong ormai scomparsa. È un ritratto attento e affettuoso del suo cambiamento, della sua crescita e del suo incontro con l’Occidente. È la testimonianza visiva di una cultura in movimento, una città in trasformazione, catturata dal cuore appassionato di un grande fotografo.

E, alla fine, le fotografie di Fan Ho non ci mostrano solo Hong Kong, ci mostrano anche l’uomo dietro l’obiettivo. Rivelano il suo amore per la città, la sua comprensione dell’umano, la sua sensibilità all’ordinario. Sono immagini di un passato quasi dimenticato, ma al tempo stesso, sono il suo dono al futuro, un promemoria di come eravamo, di come potremmo essere. Un toccante omaggio all’evanescenza del tempo, alla bellezza nascosta della vita quotidiana, al romanticismo implicito della realtà.