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

Del vantaggio, per il destinatario, del testo scritto sul video parlato

Mediatore-pagine-bozza

La prima bozza del mio “Il Mediatore”

Internet sta diventando sempre più grafica e meno testuale. Capita sempre più spesso che, cliccando su un link, non si trovi un articolo, ma un video. Molti fattori spingono in questa direzione:

  • I video sono più “facili” per l’utente, che si suppone faccia meno fatica a guardare e ascoltare che a leggere;
  • Sono più vistosi: il video è colorato e animato, il testo piatto e monocromatico;
  • Sono più “facili” per chi li realizza, almeno se si hanno scarse pretese di qualità: un telefonino, parlantina spigliata e il minimo sindacale di taglia-e-cuci (e a volte nemmeno quello);
  • Sono più persuasivi: parli direttamente alle persone con un linguaggio diretto e così le convinci, o almeno lo speri;
  • Decidi tu i tempi: puoi stabilire quanto un video sia lungo, quali le cadenze e i tempi per ogni parte. Chi guarda non lo può ne rallentare ne accelerare. E’ vero che l’utente può saltare avanti e indietro, ma rischia di perdere più tempo che a seguire tutto.

Ed è proprio quest’ultimo uno degli aspetti che mi fa preferire il testo scritto: un classico articolo, come quelli che popolano questo blog e gli innumerevoli suoi confratelli nella babele di Internet, può essere maneggiato “a piacere” dal lettore, molto più efficacemente di un video.

Il testo scritto consente di gestire il tempo di lettura a piacere: rallentare per godere delle singole parole o accelerare per capire solo il senso generale. Fermarsi a riflettere senza premere “pausa” e magari tornare due periodi indietro, quando si ricomincia a leggere, per riprendere il filo. Un testo può essere comodamente smontato e rimontato dal lettore.

Fermo restando che uno scrittore “onesto” dichiara subito o quasi le sue intenzioni, in un testo è possibile saltare interi periodi, leggere tra le righe, arrivare subito alle conclusioni e capire lo scrittore dove voleva andare a parare. Poi, se la cosa è davvero interessante, tornare indietro e approfondire le singole parti.

Insomma, l’estensore di un testo impone meno “rispetto” da parte del destinatario, che può fare della sua opera più o meno quello che vuole. Il video è decisamente più vincolante.

Un video di qualità è una costruzione complessa, così come un testo ben fatto, tuttavia la scarsa qualità è molto più facile da mascherare col video che con la scrittura. Il testo rivela subito il livello culturale e la cura applicata da chi l’ha redatto: la grammatica e sintassi non si improvvisano e meno ancora la cura del tono e dei ritmi. Un testo sciatto lo sgami subito, dopo poche frasi, e passi oltre. Il video è più ruffiano: il tono popolare, il linguaggio approssimativo e perfino la scarsa cura dell’inquadratura sono ammessi e si possono mascherare per scelta stilistica. Non per nulla la pubblicità commerciale si basa più sull’aspetto grafico che su quello testuale, è tutta sorrisi e sguardi ammiccanti, famigliole felici e promesse di piaceri e voluttà incoerenti con la sostanza del prodotto in vendita. Lo slogan serve a lasciare impresso il nome della ditta e spesso non funziona: di quante pubblicità vi resta impresso il video e magari il motivetto, ma non la marca? A me, almeno, capita.

Solo uno scrittore molto abile può giocare a carte coperte, catturare il lettore e condurlo dove vuole, svelando i suoi assi e le sue scale una alla volta. Il blogger medio, come il sottoscritto, deve rivelare subito il suo obiettivo, per sperare di essere letto, perdersi poco in preamboli, dire quello che ha da dire e basta. Il tipico realizzatore mediocre di video gigioneggia e perde tempo, spesso senza avere nulla di concreto da esporre, e intanto fa perder tempo a chi si aspetta un contenuto qualsiasi.

Quando si guarda un video è come essere passeggero su un autobus: vai dove ti porta il conducente e coi tempi che decide lui. Devi solo aspettare, pazientare nei periodi morti e stare molto attento nei passaggi chiave e, al massimo, scegliere di scendere, ossia di non guardare oltre. Quando leggi un testo, invece, sei copilota: percorso e destinazione sono fissati, ma tempi, velocità e tappe sono una tua libera scelta.

Un ragionamento capzioso, un finto ragionamento insomma, “passa” più facilmente in un video, perché poi il discorso prosegue senza lasciare tempo al libero ragionamento. Insomma, almeno al nostro livello di autori di blog per passatempo, il testo scritto è forse più faticoso, più intellettualmente impegnativo, ma decisamente più onesto del video.

Provo a suggerire un esercizio pratico: spiega qualcosa, che credi di comprendere ben, in forma scritta. Utilizza allo scopo uno stile semplice e periodi brevi. Non usare gerghi o termini specialistici. Non tenerti sull’astratto: sforzati di dire tutto chiaramente, scendendo nei dettagli e senza dare nulla per scontato, come se dovessi far capire le tue idee a qualcuno che non ne sa nulla. E’ un impegno faticoso ma utile, se fatto in maniera onesta: ti aiuta a capire meglio quello che hai in testa e spesso ti dimostra che le tue convinzioni erano illusorie, almeno in parte, o superficiali. E’ un esercizio di ragionamento che può portare in direzioni inattese e interessanti.

 

Aggiunta (1/8/2016): un amico mi suggerisce questa lettura, per approfondire gli effetti deleteri dei nuovi media sulla società: Manfred Spitzer, “Demenza Digitale”, Corbaccio, 342 pagine.

L’antichità delle novità informatiche

Il mio primo processore

Il mio primo processore

Tutte le novità hanno degli antenati. E’ una constatazione che non toglie nulla a chi è riuscito a realizzare prodotti di successo che sono diventati di uso comune. Ecco qualche esempio in informatica.

Il tablet così come noi lo conosciamo è “anticipato” in questo documento di quarant’anni fa: agosto 1972. Non è un progetto di dettaglio ma la qualità delle intuizioni ha del visionario, considerato il livello tecnologico dei computer contemporanei. L’obiettivo è un computer per i “bambini di tutte le età”, adatto ad apprendere e ad essere impiegato per le attività quotidiane: un’illuminazione.

L’antenato di Google Street View risale invece al 1981. L’ “esperienza virtuale” si limita ad un prototipo che riproduce un piccolo tratto di strada, per i limiti di capacità di calcolo e memoria dell’epoca, ma le idee di base ci sono tutte!

Blit! Esperimento di interfaccia grafica per computer del 1982. Incredibile, per noi, il “tutorial” per spiegare come si usa il mouse. In effetti era una “periferica” innovativa: mi ricordo che la prima volta che ci misi su la mano non sapevo mouoverlo molto bene.

Altri tentativi di interfaccia grafica vennero fuori. Il primo Apple Macintosh è del 1984 e definì un nuovo standard. Quasi in contemporanea l’Amiga OS1, del 1985, già consentiva multi-tasking e finestre. Forse qualcuno non sa che il sistema operativo è ancora sviluppato ed è possibile comprare computer che lo impiegano (almeno negli USA). Quale sia l’utilizzo, non mi è chiaro

Entrambe le soluzioni tecniche erano più avanzate del Windows 1.0, immesso sul mercato in quello stesso 1985 senza suscitare molto scalpore. La prima versione di successo del sistema operativo Microsoft fu la 3.0, messa in commercio solo nel 1990; in ogni caso si trattava essenzialmente di “front end grafici” per MS-DOS, con cui il sottoscritto e milioni di altri utenti si sono trovati a combattere ancora per anni. Ebbe il vantaggio di essere più economico ed “abbastanza buono” per l’uso quotidiano, per cui venne adottato da molti produttori di personal computer.