LOVE Mandelbrot!

djmzu2qwsaelippIl frattale di Mandelbrot ha sempre il suo fascino, combinando infinita complessità geometrica con estrema semplicità dell’algoritmo per realizzarlo. Se non l’avete mai incontrato, approfonditelo, come tutta la questione dei frattali e della teoria del caos. Tra le altre cose, lo considero un buon test per fare pratica su un nuovo linguaggio di programmazione.

Eccone una versione programmata tramite LOVE, ambiente “ultraleggero” per lo sviluppo di “giochini”, che impiega il linguaggio di programmazione Lua. Di entrambi ho parlato in un recente post.

Mi hanno sorpreso la facilità di realizzazione e anche la velocità di esecuzione. Che dire, molta resa con poca spesa!

Si può variare la mappa di colori in base alla propria fantasia, da un “serio” bianco e nero a variazioni più sgargianti, come ho provato a fare. Possibili evoluzioni potrebbero essere un “navigatore”, che tramite il mouse consenta di ingrandire parti a scelta, oppure un “Julia set”, che, cliccando in un punto, consenta di disegnare il frattale di Julia collegato. Realizzai entrambe le cose alcuni anni fa, con C++ assieme alle librerie SDL per la grafica e l’interfaccia con il mouse… forse un giorno li ripescherò. All’epoca utilizzavo quasi esclusivamente Linux. Tra l’altro SDL è la libreria che implementa anche LOVE.

Sono solo un programmatore hobbistico per cui, se qualcuno un po’ più esperto ha miglioramenti o estensioni da proporre, è il benvenuto!

-- Dimensioni finestra grafica
xmax = 800
ymax = 600

-- Angolo del frattale
left = -2
top = -1
-- Dimensioni "fisiche" frattale
xside = 3.0
yside = 2.0

-- "Sfasamento" per migliorare la grafica
eps = 1e-3
left = left-eps
top = top-eps

love.window.setMode(xmax, ymax)

-- max cicli
countend = 256

xscale = xside/xmax
yscale = yside/ymax

function love.draw()
    for x=1,xmax do
        cx = x * xscale + left
        for y=1,ymax do
            cy = y * yscale + top
            cc = 0
            zx = 0.0
            zy = 0.0
            while ((zx*zx+zy*zy < 4) and (cc < countend)) do
                tempx = zx*zx - zy*zy + cx
                zy = 2*zx*zy + cy
                zx = tempx
                cc = cc+1
            end
            ccolor = cc/countend
            love.graphics.setColor(zx/2, zy/2, ccolor)
            love.graphics.points(x, y)
        end
    end
    -- Riduce carico processore
    love.timer.sleep(2)
end


Annunci

La pausa quotidiana

12140971_10206457121125516_7063115163500227865_o

Riprendo il blog dopo una lunga pausa, dovuta a un importante cambiamento di vita. Mi sto abituando a un nuovo assetto. La poesia è più vecchia, ma si adatta bene.

***

In tempi, come tutti, d’incertezza,

trovo il mio tepore nel piccolo

nido della casa, dove,

accolto come ogni volta,

conosciuto più di sempre,

rilasso le mie membra,

nella culla dell’abitudine soffice,

e lascio cadere, pesanti,

i pensieri del fuori,

come bagaglio alla fine della tappa.

            E’ la pausa quotidiana,

lusso grande che il Cielo mi concede,

dal mondo che, fuori, sbatte e grida

sempre, e sta in agguato,

per afferrarmi al varco,

ancora una volta,

e misurare la forza,

nell’impegno continuo

e inderogabile

del vivere.

            Ma questo avverrà domani:

riposa ora e cerca

di trattenere la tentazione,

molle, suadente e malevola,

di rendere questa sosta indefinita

perché se troppo dura più non è tale,

ma tomba, chiuso bozzolo ossidante.

            Un pezzo di vita, isolato, muore.

L’educazione al rumore

IMG_4260_dettaglio-audio

Stiamo facendo crescere una generazione ancora più rumorosa della nostra? Lo sospetto fortemente, e il dubbio mi è cresciuto a dismisura qualche sera fa, quando sono stato con amici in un locale con cena e spettacolo.

Prima piano-bar, mentre si mangia. Poi una mezz’oretta con una coppia comica diventata famosa in TV. Quindi un’oretta abbondante di “ballabili”. Il locale è un ex teatro, quindi adattissimo, per conformazione allo scopo. Ma gli esiti sono, per certi versi, tragici.

L’impianto audio era tarato per coprire qualsiasi altro suono, e questo fin dalla fase iniziale, quando si è a tavola e si suppone che si possa conversare mangiando. Occasione importante per un single come il sottoscritto no? Praticamente il livello sonoro è rimasto costante per tutta la serata, e pure male gestito al punto di rovinare l’esibizione di cabaret, perché gli eccessivi rimbombi rendevano le battute difficili da intendere. E, si sa, il cabaret e la comicità in generale si fondano sul rispetto rigoroso dei ritmi, spesso veloci.

Era un ristorante anche per famiglie, con tanto di animazione per i bambini come si usa oggi, in modo da lasciare ai genitori un paio d’ore di tranquillità (non uditiva, beninteso). Una delle animatrici aveva un microfono con un altoparlante a batteria attaccato alla cintura, per riuscire a farsi sentire dagli animati pargoli.

Abbiamo bandito il silenzio dalle nostre vite, ormai stabilmente. Per i nostri antenati la notte era il luogo del silenzio assoluto, e per questo, a maggior ragione, del mistero. Ma anche il giorno era spesso caratterizzato da silenzio, o da suoni lievi. Se la giornata era serena, subito fuori dal villaggio potevano esserci pochi decibel di fruscii nell’aria e poco più. Noi abbiamo invece imparato che il progresso significa rumore, un sottofondo sonoro perenne e imprescindibile che permea ogni momento, senza interruzione. La città è rumore, la comunicazione è urlo. E ci siamo assuefatti.

Per l’uomo moderno e “evoluto” il silenzio è anormale, anomalo, crea sgomento, me ne rendo conto, non riesce a sopportarlo, deve distruggerlo. Appena entra in casa, dopo una giornata di lavoro in un’open-space affollato di telefoni in viva voce o davanti a uno sportello o bancone per utenza rumorosa, per prima cosa accende la radio o, meglio ancora, la TV. Se corre al parco deve mettere gli auricolari. Ce ne sono anche per il nuoto. Le palestre risuonano di musica, eppure tanti preferiscono la propria nelle orecchie. Suono continuo che attenuta i pensieri e cancella quello che si trova a pochi passi, che tiene concentrati sullo scopo del momento e impedisce alla mente di vagare altrove, incontrollata. Con l’aggiunta degli schermi dei telefonini è diventata una realtà virtuale perenne, che assorbe l’attenzione e attenua la percezione della realtà reale.

La tecnica assomiglia in modo sorprendente a quella dell’imbonitore o dell’imbroglione di strada, che deve parlare di continuo per impedire alla vittima di turno di raccogliere i pensieri.

Su questo tappeto di stimolazioni uditive (e non solo) continue, in questa overdose uditiva permanente, un segnale emerge solo se è più forte. Per farsi sentire bisogna urlare, alzare il volume. Oltretutto è diventato facile: gli altoparlanti da molti Watt non costano poi molto. E’ la tecnologia, bellezza, e, per quanto si dica, l’energia è ancora a buon mercato. Si fa sentire chi urla di più, per cui alla fine urlano tutti. Chi si lamentava delle strade rumorose di Napoli o del trambusto dei mercati africani si ritrova con una civiltà che fa dell’altissimo volume acustico la sua bandiera.

Così anche il divertimento deve essere rumoroso, oppressivo, non lasciare spazio a altro, preconfezionato. D’altra parte anche i brani a richiesta sono un po’ sempre gli stessi. I bambini è bene che si abituino, sin da piccoli, e che perdano l’udito presto, altrimenti si ritroveranno disadattati. Per il silenzio restano, al più, i monasteri.