noblogo.org

Reader

Leggi gli ultimi post dagli utenti di noblogo.org.

from CASERTA24ORE.IT dal 1999 on line

Monti Trebulani. Escursionista fotografa particolare e scopre antico dipinto longobardo

La presenza di grotte intitolate al culto di San Michele negli anfratti e grotte carsiche dei monti Trebulani si inserisce in un periodo storico ben documentato: quello Longobardo del VIII-IX secolo. In quei tempi il culto Micaelico in Campania era molto diffuso. La presenza di grotte dedicate a San Michele Arcangelo sui Monti Trebulani fu introdotto e diffuso massicciamente dai Longobardi tra il VII e il IX secolo. La “Langobardia Minor” (Campania, Sannio, Puglia settentrionale) era costellata di santuari micaelici rupestri. I Longobardi sceglievano le grotte carsiche perché erano luoghi ideali per eremi e santuari. San Michele era il santo patrono dei Longobardi, simbolicamente, Michele era la “guida delle anime” (psicopompo) e il combattente contro il male, ancora di salvezza.

Ed è proprio il particolare di una piccola ancora, fotografata da un escursionista lo scorso 1 maggio, dimostrerebbe che quel che resta di un dipinto all'ingresso della grotta carsica sul sentiero che dal comune di Rocchetta e Croce porta all'eremo di San Salvatore è Longobardo.

La posizione all'ingresso della grotta è tipica dei santuari longobardi: simboli apotropaici o dedicatori all'entrata, avevano una funzione protettiva contro il male (Michele come combattente del demonio), il colore rosso è usato frequentemente negli affreschi longobardi per simboli sacri, associato al sangue del martirio e alla protezione divina. Nel contesto storico locale i Monti Trebulani furono rifugio durante le incursioni saracene (IX-X secolo), i Longobardi controllarono la Campania fino alla conquista normanna (XI secolo) La “Grotta dei Santi” più a valle con affreschi trafugati conferma la presenza di un complesso eremitico organizzato.
La Grotta di San Michele a Liberi (sempre in provincia di Caserta) fu consacrata tra l'862 e l'866 dai vescovi di Capua e Teano. Questo conferma che nel IX secolo il culto micaelico era fiorente nella zona.

 
Continua...

from Gippo

Cari amici del blog e del Fediverso, è la prima volta che mi trovo a scrivere nel corso del 2026. Il punto è che non avevo nulla da dire ma in realtà non è che le cose siano così lineari come sembrano, cioè, non è che se non hai niente da dire in genere stai zitto. In realtà ci sono un sacco di persone che non hanno niente da dire e lo dicono senza troppi problemi. E allora perchè non ho sentito il bisogno di scrivere nulla? E, uscendo dalla mia sfera personale ed entrando di peso nel campo della sociologia da quattro soldi, perchè tanta gente che animava i blog negli anni gloriosi del blog sembrano aver perso la voglia di scrivere? Ecco allora un post che cerca di analizzare il problema.

Questione 1: Horror Pleni

Forse sottovalutate la questione 1 ma io credo che in un momento di accumulazione ossessiva di stimoli, il minimalismo acquisti un valore sempre più netto. Per questo motivo, tutti i contenuti creati in passato si sono assommati e calcificati nella nostra coscienza e ci ritroviamo a chiederci: “Ma cosa può dare in più un nostro nuovo post?”. La risposta ovviamente è: nulla. Ma è una risposta pessimista. Scrivere può dare qualcosa a noi stessi e costituisce un seme che magari rimane inattivo sotto la terra per tanto tempo finchè un giorno qualcuno legge il nostro post e fonda per ispirazione un partito politico o risolleva una giornata e allora il seme è germogliato. Parlo di Horror Pleni non a caso. Il Necronomicon, il libro maledetto ideato dal solitario di Providence (Lovecraft) era stato scritto dall'arabo folle Abdul Alhazred, cognome che rimanda alla frase “All has red”, tutto è stato letto. Insomma, si è letto e scritto troppo. Non è vero ma ci siamo capiti.

Questione 2: Intelligenza Artificiale

Faccio un'attimo una digressione. Ma avete visto quanto è stupido Dargen D'Amico? Ha fatto una canzone per Sanremo contro l'Intelligenza Artificiale (e passi) ma s'è messo a pontificare contro l'Intelligenza Artificiale (d'ora in poi AI) come un vecchietto davanti al cantiere. Quando parla Dargen D'Amico è capace di prendere una questione meritevole, appoggiarla e farti passare immediatamente dall'altra parte. Perchè? Come perchè? Perchè è stupido, mi non mi fate spiegare, uno come lo sente parlare lo capisce. Ma passiamo ad altro. Dicevo che l'AI è un deterrente alla scrittura. Diciamo che non è d'ostacolo alla scrittura di post per i blog (se non per il fatto che pensi: ma quasi quasi faccio scrivere 'sto post all'AI), però quando stai lì a parlare con l'AI, scopri che lei può produrre tanto testo grammaticalmente corretto in una frazione di secondo e tu ti senti un po' così. Come così? Così, non mi fate spiegare, se uno non è stupido come Dargen D'Amico lo capisce. Inoltre l'AI, ti sazia per quanto riguarda la tua necessità di interazione con l'“altro-da-te”. Ad esempio, se tu senti di scrivere “Eh, ma Dargen D'Amico è veramente stupido” (lo scrivo come esempio, non ho detto mai veramente che Dargen D'Amico è stupido) lei (l'AI) ti dice: “Eh, amico mio ti capisco, forse il tuo giudizio è un po' eccessivo ma posso comprendere come certi suoi atteggiamenti un po' controversi possano risultare parzialmente indigesti. Vuoi che ti proponga altri cantanti italiani contemporanei che possono suscitare analoghi sentimenti di fastidio?”. E tu sei soddisfatto, i'AI ti capisce almeno, il tuo amor proprio è salvo e alla fin fine Dargen D'Amico non è poi così stupido, è solo un po' controverso e abbiamo salvato capra e cavoli.

Questione 3: Il tempo del dibattito e della riflessione sembra passato

Ecco, questo è un punto che più che altro ho scritto perchè volevo arrivare almeno a scrivere tre questioni e adesso non so bene come sviscerarlo. Chiedo all'AI? Ma no, dai ce la facciamo ancora. Diciamo che ci sono un sacco di cose nel mondo che segnano la fine del dibattito, cose tipo guerre e genocidi, leader politici che se ne catafottono bellamente di giustificarsi o di mettere la classica pudica foglia di fico che eravamo abituati a vedergli mettere. Stessero attenti che, se si smette di “parlarne”, tutti si sentono autorizzati a passare ai fatti. Ecco, poichè sono un conservatore e non un rivoluzionario, voglio che si continui con il dialogo, con la foglia di fico davanti al vergognoso e con l'ipocrisia che magari può anche chiamarsi pudore. Mi sento tanto un Pieraccioni moraleggiante mentre scrivo questo. Ah, a proposito, una volta ho chiesto all'AI se mi aiutava a scrivere una sceneggiatura da sottoporre a Pieraccioni. E' venuta una bella storia ma adesso non me la ricordo, c'erano delle parti tagliate su misura anche per Ceccherini e Papaleo.

Ma allora perchè scrivere?

Io direi che scrivere è bello. Parti con l'idea di scrivere una cosa e arrivi da tutt'altra parte, magari ad una denuncia da parte di Dargen D'Amico. Per questo di tanto in tanto continuerò a farlo. Concludo allora col grido di battaglia che ha dato il titolo a questo post:

Non sono un uomo finito! Ho ancora tante cose da dire!!!! (cit. “Sogni d'oro” ovviamente)

 
Continua...

from La vita in famiglia è bellissima

È sera, sono spiaggiato sul divano che studio un testo di storia contemporanea sul tab, un mio personale modo per rilassarmi stressandomi, quando appare secondogenito.

Mi guarda. Mi studia. “Papà – chiede – tu ne sai qualcosa di javascript?”. “Qualcosa” rispondo io. “Ci ho scritto degli script”. “Sto parlando di javascript eh, non di java” “Sì. Ho anche scritto dei piccoli script in java, ma ne so poco” Secondogenito aspetta ancora un po', sta pensando se perdere tempo con me. “Perché – mi spiega – ho un problema con il videogioco che sto scrivendo”.

In pratica secondogenito usa un software per fare videogame, quindi non deve – in genere – scrivere codice da zero, ma ora ha progettato una cosa che il suo software non può fare in automatico e quindi deve aggiungere uno script scritto da lui. Il software che usa permette di aggiungere infiniti script in javascript.

In questa scena del videogame c'è una musica e certi eventi si devono attivare a seconda del progredire della canzone. Secondogenito ha pensato un modo per farlo, a livello di codice, ma è un metodo macchinoso e si è reso conto – lato sviluppatore – che sarebbe pesante da aggiornare e da gestire.

Mi sdraio sul divano, poso il tab, mi faccio spiegare bene cosa vuole e gli dico che ho capito. Ci penso un attimo e poi gli dico che no, sta usando il metodo sbagliato. “È tanto che non uso javascript, ma quello che vuoi fare si risolve con un array di array e un piccolo ciclo. Quattro, cinque righe di codice. Aspetta”.

Mi alzo, metto il tab sulla tastiera, cerco per sicurezza la sintassi giusta per gli array di javascript che li confondo sempre con quelli di python, intanto secondogenito prende il suo portatile e – la faccio breve – modifico con grande grande lentezza le quattro righe di codice che servono per fare un primo test, cerco di spiegare anche bene come sono composte e poi succede questa cosa che secondogenito fa partire il codice e il videogioco funziona.

“Uh” dico. Sono meravigliato anche io. “Non doveva funzionare?” mi chiede secondogenito perplesso. “In genere alla prima non funziona mai” gli spiego. Fiduciosi di questo avvio aggiungiamo un loop che controlla l'array, facciamo ripartire il videogame e questa volta non funziona niente, ma non funziona niente così tanto che secondogenito pensa si sia rotto il computer. “Non preoccuparti – gli dico – è il magico potere del bug. Mi sono dimenticato di incrementare qualcosa”.

Insomma, correggiamo, ritestiamo, aggiustiamo, alla fine funziona tutto, mio figlio si mette lì ad aggiungere dati alla lista degli eventi e io mi sento dio sceso in terra.

Non solo tasselli, seghetti alernativi e teflon, ho anche il potere di javascript che scorre forte dentro di me. E per oggi è tutto.

 
Continua...

from Transit

(221)

(PM1)

Il governo #Meloni ha scelto di presentare un nuovo decreto sul lavoro in coincidenza con il 1° Maggio, quasi a voler trasformare una ricorrenza nata per difendere i diritti dei lavoratori in un palcoscenico per l’ennesima operazione di immagine.

Il problema, però, è che i decreti non cambiano la realtà se non affrontano le sue contraddizioni più profonde. E la realtà del lavoro in Italia continua a essere segnata da precarietà diffusa, salari fermi da anni, contratti fragili e una crescente difficoltà per milioni di persone a costruirsi un futuro dignitoso.

Il decreto può contenere misure utili, ma non scioglie il nodo centrale: il lavoro in Italia resta spesso troppo debole per garantire sicurezza, continuità e autonomia. Si interviene sui margini, si promettono correzioni, si moltiplicano gli annunci, ma non si tocca davvero l’impianto che produce disuguaglianza.

Il mercato del lavoro continua a premiare la flessibilità per le imprese e a scaricare l’incertezza sui lavoratori. Questa è la stortura principale, ed è la più difficile da mascherare con la retorica governativa. La precarietà, infatti, non è un effetto collaterale: è diventata una condizione strutturale. Troppi giovani entrano nel mondo del lavoro attraverso contratti temporanei, part-time involontari, collaborazioni fragili o occupazioni discontinue. Troppi lavoratori passano da un impiego all’altro senza mai arrivare a una stabilità vera.

Quando il lavoro è instabile, anche la vita lo diventa: si rimandano progetti, si rinuncia a una casa, si rinvia una famiglia, si vive nell’incertezza permanente. Nessun decreto che si limiti a interventi parziali può sanare davvero questa ferita.

C’è poi il grande tema dei salari, che resta intatto e irrisolto. In Italia le retribuzioni reali sono ferme da troppo tempo, e questo significa che lavorare non basta più, in molti casi, per vivere con serenità. Il costo della vita cresce, i prezzi corrono, ma gli stipendi restano al palo.

(PM2)

È una frattura che colpisce soprattutto chi ha redditi medio-bassi, chi non ha margini di risparmio, chi ogni mese fa i conti con spese impossibili da comprimere. Parlare di occupazione senza parlare di salario è un esercizio incompleto, quasi un trucco lessicale: si descrive il numero dei posti, ma si tace sulla qualità della vita che quei posti consentono.

È qui che il decreto mostra i suoi limiti più evidenti. Se non affronta in modo serio il nodo del potere d’acquisto, della contrattazione, della produttività distribuita male e della povertà lavorativa, rischia di essere soltanto una toppa.

Una toppa non è una riforma. Le storture restano tutte lì: i contratti brevi, la debolezza delle tutele, la differenza tra chi può scegliere e chi deve accettare qualunque condizione, il divario tra lavoro dichiarato e lavoro realmente dignitoso. Il Paese continua a produrre occupazione, ma non abbastanza sicurezza. Continua a celebrare il lavoro, ma non a proteggerlo fino in fondo.

Per questo il 1° Maggio non può essere ridotto a una formula di circostanza. Deve restare una giornata di verità, di memoria e di conflitto civile. La verità è che in Italia il lavoro resta troppo spesso povero, precario e sottopagato. La memoria è quella delle lotte che hanno conquistato diritti, orari, tutele e dignità. Il conflitto civile, oggi, è il rifiuto di accettare che il salario fermo e la precarietà diventino la normalità.

Se la Repubblica è davvero fondata sul lavoro, allora il lavoro va difeso sul serio: non con i simboli, ma con scelte capaci di cambiare davvero la vita delle persone. Il 1° Maggio dovrebbe tornare a essere questo: una giornata di memoria, di conflitto civile e di rivendicazione, non una passerella istituzionale e nemmeno un’occasione per l’ennesimo annuncio destinato a restare parziale.

Se l’Italia è davvero, come dice la #Costituzione, una Repubblica fondata sul lavoro, allora il lavoro va difeso sul serio: con salari giusti, contratti stabili, sicurezza reale e tutele concrete. Tutto il resto è retorica. E la retorica, davanti alla precarietà e ai salari fermi da anni, non paga l’affitto, non riempie il carrello della spesa e non restituisce dignità a chi ogni giorno tiene in piedi il Paese.

#Blog #PrimoMaggio #Lavoro #Precarietà #DirittiCivili #DirittoAlLavoro

 
Continua...

from cronache dalla scuola

Ieri vengono da me questi ragazzini di seconda media per un laboratorio di tre ore che avevo preparato di introduzione ai visori vr. Arrivano, tutti molto collaborativi, guardano tutto, passiamo davanti al laboratorio di chimica dove gli studenti delle superiori stanno facendo degli esperimenti e uno dei ragazzini spiaa, mi guarda, mi dice “wow, un laboratorio di chimica, io adoro la chimica!”. Nel laboratorio di robotica vanno in giro, sono curiosi, sono attiratissimi dai robot che sono in ricarica, guardano con gli occhi brillanti i bracci meccanici, fanno foto alle specifiche (!) dei robot, dopo avermi chiesto il permesso di usare il cellulare con sacra reverenza e timore.

Quando poi si mettono i visori esprimono sentimenti, non ci sono abituato. Si chiamano l'un l'altro, gridano di gioia, ridono, quando uno non capisce cosa fare e io non posso andare subito perché sto già supportando uno di loro, “ti spiego io” dicono e si aiutano tra loro. Dopo tre ore ho quasi dovuto strappargli i visori altrimenti saremmo ancora lì. Anzi, a un certo punto gli ho detto “guardate che dobbiamo mettere via tutto perché tra un quarto d'ora ci chiudono dentro la scuola!” e uno studente mi ha risposto, “ma che chiudano pure, noi restiamo qui”. Erano quasi le sei di sera.

Racconto tutto a Elettra che mi sorride e dice, “bello”. Ma poi aggiunge: “chissà come facciamo noi docenti a spegnere tutto questo entusiasmo e questa passione”.

Ecco, questa è una bella domanda da mettere a corollario a tutti i discorsi sulla pedagogia, sulla professionalizzazione forzata, sulla mancanza di orientamento, sui voti, sulle indicazioni ministeriali, sulla selezione e sul merito.

 
Continua...

from angolo cottura

Ingredienti 3 mele dolci (Golden), misura medio-grossa 250g ma anche fino a 350 g di cioccolato fondente secondo il gusto. (io ho usato le uova di Pasqua) Pulisci le mele, le sbucci, le tagli a tocchi come ti vengono, le metti in una pentola e ci metti un bicchierone d’acqua. Fai bollire: da quando bolle calcoli 4–5 minuti e le scoli subito. Intanto sciogli come meglio puoi il cioccolato fondente: va bene l’uovo di Pasqua o le tavolette grosse tipo mattonelle. Nel microonde un minuto, oppure a bagnomaria, o sul fornello a fuoco lento. Appena la cioccolata è sciolta la aggiungi alle mele. Magari dentro a un frullatore, oppure nella stessa pentola e usi un frullatore a immersione per macinare tutto fine. Più macini e meglio è. Usa una teglia con cerniera diametro 18, al massimo 20 cm, foderata di carta forno solo sui bordi, e ci versi il composto. Metti in frigo una notte. Il giorno dopo, se vuoi, gli dai una spolverata di cacao amaro in polvere.

https://www.youtube.com/watch?v=71aZL2l5Xh8&t=1

#dolci

 
Continua...

from Alfonso Cataldi

22 dicembre 2025 alle 9:57

“L’Ombra delle Parole è nato nel 2013. All’inizio era un blog che cercava la propria strada di uscita dal novecento epigonico e agonico, la compagnia era la più varia… nel frattempo alcuni si dileguarono per motivi personalistici e posiziocentrici, ciascuno era più interessato al proprio narcisismo che alla costruzione di una poetica… ma senza una poetica non si va da nessuna altra parte, io lo avevo scritto e ripetuto ma, si sa, il narcisismo è una droga più forte di qualsiasi ragione...” (Giorgio Linguaglossa)

Sei stato una forza della natura, Giorgio. Ti definivi calzolaio della poesia ma eri un corsaro, eri libero, eri una farfalla imprendibile; le tue traiettorie imprevedibili. Non facevi sconti a nessuno: non dovevi difendere nessun fortilizio. Leggevi tutti, ascoltavi tutti e a tutti davi un parere, un consiglio. Grazie a te ho conosciuto poeti che nessuno cita perché scomodi e retti. Pubblicavi sconosciuti quando t'incuriosivano: una rarità nel panorama poetico contemporaneo. Ricordo quando accettasti di pubblicare quei “concept-tweet” geniali e sparsi di un ingegnere, che ricostruii con entusiasmo, certo che ne avresti goduto con me. Ti ricordo mascherato, ironico e autoironico a “Più libri più liberi”. È stato un bel tratto di strada, con la Poetry Kitchen, cominciato proprio quando avevo necessità di perdere le poche certezze in mio possesso. Mi hai portato nel basement, sugli esopianeti. E chi torna più indietro!

 
Continua...

from Transit

Chernobyl mostra i limiti dei sistemi complessi senza trasparenza e responsabilità politica.

(220)

(C1)

Nota: il post risulta abbastanza lungo, ma ho inteso approfondire un “minimo” un argomento così importante, seppur trattato innumerevoli volte.

Il 26 aprile 1986, nella centrale nucleare di #Chernobyl, allora parte dell’Unione Sovietica, un test condotto in condizioni inadeguate provocò l’esplosione del reattore numero 4. È rimasto uno dei più gravi disastri nucleari della storia contemporanea. Ma ridurlo a incidente tecnico significa non comprenderne davvero la portata: né allora, né oggi.

Il reattore coinvolto, di tipo “RBMK”, presentava caratteristiche strutturali problematiche: instabilità a bassa potenza e assenza di un adeguato contenimento. Questi limiti erano noti in ambito tecnico, ma non vennero affrontati con la necessaria trasparenza. Il sistema sovietico tendeva a compartimentare le informazioni, limitandone la circolazione anche tra specialisti.

Come ricorda lo storico ucraino Serhij Plochiy, il reattore era nato anche per produrre plutonio militare, e la conoscenza dei difetti non arrivò mai del tutto a chi lo gestiva ogni giorno. La cultura politica giocò un ruolo decisivo. La priorità era dimostrare efficienza e rispettare obiettivi produttivi stabiliti centralmente. Segnalare criticità significava esporsi a conseguenze professionali e politiche. La sicurezza, pur formalmente centrale, veniva spesso subordinata ad altre esigenze.

Il Politburo di Gorbačëv riconobbe internamente che le responsabilità andavano divise tra errori umani e difetti di progettazione, ma in pubblico la colpa fu scaricata quasi interamente sugli operatori. Gli operatori che quella notte portarono avanti il test agirono in un quadro rigido, con informazioni incomplete e istruzioni contraddittorie. Alcuni sistemi di sicurezza furono disattivati per rispettare il protocollo sperimentale.

In un ambiente dove il dissenso era scoraggiato, la possibilità di fermare la procedura si ridusse drasticamente. “Aggirare” le regole era diventato prassi per tenere il passo con gli obiettivi di produzione, in un sistema che puniva l’allarme più del rischio. Dopo l’esplosione, la gestione dell’emergenza seguì la stessa logica. Le autorità locali e centrali evitarono di diffondere informazioni immediate e complete. La città di Pripyat, a pochi chilometri dalla centrale, non fu evacuata subito: per ore, decine di migliaia di persone rimasero esposte senza saperlo. Solo quando le rilevazioni di radioattività in altri paesi europei resero impossibile negare l’accaduto, l’Unione Sovietica iniziò a fornire comunicazioni ufficiali, comunque parziali e controllate.

Le conseguenze immediate furono drammatiche: incendi, esposizione acuta alle radiazioni, morti tra i soccorritori e tra il personale della centrale. Nei giorni successivi, centinaia di migliaia di persone furono evacuate e intere aree furono dichiarate inabitabili. Eppure, a quarant’anni di distanza, il numero delle vittime ufficialmente riconosciute resta poco superiore alle quaranta, cioè coloro che morirono per sindrome acuta da radiazioni: tutto il resto – malattie, decessi prematuri, impatto sulla salute mentale, rimane largamente sotto‑stimato. Gli effetti a lungo termine sono difficili da quantificare, ma non meno rilevanti. Ancora oggi, ampie zone tra Ucraina, Bielorussia e Russia risultano contaminate. Isotopi come il cesio-137 e lo stronzio-90 persistono nel suolo per decenni, entrando nella catena alimentare e richiedendo monitoraggi continui. Uno degli impatti più documentati è l’aumento dei tumori alla tiroide, soprattutto tra chi era bambino all’epoca dell’incidente. A questo si aggiungono altre patologie e conseguenze psicologiche: ansia, stigma sociale, perdita di radicamento.

(C2)

L’impatto sociale fu profondo. Le evacuazioni non furono solo spostamenti logistici, ma rotture definitive: comunità disperse, economie locali distrutte, territori trasformati in zone di esclusione. La memoria del disastro continua a influenzare la percezione del rischio nucleare in tutta Europa. L’idea che “un Chernobyl da qualche parte è un Chernobyl ovunque” ha pesato sulle scelte energetiche di diversi paesi, dall’Italia alla Germania.

Chernobyl ebbe anche un impatto politico rilevante. L’incidente contribuì a incrinare la fiducia nell’Unione Sovietica, sia tra i cittadini sia a livello internazionale. La gestione opaca dell’emergenza rese evidente la distanza tra la narrazione ufficiale e la realtà, accelerando dinamiche di sfiducia già presenti. Sempre Plochiy sottolinea che, fra i fattori del crollo dell’Urss, Chernobyl fu almeno importante quanto la guerra in Afghanistan, perché mostrò ai cittadini i limiti strutturali del sistema.

Il nodo, quindi, non è solo tecnologico. È politico e culturale: riguarda il rapporto tra potere, informazione e responsabilità. Quando chi decide non è tenuto a rispondere, la gestione del rischio diventa opaca e più pericolosa.

E qui Chernobyl smette di essere solo storia. Le condizioni che resero possibile quel disastro (concentrazione del potere, controllo dell’informazione, repressione del dissenso) non appartengono solo al passato sovietico. Quarant’anni dopo, la sua eredità attraversa la storia dell’Ucraina indipendente e arriva fino alla guerra iniziata nel 2022, quando le truppe russe hanno occupato nuovamente il sito della centrale lungo la loro avanzata verso Kyiv.

Nella Russia di oggi, molte di quelle dinamiche sono tornate visibili: media indipendenti ridotti o chiusi, opposizione marginalizzata o repressa, gestione del potere sempre più verticale. In parallelo, in Ucraina la memoria di Chernobyl, insieme a quella dell’Holodomor (la carestia avvenuta durante il regime di Stalin nell'Ucraina sovietica dal 1932 al 1933), è diventata uno dei pilastri dell’identità nazionale, e l’occupazione del 2022 è letta come una nuova tappa di una storia di aggressione e resistenza.

Durante quell’occupazione, il personale ucraino della centrale ha cercato di mantenere il controllo tecnico dell’impianto, imponendo ai soldati russi regole minime di sicurezza per evitare un nuovo incidente. Oggi il rischio nucleare non riguarda solo la tecnologia, ma anche l’uso politico e militare degli impianti: centrali occupate, infrastrutture energetiche trasformate in obiettivi militari, minacce di “ricatto atomico” come strumento di pressione.

Chernobyl, da questo punto di vista, non è solo memoria: è un precedente concreto di cosa accade quando sistemi complessi sono gestiti da poteri non controllati. Ricorda che gli effetti di un incidente nucleare non si fermano ai confini di uno Stato e che, di fronte a questi rischi, trasparenza, controllo indipendente e responsabilità politica non sono un di più, ma una condizione minima di sicurezza.

#Chernobyl #Russia #UnioneSovietica #Ucraina #EnergiaAtomica #Blog #Opinioni

 
Continua...

from Bymarty

📒Dal mio diario “Giorno di ordinaria follia”..

Perché quelli come me che parlano, raccontano certe cose, possono essere definiti solo folli! Ed io mi ritengo tale, tanto da avere la lucidità o stupidità o la debolezza di raccontarmi sempre, soprattutto quando non va proprio tutto a gonfie vele, soprattutto quando il mio mare è in tempesta, il faro è lontano e la mia barca sta per affondare...

Eccomi qui, ore 8.00 del mattino, davanti le mie mattonelle di terracotta, che dovrei decorare, davanti al secondo caffè, forse la mia compagna e droga silenziosa di questo periodo, mi basta poco, un caffè per sentirmi più forte, più su, assolutamente e incredibilmente falso, è una scusa è un modo per ritagliarsi e concedermi un piacere, finché mi sarà concesso! Ma stamattina è tutto diverso, è ilio giorno di ordinaria follia, c'è uno stato d'animo sbagliato, arrabbiato, ferito, come alcune di queste mattonelle scheggiate, che potrei e dovrei ricomporre, perchè come nel mio caso pur essendomi spezzata, piegata, rotta, per non definirmi sempre malata e poi entrare nuovamente nel circolo viziolo del bollettino medico, che tanto ha infastidito e giustamente allontanato da me, in realtà metaforicamente parlando e non solo, mi hanno ricucita ed io allo stesso modo posso ricomporre la mattonella, incollandone i pezzi! Reggerà? Non so , mi dicono di sì, la cucitura che è stata fatta a me è stata perfetta pare quasi essere un prezioso ricamo, si nota, ma è come un trofeo per me, un modo per ricordare al mio corpo, che nonostante tutto, ci siamo e a fatica, con impegno, coraggio, fiducia e speranza stiamo combattendo insieme. Poi basta veramente poco , una discussione, una cena in famiglia, dove sei stata un pesce fuori d'acqua, in procinto più volte di annegare, notizie devastanti ascoltate in TV, ovunque, il tempo, che di primaverile ha poco e si basta poco per far si che la mia distrazione, fragilità, la mia disattenzione, portino a far cadere , vacillare tutte le mie certezze faticosamente raggiunte, conquistate...E l'altra cosa che distrugge e manda in frantumi i cocci del mio cuore, è ascoltare il miagolio disperato di mamma Licia, che a distanza di quasi un mese dalla morte di Masha, la mia gatta, la cerca e la chiama, guarda e fissa i posti in cui dormiva e poi si addormenta in quella cassetta, dove hanno trascorso insieme gli ultimi giorni, solo che Masha non c'è più ed io l'unica cosa che ho pensato che potesse farla stare meglio, è stata quella di metterle un peluche e quando disperata e senza più la forza di miagolare, si arrende, va li in quella cassetta e dorme abbracciata a quel peluche, al ricordo forse della sua piccolina, che ha visto soffrire, riprendersi , lottare e poi arrendersi e abbandonarsi per sempre al auo ultimo sonno! So che parte di questa mia fragilità attuale dipende anche da questo evento, che non ho saputo gestire bene, che forse avrei dovuto affrontare diversamente, con distacco e invece è come se avessi perso un pezzo di me, della mia famiglia....e nonostante fosse solo un gatto, io l'ho curata, le sono stata accanto, le ho tenuto la zampa e ho cercato in tutti i modi di farla sentire protetta e amata! Mi dispiace solo di non esserci stata nel suo ultimo respiro, so che forse è stato meglio così, o forse! Io mi sarei sentita meno in colpa, ma ormai è andata , ha attraversato quel ponte e spero solamente che davvero adesso sia serena, non so, voglio credere e sperare che sia così! La morte mi terrorizza, quando ho ricevuto la diagnosi dopo l'esito della biopsia, è stato quello forse il momento più difficile, quello in cui all'improvviso capisci di essere di passaggio, di non essere immortale, ma di essere umano, di non avere i requisiti necessari per difenderti da parole che in quel momento ti squartano il cuore, parole, che le ascolti, e ti fanno un male, ti mandano in confusione e allora l'unica cosa che si riesce a fare è smettere di pensare, ascoltare parole, frasi che mai avresti voluto, e allora piangi, ti perdi completamente, vai nel panico, non respiri e per pochi attimi pensi davvero che sia arrivato quel momento e realizzi velocemente, di non essere pronta, di non aver realizzato ancora tutto e allora respiri e ti riprendi! Ascolti e rinasci perchè non è finita, è una prova, non è la fine della strada, è solo un percorso accidentato, in cui sono caduta, ed ora dopo essermi fatta un po' male, dopo aver ricevuto le cure, le terapie, ecc, devo solo ricominciare a ritrovare quella strada, o forse una nuova e diversa, che mi dia la possibilità di andare avanti, lottare, ma soprattutto vivere! Credo che non sia facile avere a che fare, stare vicino a chi soffre, a chi si perde, a chi affronta un male, una perdita, un qualsiasi dolore, è facile dal di fuori osservare, parlare, consigliare, ma capire no, è uno tsunami che ti sconvolge, è un terremoto, dal quale ti sei salvata, ma sei ferita, devi rimascere dalle macerie, devi ricominciare, ricucire, ricomporre quei cocci, incollarli nel modo giusto, altrimenti non reggono e lo dico per esperienza, è ciò che mi sta succedendo, è il modo in cui sto cercando di reindirizzare la mia vita, di darmi la possibilità di ricominciare, con i miei tempi, le mie forze, con le mie fragilità, i momenti di sconforto, senza dovermi spiegare per forza, senza dover per forza apparire, sorridere, essere felice, se nn lo sono, piangere e sfogarmi con chi ha il cuore libero o ricucito come me, che possa comprendere il mio dolore, i miei timori, i miei momenti no, quelli in cui vorresti solo fermarti, mettere in pausa, pensieri, emozioni, paure e relazioni, col rischio poi di ritrovarti di nuovo da sola ... purtroppo io nn le so indossare le maschere, non so vestirmi di ipocrisia, di bellezza, di bontà, di falsi sorrisi, belle parole e racconti accattivanti, forse vivo in un mondo sbagliato, un'epoca diversa da come mi aspettavo, forse semplicemente sono io diversa, sono me stessa, in un epoca fatta di sorrisi, conquiste, apparire più che essere, ed io nn mi ci trovo e adesso non mi ritrovo, anzi a fatica, a quei piccoli passi fatti in avanti, ne seguono altri indietro, in cui mi fermo confusa, persa, sola, ma sono sempre me stessa e benché so di aver bisogno di qualcuno che possa anche semplicemente dirmi che c'è, che comprende i miei momenti, il mio voler spegnere tutto per un po', vorrei davvero che qualcuno mi abbracciasse in silenzio e che rimanesse con me, ad ascoltare i miei e insieme in questa connessione empatica, sentirmi meglio , protetta e ricaricata, per ricominciare il mio percorso, il mio cammino, la mia vita normale, da diversamente normale! Perché io una missione ce l'ho ed è la vita che ho generato, devo esserci per lui, anche se già sta spiccando il volo, devo cmq essere madre, moglie, figlia, zia, amica , tante cose insieme, ma per una volta vorrei semplicemente essere quella me , che progettava, sognava e che nonostante le esperienze, belle e brutte, viveva spensierata, si uccideva di fatica, facendo 2,3 lavori, occupando ogni minuto, ogni ora e anche se stanca ero felice, e anche se alla sera crollavo, la mattina per me c'era Sempre il sole, anche quando pioveva e se c'era il temporale, non mi fermavo, anzi, mi ci immergevo e ne ricavavvo forza, energia e si mi armavo anche di tenacia mista a cattiveria, quella che mi ha aiutata a crescere, a migliorarmi e superare avversità, perché forse la mia missione era scritta, era continuare ad essere quella mattonella in terracotta, grezza, decorata, scheggiata, risistemata, ma non una splendida ceramica, lucida e perfetta! L'imperfezione, la fragilità, l'umiltà, la semplicità , ecco questa sono io oggi, diversamente imperfetta e fragile, consapevole di potersi rompere ancora...e ancora...

 
Continua...

from La biblioteca di Amarganta

E come ... Enghivuc e Urgula

Capolettera della prima edizione italiana della Storia Infinita. Lettera E, creatore Antonio Basioli

Einghivuc e Urgula, i Bisolitari. Riprendiamo il blog parlando di loro.

Sicuramente li conoscete, magari con i nomi (inglesi) di Engywook e Urgul! Sono i due gnomi che aiutano Atreiu a raggiungere l'Oracolo Meridionale, e due dei più ripresi nei vari media derivati.

Questa litigiosa copia riprende il topos che il sito TVTropes definisce come Madre Natura, Padre Scienza, ma (in puro stile Endeliano) reinterpreta anche il #topos del mentore dell'eroe dandogli una dimensione più intima e domestica.

Una coppia che non scoppia!

Come molti personaggi, anche il mio primo incontro con la coppia di gnomi è avvenuto nel cartone animato. Lo gnomo è un vecchio studioso, interessato a scoprire i misteri che avvolgono l'Oracolo Meridionale e le porte del suo tempio (la serie animata lo rende addirittura un inventore). Sua moglie invece è una medichessa, un'erborista ed è lei a curare Atreiu. I differenti approcci dei due gnomi (intellettuale e desideroso di riconoscimento lui, materna e spirituale lei) danno vita ad accese discussioni, senza arrivare mai alle mani.

Malgrado le differenze, sono coppia funzionale. Urgula – pur non comprendendo la sete di conoscenza del marito – capisce quanto il suo lavoro sia importante per lui. Einghivuc, d'altra parte, riconosce abbastanza in fretta quando la moglie ha ragione nel rimproverarlo. I due si amano molto, come testimoniato dalla scena dell'episodio del cartone che ricordo meglio (The Three Feeling Stones) dove Urgula si rivolge al marito chiamandolo “[...] mio cavaliere azzurro in pensione!“.

Da un punto di vista narrativo, i due si possono considerare come dei mentori per Atreiu, in modo particolare Einghivuc – introdotto come uno studioso dell'Oracolo.

La relazione nella solitudine

Poco utilizzato fuori dal libro è l'epiteto della coppia: Bisolitari.

Si tratta di una parola creata ad hoc dalla traduttrice italiana, Amina Pandolfi, con la complicità di Ende stesso (all'epoca residente in Italia), come affermato dallo stesso autore nel suo saggio Italiano e tedesco. Due lingue e un narratore.

In originale viene infatti utilizzato il termine tedesco Zweisiedler, creato in precedenza dal filosofo Nietzche nella sua opera Così parlò Zaharatustra. Si tratta di una crasi di due parole tedesche: “zwei” (due) e “Einsiedler” (solitario, eremita), una parola che è una contraddizione di per sé, poiché associa alla solitudine dell'eremita una dimensione duale, di relazione con un'altra persona.

Tenendo conto della dinamica di coppia dei due e del loro ruolo condiviso di mentori e guide di Atreiu, la parola funziona! Nuovamente Ende gioca con i topoi e i loro stereotipi. Nell'avventura di Atreiu, il #mentore non è un vecchio saggio solitario, considerato folle dai più, come nella maggior parte della narrativa fantastica, bensì una coppia sposata che si sostiene l'uno con l'altra, litiga e insieme opera.

Un confronto con Tolkien

Parlando di coppie sagge che vivono isolate, il pensiero non può andare a quella formata da Tom Bombadil e Baccadoro (Marrygold) del Signore degli Anelli. Le due copie però risultano solo nell'essere una coppia e nell'aver soccorso e guidato gli eroi (Frodo e Sam nel caso di Tom e sua moglie, Fùcur e Atreiu in quello dei Bisolitari). Anche l'impatto narrativo che esse hanno è diverso. Tom Bombadil ha infatti un maggior peso narrativo della moglie, mentre Enghivuc e Urgula si muovono sempre insieme: anche durante le spiegazioni dello gnomo ad Atreiu, Urugula non rimane in silenzio ma interviene nella discussione, ricordando al marito che la sua scienza non può comunque spiegare i grandi misteri.

E se Bombadil e Baccadoro sono una coppia che incarna l'alterità della natura, i Bisolitari sono invece un duo più reale e verosimile, con una dimensione domestica spesso assente nella figura del mentore dell'eroe.

 
Continua...

from Cyberdyne Systems

lvm Supponiamo di avere 3 volumi logici, ad es. vol1, vol2, vol3 e di voler aumentare il secondo a discapito degli altri due.

Un’esigenza analoga, su un filesystem partizionato in 3 parti in maniera canonica, è un mezzo incubo perché il ridimensionamento della partizione centrale prevede un discreto numero di salti mortali per manenere la contiguità e per non rischiare di lasciare buchetti inutilizzabili fra una partizione e l’altra.

Provo a buttare giù due righe su quello che mi verrebbe di fare:

  1. riduco la prima partizione
  2. riduco la terza partizione
  3. sposto la terza partizione fino alla fine del disco
  4. sposto la seconda partizione fino alla fine della prima partizione
  5. estendo la seconda partizione fino alla fine della prima

Tutto questo tenendo presente che l’unità minima allocabile è il blocco (512 bytes) e che l’operazione che mi fa più paura è il move della partizione. parted non ha un comando “move” diretto. La procedura richiede di calcolare i nuovi settori, spostare i dati e aggiornare la tabella delle partizioni.

Senza una GUI come quella di gparted, bisogna farsi letteralmente i conti con carta e penna prima di agire e c’è il rischio, comunque molto alto, di commettere errori che sarebbero disastrosi.

LVM, al confronto, è una boccata d’ossigeno.

LVM dà la possibilità di ridimensionare volumi in maniera più semplice rispetto al partizionamento più tradizionale perché la dimensione della partizione è disaccoppiata da concetti di contiguità e dalla geometria del disco.

Nel caso del partizionamento tradizionale infatti le partizioni sono dei blocchi di settori consecutivi in cui ogni partizione inizia in un settore finisce in un altro.

Con LVM invece l’approccio è radicalmente diverso. La minima unità allocabile è l’extent (default 4 MiB) che serve per mappare un volume fisico in un volume logico.

Se immaginiamo che il volume fisico possa essere spezzettato in altrettanti extents in una sorta di “paniere”, il volume group, il volume logico non è altro che un insieme di questi extents pescati dal volume group (senza alcuna pretesa d’ordinamento) a cui posso:

  • aggiungere extents prelevandoli dal volume group
  • levare extents riponendoli nel volume group (o assegnandoli ad altri volumi logici).

Queste proprietà conferiscono una grande flessibilità alle operazioni di riduzione ed estensione dei volumi.

1. Cose che è bene ricordare quando si manipolano i volumi logici.

Partizioni Quando si riduce o aumenta un filesystem, è bene smontare le partizioni e volumi logici.

Ridurre un volume logico Quando si riduce un volume logico, si deve:

  1. fare un check del filesystem
  2. ridurre il filesystem
  3. ridurre il volume logico

Estendere un volume logico Quando si aumenta un volume logico, al contrario, si deve:

  1. estendere il volume logico
  2. estendere il filesystem
  3. fare un check del filesystem

Calcolare lo spazio allocabile Un volume logico è composto da un insieme di extents, blocchi grandi di default 4 MiB, che sono la minima unità allocabile. Un volume logico è quindi sempre corrispondente ad un multiplo di 4 MiB, n extents di cui n-1 allocabili, il rimanente per i metadati. Ad es. un volume logico di 2 GiB è composta da 512 extents di cui 511 allocabili.

La potenza di due Si deve tenere sempre presente che, nella matematica del calcolo dello spazio, si considerano le potenze di 2. Non di 10. Quindi un GiB equivale a 1024 MiB, non a 1000. Di conseguenza, se dividessi un GiB in due parti uguali avrei 2 blocchi da 512 MiB non da 500.

Estensione e riduzione Nelle istruzioni di estensione (lvextend) e riduzione (lvreduce) possiamo scegliere ciò che va specificato fra 4 modalità:

  1. il numero totale di extents
  2. il delta in aggiunta o in diminuzione degli extents (a seconde che l’operazione sia rispettivamente di estensione o di riduzione)
  3. la dimensione totale espressa in KiB-MiB-GiB-TiB
  4. come prima, il delta in aggiunta o in diminuzione della dimensione espresso in KiB-MiB-GiB-TiB

2. Scenario 1: Estensione e riduzione di volumi logici

Supponiamo di avere un disco da 2 GiB (2048 MiB) diviso in 3 volumi logici da 550 MiB, 350 MiB e 1148 MiB di e di volerne ridurre due per ampliare il terzo.

Vogliamo ridurre il primo di 150 MiB, il terzo di 330 MiB e aumentare corrispondentemente il secondo volume di 480 MiB.

Prepariamo il laboratorio col solito file appiccicato ad un loop device. Su quello definirò il volume group, il mio “paniere” di extents.

# creazione device
fallocate -l 2GiB disk_1.img

# creazione device e volum group
vgcreate vg_lab $(losetup -Pf --show disk_1.img)

# creazione volumi logici
lvcreate -n lv_lab_1 vg_lab -L 550M
lvcreate -n lv_lab_2 vg_lab -L 350M
lvcreate -n lv_lab_3 vg_lab -l 100%FREE

# formattazione volumi logici
mkfs.ext4 /dev/vg_lab/lv_lab_1
mkfs.ext4 /dev/vg_lab/lv_lab_2
mkfs.ext4 /dev/vg_lab/lv_lab_3

# mount dei volumi
mkdir vol_1 vol_2 vol_3
mount -t ext4 -o defaults /dev/vg_lab/lv_lab_1 vol_1
mount -t ext4 -o defaults /dev/vg_lab/lv_lab_2 vol_2
mount -t ext4 -o defaults /dev/vg_lab/lv_lab_3 vol_3

2.1. Step 0: curiosità

Prima di cominciare esaminiamo un po’ di dati, ad es. di quanti extents sono composti i nostri oggetti.

pvdisplay /dev/loop9
  --- Physical volume ---
  PV Name               /dev/loop9
  VG Name               vg_lab
  PV Size               2,00 GiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              511
  Free PE               0
  Allocated PE          511
  PV UUID               YmLOru-bIdL-iqGb-vJfI-RsTk-yhv7-vSJhkX

pvdisplay mi dà informazioni sul disco fisico che andrò ad aggiungere nel volume group. Fra queste:

  • PV Name: il nome del device, /dev/loop9
  • VG Name: è il nome del gruppo di volume, vg_lab, visibile solo perché abbiamo creato il gruppo di volume direttamente sul dispositivo invece che passare prima da pvcreate.
  • PV Size: 2 GiB, la dimensione del nostro “disco”
  • PE Size: dove PE sta Physical Extent, è di 4 MiB
  • Total PE sono i PE totali e sono 511, come previsto.
vgdisplay vg_lab
  --- Volume group ---
  VG Name               vg_lab
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <2,00 GiB
  PE Size               4,00 MiB
  Total PE              511
  Alloc PE / Size       0 / 0
  Free  PE / Size       511 / <2,00 GiB
  VG UUID               6D89ck-c2Ni-XlMN-5Was-rh5j-vi2t-5juCXt

vgdisplay mi dà informazioni sul gruppo di volumi. Fra queste, disitnguiamo

  • VG Name: il nome del volume group, già visto in pvdisplay, vg_lab
  • VG Size: la dimensione del volume group, minore di 2 GiB perché ci sono i metadati da considerari
  • PE Size: la dimensione di un extent, 4 MiB
  • Total PE / Size: Il numero totale di extent allocabili, che conferma VG Size, pari a 511 invece che 512.
  • Alloc PE: il numero totale di extent allocati, momento della creazione del volume group è 0
  • Free PE / Size: il numero totale di extent liberi, prima della creazione dei volumi logici è 511

Cosa succede quando creerò i volumi logici? Che cambia il numero di PE liberi e allocati. Siccome userò tutti gli extent disponibili, i valori per Alloc PE e Free PE si invertiranno rispetto a prima.

Infatti dopo la creazione dei volumi logici, vgdisplay mi dirà:

vgdisplay vg_lab
  --- Volume group ---
  VG Name               vg_lab
  ...
  Alloc PE / Size       511 / <2,00 GiB
  Free  PE / Size       0 / 0
  ...  

511 extents allocati come confermato dai dati desumibili dei 3 volumi logici

lvdisplay vg_lab
 --- Logical volume ---
  LV Path                /dev/vg_lab/lv_lab_1
  LV Name                lv_lab_1
  VG Name                vg_lab
...
  LV Size                552,00 MiB
  Current LE             138
...
 --- Logical volume ---
  LV Path                /dev/vg_lab/lv_lab_2
  LV Name                lv_lab_2
  VG Name                vg_lab
...
  LV Size                352,00 MiB
  Current LE             88
...
 --- Logical volume ---
  LV Path                /dev/vg_lab/lv_lab_3
  LV Name                lv_lab_2
  VG Name                vg_lab
...
  LV Size                1,11 GiB
  Current LE             285
...

Per il primo, il secondo e il terzo volume logico abbiamo rispettivamente:

  • 138, 88, 285 extents corrispondenti a
  • 552 MiB, 352 MiB e 1140 MiB (1,11 GiB)
  • per un totale di 2044 MiB, al netto dei metadati.

Possiamo notare subito che le dimensioni non corrispondono a quanto indicato in lvcreate.

lvcreate -n lv_lab_1 vg_lab -L 550M
lvcreate -n lv_lab_2 vg_lab -L 350M
lvcreate -n lv_lab_3 vg_lab -l 100%FREE

Questo succede perché vengono sempre approssimate all’extent più vicino. Ecco perché il primo e il secondo volume sono diventati di 552 (138 extents) e 352 MiB (88 extents).

Sempre ricordando la particolarità dei multipli di 4 MiB legati a LVM, anche la riduzione di 150 MiB e di 330 MiB dei due volumi saranno approssimate sempre all’extent più vicino (152 MiB=38 extents e 332=83 extents). Questo dettaglio si rivelerà fondamentale quando dovremo ridimensionare il filesystem.

Con questa rinnovata consapevolezza cominciamo a ridimensionare.

2.2. Step 1: Smontare i dischi

umount /dev/vg_lab/lv_lab_1
umount /dev/vg_lab/lv_lab_2
umount /dev/vg_lab/lv_lab_3

2.3. Step 2: Riduzione del filesystem

Se dovessi ridimensionare solo il filesystem, sarebbe sufficiente considerare dimensioni che siano potenze di 2 e non di 10.

Ma sapendo che sotto c’è un LVM, sappiamo che per mantenere l’allineamento fra filesystem e volumi logici, oltre che potenze di due le dimensioni devono essere anche multipli di 4MiB.

Ecco perché anche nel resize reale del filesystem non dovrò levare 150 MiB e 330 MiB ma 148 MiB (37 PE) e 328 (82 PE) (è buona norma approssimare per difetto all’extent più vicino per maggior prudenza) per un totale effettivo di 476 MiB (119 PE)

Il filesystem del primo volume sarà dunque di 552 MiB – 148 MiB = 404 MiB. Il filesystem del terzo volume sarà di 1140 MiB – 328 MiB = 812 MiB.

# check dei filesystem
e2fsck -f /dev/vg_lab/lv_lab_1
e2fsck -f /dev/vg_lab/lv_lab_2
e2fsck -f /dev/vg_lab/lv_lab_3

# Riduco il primo filesystem di 148 MiB
resize2fs /dev/vg_lab/lv_lab_1 404M

# Riduco il terzo filesystem di 328 MiB
resize2fs /dev/vg_lab/lv_lab_3 812M

2.4. Step 3: Ridimensionare i volumi logici

La riduzione del volume logico può essere fatta in 4 modi come sappiamo, ad es. sul primo volume:

# il numero totale di extents, 138 PE - 37 PE = 101 PE
lvreduce -l 101 /dev/vg_lab/lv_lab_1 #oppure

# il numero di exrtents da sottrarre, 38 PE
lvreduce -l -37 /dev/vg_lab/lv_lab_1 #oppure

# la dimensione totale da ottenere, 404 MiB
lvreduce -L 404M /dev/vg_lab/lv_lab_1 #oppure

# il numero di MiB da sottrarre, 148 MiB
lvreduce -L -148M /dev/vg_lab/lv_lab_1 #oppure

Per maggior chiarezza userò il size assoluto in modo da farlo corrispondere a resize2fs

# Riduco il primo volume logico di 148 Mib
lvreduce -L 404M /dev/vg_lab/lv_lab_1

# Riduco il terzo volume logico di 328 Mib
lvreduce -L 812M /dev/vg_lab/lv_lab_3

Verifichiamo quanti siano i PE residui

vgdisplay vg_lab | grep "Free  PE"
 Free  PE / Size       119 / 476,00 MiB

119 extents, come previsto.

2.5. Step 4: Estendere il volume logico

Dopo aver ridotto il primo e il terzo volume, non ci rimane che estendere il secondo in base alla scaletta indicata prima:

  1. si estende il secondo volume logico
  2. si estende il filesystem
  3. si esegue il check fnale del filesystem

L’estensione del volume, come ormai ben sappiamo, non sarà di 480 MiB ma di 476 MiB (37 PE + 82 PE = 119 PE) per via degli arrotondamenti effettuati nella riduzione degli altri volumi logici.

# specifico gli extent che so essere residui
lvextend -l +119 /dev/vg_lab/lv_lab_2
# o, equivalentemente
# lvextend -L +476M /dev/vg_lab/lv_lab_2

# estendo il filesystem
resize2fs /dev/vg_lab/lv_lab_2 828M

# check filesystem
e2fsck -f /dev/vg_lab/lv_lab_2

2.6. Step 5: Bonus

Come premio per essere arrivato in fondo, posso rivelare come fare in un colpo solo tutte le operazioni descritte sopra.

È vero che c'è poco da considerare, giusto tenere a mente che su LVM ogni oggetto è multiplo di 4 MiB e che bisogna ridimensionare filesystem e volumi logici in ugual modo per non generare pericolose anomalie, ma tutte le operazioni che ho descritto nei passi 2-4 possono essere fatte con un unico comando che provvederà ad eseguire nell'ordine corretto e con le giuste approssimazioni:

  • il check del filesystem
  • il ridimensionamento del filesystem
  • il ridimensionamento dei volumi logici

Dunque, tutto il pippone atomico precedente può essere condensato in un unico, solido comando:

# Riduce il primo volume logico e il filesystem
lvreduce -r -L -150M /dev/vg_lab/lv_lab_1

# Riduce il terzo volume logico e il filesystem
lvreduce -r -L -330M /dev/vg_lab/lv_lab_3

# Estende il secondo volume logico e il filesystem
lvextend -r -l +119 /dev/vg_lab/lv_lab_2

Ora spieghiamo il perché soprattutto dell'extend, che è interessante.

Diciamo che è tutto molto guidato e le eventuali correzioni da apportare, senza spaccarsi troppo il cervello, sono suggerite con estrema chiarezza, basta leggere.

lvreduce -r -L -150M /dev/vg_lab/lv_lab_1
 Rounding size to boundary between physical extents: 148.00 MiB.
  File system ext4 found on vg_lab/lv_lab_1.
  File system size (552.00 MiB) is larger than the requested size (404.00 MiB).
  File system reduce is required using resize2fs.
...
  Size of logical volume vg_lab/lv_lab_1 changed from 552.00 MiB (138 extents) to 404.00 MiB (101 extents).
  Logical volume vg_lab/lv_lab_1 successfully resized.

Ci dice innanzitutto che:

  • c'è stato un arrotondamento a 148 MiB (37 extents);
  • il filesystem è più grande del volume richiesto pertanto va subito ridimensionato;
  • infine si ridimensiona il volume logico da 552 MiB (138 extents) a 404 MiB (101 extents).

Anche il secondo lvreduce ha un risultato analogo

lvreduce -r -L -330M /dev/vg_lab/lv_lab_3
  Rounding size to boundary between physical extents: 328.00 MiB.
  File system ext4 found on vg_lab/lv_lab_3.
  File system size (1.11 GiB) is larger than the requested size (812.00 MiB).
  File system reduce is required using resize2fs.
...
  Size of logical volume vg_lab/lv_lab_3 changed from 1.11 GiB (285 extents) to 812.00 MiB (203 extents).
  Logical volume vg_lab/lv_lab_3 successfully resized.
  • anche qui abbiamo un arrotondamento a 328 MiB (82 extents);
  • il filesystem è più grande del volume richiesto pertanto va subito ridimensionato;
  • infine si ridimensiona il volume logico da 1140 MiB (285 extents) a 812 MiB (203 extents).

È facilissimo desumere che la massima dimensione dell'estensione sia 148 MiB + 328 MiB = 476 MiB (119 extents), basta fare una somma.

Ma supponiamo di essere particolarmente distratti e proviamo ad estendere considerando le quantità iniziali: 150 MiB + 330 MiB = 480 MiB

lvextend -r -L +480M /dev/vg_lab/lv_lab_2
  File system ext4 found on vg_lab/lv_lab_2.
  File system fsck will be run before extend.
  Insufficient free space: 120 extents needed, but only 119 available

Nonostante la mia distrazione, come si può vedere, non si producono danni perché l'ouput è categorico: “non faccio nulla. Se vuoi, puoi aumentare al max di 476 MiB (119 extents)”. Non ci sono danni e anzi c'è pure il suggerimento risolutivo.

Ed ecco spiegato il mio extend di prima.

3. Scenario 2: Estensione e riduzione di gruppi di volume

Esaminiamo le possibilità di aggiungere o rimuovere dispositivi ad un volume group esistente.

Ricreiamo il laboratorio partendo da 3 dischi, poi aggiungeremo due nuovi dischi e ne rimuoveremo altrettanti, il tutto senza intaccare l'integrità dei dati.

# creazione di 5 device
for i in {1..9}: do fallocate -l 1GiB disk_${i}.img; done

# creazione del gruppo di volumi con 3 device
vgcreate vg_lab \
  $(losetup -Pf --show disk_1.img) \
  $(losetup -Pf --show disk_2.img) \
  $(losetup -Pf --show disk_3.img)

# crezione di 3 volumi logici
lvcreate -n lv_lab_1 vg_lab -l 300
lvcreate -n lv_lab_2 vg_lab -l 250
lvcreate -n lv_lab_3 vg_lab -l 100%FREE

# formattazione dei 3 dispositivi
mkfs.ext4 /dev/vg_lab/lv_lab_1
mkfs.ext4 /dev/vg_lab/lv_lab_2
mkfs.ext4 /dev/vg_lab/lv_lab_3

Ecco come sono distribuiti i volumi logici all'interno dei dischi fisici

lsblk -o NAME,FSTYPE,SIZE,TYPE
  NAME               FSTYPE        SIZE      TYPE
  loop9              LVM2_member     1G      loop
  └─vg_lab-lv_lab_1                1,2G      lvm
  loop10             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_1                1,2G      lvm
  └─vg_lab-lv_lab_3                860M      lvm
  loop11             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_2               1000M      lvm
  └─vg_lab-lv_lab_3                860M      lvm

Il gruppo di volumi è composto da 3 volumi fisici tutti attivi

vgdisplay vg_lab |grep PV
  Max PV                0
  Cur PV                3
  Act PV                3

Andiamo ad estendere il nostro gurppo di volumi con altri due device

vgextend vg_lab $(losetup -Pf --show disk_4.img) $(losetup -Pf --show disk_5.img)

I nuovi dischi sono visibili in fondo, come si può vedere anche da vgdisplay che mostra i 5 dischi tutti attivi.

lsblk -o NAME,FSTYPE,SIZE,TYPE
  NAME               FSTYPE        SIZE      TYPE
  loop9              LVM2_member     1G      loop
  └─vg_lab-lv_lab_1                1,2G      lvm
  loop10             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_1                1,2G      lvm
  └─vg_lab-lv_lab_3                860M      lvm
  loop11             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_2               1000M      lvm
  └─vg_lab-lv_lab_3                860M      lvmchan
  loop12             LVM2_member     1G      loop
  loop13             LVM2_member     1G      loop

vgdisplay vg_lab |grep PV
  Max PV                0
  Cur PV                5
  Act PV                5

Potremo usare i nuovi dischi per estendere i volumi logici esistenti ma li impiegheremo invece per rimpiazzare i primi due dischi.

pvmove distribuisce tutti gli extents del disco fra tutti i volumi fisici che hanno spazio a sufficienza. Se non dovesse essercene, restituirà un messaggio d'errore.

pvmove /dev/loop9
  /dev/loop9: Moved: 3,14%
  /dev/loop9: Moved: 100,00%

Alla fine dell'operazione il disco s'è liberato di tutti i suoi extents e può essere rimosso

lsblk -o NAME,FSTYPE,SIZE,TYPE
  NAME               FSTYPE        SIZE      TYPE
  loop9              LVM2_member     1G      loop
  loop10             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_1                1,2G      lvm
  └─vg_lab-lv_lab_3                860M      lvm
  loop11             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_2               1000M      lvm
  └─vg_lab-lv_lab_3                860M      lvm
  loop12             LVM2_member     1G      loop
  └─vg_lab-lv_lab_1                1,2G      lvm
  loop13             LVM2_member     1G      loop

Prima si estrae il volume fisico dal gruppo di volumi e poi si rimuove il volume fisico e così può essere scollegato.

vgreduce vg_lab /dev/loop9
pvremove /dev/loop9

Verifichiamo che il volume fisico non sia più presente.

vgdisplay vg_lab |grep PV
  Max PV                0
  Cur PV                4
  Act PV                4

Procediamo allo stesso modo col secondo disco.

pvmove /dev/loop10
  /dev/loop10: Moved: 9,80%
  /dev/loop10: Moved: 17,65%
  /dev/loop10: Moved: 100,00%

vgreduce vg_lab /dev/loop10
  Removed "/dev/loop10" from volume group "vg_lab"

pvremove /dev/loop10
  Labels on physical volume "/dev/loop10" successfully wiped.

In conclusione possiamo vedere il gruppo di volumi con solo 3 dischi, gli altri due completamente disimpegnati col gruppo di volumi ricostituitosi attorno ai 3 dischi rimanenti. E tutto spostando semplicemente gli extents dove c'era disponibilità in maniera totalmente trasparente per il filesystem.

vgdisplay vg_lab |grep PV
  Max PV                0
  Cur PV                3
  Act PV                3


lsblk -o NAME,FSTYPE,SIZE,TYPE
  NAME               FSTYPE        SIZE      TYPE
  loop9                              1G      loop
  loop10                             1G      loop
  loop11             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_2               1000M      lvm
  └─vg_lab-lv_lab_3                860M      lvm
  loop12             LVM2_member     1G      loop
  └─vg_lab-lv_lab_1                1,2G      lvm
  loop13             LVM2_member     1G      loop
  ├─vg_lab-lv_lab_1                1,2G      lvm
  └─vg_lab-lv_lab_3                860M      lvm

4. Conclusione

Ho solo sfiorato la complessità e le capacità offerte da LVM.

L'estensione e la riduzione di volumi logici e di gruppi di volumi sono scenari di base. Tuttavia sono sufficienti per mostrare come sia semplice, con i volumi logici, compiere operazioni che con un filesystem partizionato in maniera classica sarebbero complicatissime.

#lvm #volumegroup #logicalvolume #filesystem #devicemapper

 
Continua...

from CASERTA24ORE.IT dal 1999 on line

Cartuccia numero 991989-1 – I 'call center'

Non sono più giovane, ma neanche tanto vecchio, ho fatto il militare di leva e mi hanno insegnato a sparare e oggi qualche cartuccia posso ancora spararla!

Cartuccia numero 991989-1 – I call center Li ho tollerati per tanto tempo, pensando ai lavoratori che sono dietro la cornetta; ma il tempo è passato e i lavoratori sono sempre sfruttati, anzi di più. Quindi ho deciso di reagire e invito chi legge a fare altrettanto. Ecco quindi la cartuccia 991989/1 (nessun codice di cartuccia reale, niente paura; si tratta di un semplice numero per recuperare facilmente questo testo).

Iniziamo! Quando veniamo chiamati dai call center, dedichiamo loro un po' del nostro tempo. Siamo gentili, fingiamo di essere interessati; se ci chiamano per nome, non confermiamo la nostra identità, ma diciamo di essere un familiare o un congiunto e li invitiamo a parlare tranquillamente. Facciamo qualche domanda, teniamoli al telefono il più a lungo possibile e forniamo eventuali dati personali falsi, lavorando di fantasia.

Se riusciamo a trattenerli per 15 minuti, la “cartuccia” ha fatto centro; ma per colpire proprio nel segno, concludiamo così: “Mi scusi, capisco che lei è un lavoratore e so anche che è sfruttato. Pertanto, mi perdoni: le chiedo gentilmente di cancellare il mio numero di telefono dal vostro database, altrimenti, tutte le altre volte che telefonerà un suo collega, lo terrò al telefono per altrettanto tempo senza fargli concludere nulla. Inoltre, se verrò ricontattato per dare un voto a questa chiamata, assegnerò il punteggio più basso possibile; invece, se cancellerà il mio numero, come sono certo che farà, metterò il voto più alto possibile”.

Immaginate se non fossi solo io a sparare la “cartuccia numero 991989/1”, ma lo facessero in 10.000 persone: significherebbe 2.500 ore di lavoro perse, ovvero circa 105 giorni di attività dei call center buttati via. A quel punto, visto che le telefonate sono registrate e ascoltate dai supervisori di quei poveri operatori, qualcuno dovrà pur prendere provvedimenti per scongiurare una perdita così ingente.

Di sicuro, adesso qualcuno dirà: “Ma alla fine ci rimetteranno, come al solito, i poveri lavoratori, perché sono pagati a contratto”. A quel qualcuno risponderò che probabilmente non ha capito i meccanismi alla base dello sfruttamento lavorativo, forse perché, per sua fortuna, non è mai stato sfruttato.

Alla prossima cartuccia reporter

 
Continua...

from Lukather Blog

Sono uno che prende appunti durante le riunioni, quando seguo un corso online e a volte anche quando gioco. Appunti manuali, scrivendo con penna o matita su carta. Lo faccio sicuramente per aiutare la mia precaria memoria, per abitudine e perché mi serve poter accedere a questi contenuti in qualsiasi momento. Qual è il problema principale di questo metodo, sopratutto legato all'ultimo punto? È che gli appunti su carta non sono fruibili in maniera comoda, facile e veloce come possono essere quelli digitali.

Non parliamo poi del fatto di poter utilizzare GenAI per interrogare ed elaborare velocemente i nostri appunti (si, non mi sono dimenticato della privacy, non vi preoccupate). Fino a un po' di tempo fa cosa accadeva? Che prendevo appunti e spesso non li digitalizzavo, rimanevano nel mio blocco per gli appunti (spesso sotto forma di fogli volanti della stampante...) e ci rimanevano per sempre, intonsi, mai più letti o considerati.

Poi ho iniziato ad usare i più svariati tool: Evernote, Notepad++, Onenote, Notion, Logseq, Blinko, ... Ho trovato la mia stabilità con Obsidian. Non è OpenSource ma è comunque un tool che può essere utilizzato tranquillamente offline e che scrive file .md (markdown), un formato di testo aperto e fondato su plain-text, quindi non legato ad una piattaforma privata e monopolista (sono infatti passato da Logseq ad Obsidian facendo un normale copia-incolla della cartella contenente i miei file). Quindi con Obisidian tutto bene, quindi perché stai scrivendo questo papiro di testo? Perché spostandomi verso appunti digitali viene a mancare la prima motivazione elencata sopra e cioè prendere appunti come rinforzo per la memoria e l'apprendimento, per fare ciò serve scrivere con la penna su un foglio.

reMarkable

Veniamo al punto, da moltissimo tempo sono intrigato e affascinato dagli e-paper come reMarkable o Kindle Scrible o Supernote che uniscono la scrittura manuale a una digitalizzazione del testo. Il problema principale di questi strumenti è che spesso sono walled-garden che non permettono in maniera facile di esportare le proprie note “fuori” dal sistema con il quale sono stati sviluppati.

Qualche settimana fa sono capitato, non ricordo come ma probabilmente tramite Reddit, sul sito di Sébastien Dubois, IT Developer appassionato di AI, che ha sviluppato un plugin per importare appunti presi su reMarkable con Obsidian (come immagini PNG). Questo già mi ha acceso una lampadina in testa, attenzione! Forse ho trovato una scusa per spendere 450€, siiiii! Poi ho inziato a spulciare tutta l'interessante Knowledge Base creata da Sébastien e sono incappato in un secondo plugin, legato al primo, che prende i PNG importati da reMarkable in Obsidian e utilizza gli LLM (nello specifico una installazione locale di Ollama) per leggere gli appunti e creare file markdown ben formattati. Sono a cavallo, ho trovato il mio workflow per passare da appunti presi a mano ad averli digitali e fruibili in maniera facile (anche banalmente usando un CTRL+F per cercare qualcosa al loro interno).

Dopo qualche studio su quale modello di e-paper acquistare ho optato per il reMarkable 2 ed eccomi qui a raccontarvi il come e perché. Naturalmente ho subito installato entrambi i plugin, anzi ho fatto di meglio. Ho installato solo il primo plugin per importare le note in Obsidian e poi mi ho fatto un fork del secondo plugin su github perché volevo aggiungere la possibilità di utilizzare anche modelli esterni tramite OpenAI API (fondamentalmente per poter usare i servizi AI di Infomaniak, mio provider di fiducia). Quindi ho usato un mix di Claude Code, Cursor e Mistral per sistemare il plugin per le mie esigenze ed eccolo qua in azione.

Obisidian plugin

Obisidian plugin

Ah ho scoperto che il riconoscimento del MAIUSCOLO e minuscolo dipende dal modello usato. Nei prossimi giorni vorrei provare a migliorare ancora il plugin in modo che si inserisca perfettamente all'interno del mio workflow. Sto pensando, ad esempio, di provare a far capire all'agente AI di cosa tratta la nota e di inserirla all'interno della cartella corretta del mio Vault.

A presto per i prossimi aggiornamenti e se vi va mettete una stella al progetto su GitHub.

*Post scritto senza l'aiuto di GenAI*

 
Read more...

from Cyberdyne Systems

normalizzazione Quando si deve aumentare il volume di una traccia audio, si deve ricorrere a ad un'operazione di “normalizzazione”.

1. Cos'è la normalizzazione

La normalizzazione è un'operazione lineare che consiste nell'analisi del file audio, nel calcolare la differenza (offset) fra il volume attuale ed un volume target, nell'applicare una correzione di guadagno (Gain).

La normalizzazione può essere distinta in base al “come” e al “dove”.

Il “come” La normalizzazione classica si basa sui picchi. Cerca il punto più alto della forma d'onda e lo porta a un valore massimo (es. 0 dB). Ignora la percezione umana; un brano con un singolo “click” molto forte risulterà comunque silenzioso perché quel picco blocca l'aumento del volume.

La normalizzazione più moderna si basa sui LUFS, ossia su come, mediamente, l'audio viene effettivamente percepito dall'orecchio umano (psicoacustica). Porta l'intero brano a un livello di pressione sonora media costante, rendendo l'ascolto uniforme tra diverse tracce.

Il “dove” Quando si normalizza una traccia audio si può scegliere di farla modificando ogni singolo sample della traccia audio oppure di agire sui metadati.

Nel primo caso il file originale viene modificato (ricodifica quasi sempre lossy), nel secondo viene lasciato inalterato.

Altro fattore di cui tenere conto è che una normalizzazione lossy funziona su ogni player, una normalizzazione che agisce sui metadati funziona solo se il player è in grado di leggerli.

Possiamo fare quindi una prima distinzione:

  1. normalizzazione di picco (RMS) o Peak Normalization: applicazione di un guadagno statico (RMS) in modalità lossy: non altera la dinamica del brano, richiede una ricodifica;
  2. normalizzazione della sonorità (LUFS) o Loudness Normalization:
    1. applicazione di un guadagno statico (LUFS) in modalità lossy: non altera la dinamica del brano, richiede una ricodifica;
    2. applicazione di un guadagno statico (LUFS) basato su tag: non altera la dinamica del brano, lascia il file inalterato (rsgain);
    3. agisce con un compressore / limiter in modalità lossy: altera la dinamica del brano, richiede una ricodifica.

A questo punto la domanda diventa: quale scegliere?

Per quel che mi riguarda, la salomonica risposta è: dipende.

Come si può immaginare, non c'è una risposta definitiva ma dipende dalla qualità della traccia, dal contesto ecc.

2. Come misurare il “picco”?

C'è bisogno di un elemento misurabile che mi permetta di capire come agire con la normalizzazione.

RMS (Root Mean Square): è un calcolo matematico asciutto su quanto sia potente elettricamente/digitalmente il segnale audio. È utile per capire l'energia costante, ma non tiene conto del fatto che l'orecchio umano è più sensibile ad alcune frequenze rispetto ad altre.

LUFS (Loudness Units Full Scale): È lo standard moderno (EBU R128). Simula l'udito umano applicando dei filtri che pesano maggiormente le frequenze medie.

Per misurare il picco RMS posso ricorrere ad ffmpeg

ffmpeg -hide_banner -i "audio.m4a" -filter:a "volumedetect" -f null -
...
[...] n_samples: 18522112
[...] mean_volume: -20.3 dB
[...] max_volume: -5.4 dB
[...] histogram_5db: 40
[...] histogram_6db: 1436
[...] histogram_7db: 6443
[...] histogram_8db: 18606
...

che mi mostrerà:

  • il numero dei samples di cui si compone la traccia
  • il volume medio (mean_volume)
  • il picco (max_volume)

Il picco mi dice di quanto possa alzare il volume (fino al limite fisico di 0dB) staticamente senza causare distorsioni.

La differenza fra volume medio e picco mi dà informazioni sulla dinamica del brano. Maggiore è la differenza, maggiore è la dinamica. Tipicamente:

  • valori < 5 sono tipici della musica dance, forte, uniforme, e molto compressa.
  • valori fra 5 e 15 sono tipici di brani pop-rock, ben bilanciati
  • valori > 15 sono attribuibili a brani di musica classica, jazz, con una dinamica ricca.

Per misurare il loudness, sempre con ffmpeg:

ffmpeg -hide_banner -i "audio.m4a" -filter:a "ebur128=peak=true" -f null - 
...
 Integrated loudness:
    I:         -18.1 LUFS
    Threshold: -28.4 LUFS

  Loudness range:
    LRA:         4.1 LU
    Threshold: -38.3 LUFS
    LRA low:   -21.2 LUFS
    LRA high:  -17.1 LUFS

  True peak:
    Peak:       -5.4 dBFS

La misurazione è più articolata rispetto alla precedente.

FFmpeg innanzitutto mostra due sezioni: Integrated Loudness, rappresentante il volume medio complessivo del file e la Loudness Range che mi descrive la dinamica del brano come differenza di volume fra le parti più silenziose e quelle più rumorose.

  1. Sezione Integrated loudness:
    • I: è il valore più importante. È il volume medio percepito dell'intero brano (come si può vedere, diverso rispetto all'RMS di prima. Il primo è pura potenza digitale, il secondo è volume percepito).
    • Threshold: è la soglia usata per evitare che i silenzi abbassino artificialmente la media del volume. L'algoritmo ignora tutto ciò che sta sotto questa soglia nel calcolo dell'Integrated Loudness.
  2. Sezione Loudness range:
    • LRA: è un indice della variazione dinamica del brano. Più è basso, più il suono tende ad essere uniforme e probabilmente compresso
    • Threshold: come prima, è la soglia oltre la quale i suoni vengono ignorati nel calcolo del range dinamico.
    • LRA Low: indica il limite inferiore del loudness
    • LRA High: indica il limite superiore
      quindi LRA = LRA High – LRA Low
  3. Sezione True peak:
    • Peak: Simile al max_volume dell'RMS, indica il picco reale del brano in termini di sonorità.

Un altro modo, forse meno pratico ma decisamente più scenografico, per analizzare un file audio è questo:

ffplay -f lavfi -i "amovie=audio.m4a,ebur128=video=1:meter=18 [out0][out1]"

Disegna un grafico dell'onda sonora in tempo reale.

3. Come leggere correttamente questa misura

L'integrated loudness mi dice qual è il volume medio del brano. True peak mi dice di quanto posso alzare prima di distorcere. Queste sono le due informazioni cruciali sufficienti per applicare un guadagno statico senza fare danni.

I valori High e Low del Loudness Range, che racchiudono asintoticamente il brano, tornano utili quando bisogna agire sulla dinamica.

Notare che Integrated loudness è sempre compreso fra LRA Low e LRA High.

3.1. Perché usare il loudness invece di RMS?

L'RMS è un calcolo puramente matematico che non tiene conto del fatto che l'orecchio umano è molto più sensibile alle frequenze medie che non ai bassi estemi e agli acuti altissimi.

A questo provvede il LUFS che è un'evoluzione dell'RMS perché include dei filtri di ponderazione che, prima di calcolare la media, esaltano le frequenze medie attenuando quelle basse.

La conseguenza è che se agisco sul volume dei brani prendendo LUFS come riferimento, questi suoneranno tutti allo stesso volume. Se considerassi un adeguamento basato su RMS, i brani con più bassi sembreranno avere meno volume di quelli con frequenze medie più marcate.

4. Come ti normalizzo il file

La scelta fra una normalizzazione di picco e una di volume (loudness) è abbastanza semplice in realtà.

A parte poche eccezioni in cui può avere senso avere RMS come riferimento, è sempre preferibile una normalizzazione della sonorità.

Quest'ultima può essere fatta modificando solo i metadati o agendo chirurgicamente sul file ricodificandolo.

4.1. Peak normalization

Una volta noti i dati di Max Volume e Mean Volume visti in precedenza, la normalizzazione è piuttosto semplice.

Supponendo Max Volume = 6dB

ffmpeg -i audio.m4a -filter:a "volume=6dB" -c:a aac -b:a 192k audio_normalized.m4a

Dovendo ricodificare, scelgo un bitrate piuttosto alto per limitare la perdita fisiologica di una ricodifica lossy.

Come si può immaginare, è una aggiunta lineare secca a tutta la traccia a cui aumento solo la potenza digitale senza tenere conto della percezione sonora.

Piccola nota: Conviene scegliere un valore che si avvicini, ma non equivalga, al limite di 0 dB perché altrimenti FFmpeg taglierà brutalmente le creste dell'onda sonora che superano lo zero, creando quella tipica distorsione metallica grattata chiamata clipping.

4.2. Loudness Normalization

La normalizzazione di volume, in base alla nostra scelta di alterare o meno la dinamica del brano, può essere fatta come detto applicando:

  • un guadagno statico LUFS (lossy)
  • un guadagno statico LUFS sui metadati (non lossy)
  • compressore / limiter (sempre lossy)

Il guadagno statico, quello con i metadati, avverrà con rsgain.

La normalizzazione con perdita di qualità (lossy) avverrà con ffmpeg usando il filtro loudnorm che dispone di un compressore/limiter piuttosto efficace.

Questo filtro è un processore dinamico (dual-pass o single-pass). Non si limita ad alzare il volume; se trova una parte troppo forte, può comprimere leggermente solo quella parte per permettere al resto della canzone di suonare più forte.

loudnorm porta il loudness di default a -24 LUFS che è lo standard per il broadcast televisivo.

I colossi dello streaming applicano automaticamente un loudness decisamente più marcato, salvo poche eccezioni, non si discostano da -14 LUFS. Ad es. Youtube, Amazon Music, Spotify, Soundcloud viaggiano mediamente su -14 LUFS, Deezer -15, Apple Music -16.

Si può verificare facilmente, come sappiamo fare, come un audio presente su una di queste piattaforme, abbia uno dei loudness indicati.

4.2.1. Loudness Normalization statica (ffmpeg)

Riprendiamo l'esempio di prima.

ffmpeg -hide_banner -i "audio.m4a" -filter:a "ebur128=peak=true" -f null - 
...
 Integrated loudness:
    I:         -18.1 LUFS
    Threshold: -28.4 LUFS

  Loudness range:
    LRA:         4.1 LU
    Threshold: -38.3 LUFS
    LRA low:   -21.2 LUFS
    LRA high:  -17.1 LUFS

  True peak:
    Peak:       -5.4 dBFS

Con ffmpeg e loudnorm in modalità single-pass, posso applicare un guadagno statico 5.4 dBFS, con un true peak di -1 (Il default è -2), per arrivare, da -18.1 LUFS, a -13.0 LUFS senza distorsioni.

ffmpeg -i audio.m4a -filter:a "loudnorm=I=-12.7:TP=-1.0" -c:a aac -b:a 160k -vn audio_norm.m4a

Verifichiamo:

ffmpeg -hide_banner -i "audio.m4a" -filter:a "ebur128=peak=true" -f null - 
...
   Integrated loudness:
    I:         -12.5 LUFS
    Threshold: -22.6 LUFS

  Loudness range:
    LRA:         4.0 LU
    Threshold: -32.6 LUFS
    LRA low:   -15.1 LUFS
    LRA high:  -11.1 LUFS

  True peak:
    Peak:       -0.4 dBFS
...

Come si vede, sono arrivato al limite, forse un po' troppo, del guadagno che potevo ottenere. Probabimente su dispositivi economici, l'analogico di un brano così potrebbe gracchiare un po'.

Se avessi applicato il default di loudnorm, la sonorità sarebbe stata livellata sui -24 LUFS con una soglia true peak pari a -2 dBFS.

4.2.2. Loudness Normalization dinamica

Nei casi in cui:

  • si vuole enfatizzare l'audio di un podcast, di un parlato in generale;
  • la dinamica del brano è composta da picchi altissimi e una sonorità media molto bassa (un guadagno statico farebbe cambiare poco o nulla)

con ffmpeg e loudnorm possiamo correggere ogni singolo sample del brano per rendere la dinamica più uniforme.

Per ottenere un risultato ottimale, si deve procedere col dual-pass, in cui ffmpeg nel primo passaggio analizza il file e raccoglie i dati, nel secondo passaggio applica le correzioni puntualmente avendo già conoscenza della dinamica e dei picchi presenti nel file.

ffmpeg -i "audio.m4a" -filter:a "loudnorm=I=-14:TP=-1.0:print_format=json" -f null -

Ecco il json risultante dall'analisi. I valori di input sono quelli che forniremo a ffmepg affinché possa impostare il loudness scelto da noi nel miglior modo possibile

{
	"input_i" : "-18.17",
	"input_tp" : "-5.41",
	"input_lra" : "4.20",
	"input_thresh" : "-28.47",
	"output_i" : "-13.36",
	"output_tp" : "-1.00",
	"output_lra" : "4.30",
	"output_thresh" : "-23.50",
	"normalization_type" : "dynamic",
	"target_offset" : "-0.64"
}

Configurazione ffmpeg.

ffmpeg -i "audio.m4a" -filter:a "loudnorm=I=-14:TP=-1.0:measured_I=-18.17:measured_TP=-5.41:measured_LRA=4.20:measured_thresh=-23.50:linear=true" -c:a aac -b:a 160k -vn "audio_norm.m4a"

Il compressore/limiter del filtro loudnorm è abbastanza intelligente da schiacciare i picchi affinche il guadagno di volume non produca clipping e alzerà le parti più “deboli”, livellando il suono e alterando la dinamica.

4.2.3. Loudness Normalization statica (rsgain)

Rsgain permette di applicare un guadagno statico loseless, senza ricodifica, agendo sui metadati del brano con l'applicazione dei tag.

Se da un lato questo metodo ha l'indubbio vantaggio di non alterare fisicamente il file, dall'altro è necessario che il player che eseguirà il brano dovra essere capace di leggere e interpretare i tag. Nel caso precedente, la ricodifica rende il file disponibile per chiunque.

Trattandosi di un guadagno statico, il campo d'applicazione è quello visto per la Peak Normalization, cioè quando si vuole preservare la dinamica del brano, Ma nei casi particolari cui accennavo in precedenza, presenza di picchi altissimi e maggioranza sonorità medie molto basse, anche rsgain non è sufficiente.

Come avevo detto all'inizio, rsgain è una normalizzaziome della sonorità ottenuta agendo sui metadati del brano, applicando dei tag, che così non viene alternato in alcun modo.

Rsgain è l'evoluzione del vecchio mp3gain e come il suo predecessore ha due modalità di lavoro

  • sul singolo brano (detta é custom)
  • su collezioni di brani (detta easy)

La modalità custom è considerato un approccio legacy fatta per intervenire puntualmente sul brano con configurazioni ad-hoc ideali per lo scripting, quella easy, basata su presets, permette di normalizzare intere collezioni di brani che è lo scopo principale di rsgain.

Analisi del file

rsgain custom -t audio.m4a
[✔] Scanning 'audio.m4a'
[✔] Container: QuickTime / MOV [mov,mp4,m4a,3gp,3g2,mj2]
[✔] Stream #0: AAC (Advanced Audio Coding), 44.100 Hz, 2 ch
 100% [====================================================]

Track: audio.m4a
  Loudness:   -18.12 LUFS
  Peak:     0.536630 (-5.41 dB)
  Gain:         0.12 dB

il flag -t individua il true peak

  • Loudness: è la sonorità del brano in LUFS
  • Peak: è il true peak, esprime il guadagno che posso ottenere prima di distorcere
  • Gain: è il guadagno per arrivare allo standard LUFS di rsgain che è -18

Nel nostro caso, Gain ci dice di diminuire di 0.12 LUFS mentre Peak ci dice che potrei aumentare di 5.41 LUFS

Gain

rsgain custom -s i -l -13 -c p audio.m4a
Track: audio.m4a
  Loudness:   -18.12 LUFS
  Peak:     0.534149 (-5.45 dB)
  Gain:         5.12 dB
  • -s i: scrive il tag
  • -l -13: imposta il loudness
  • -c p: protezione clipping

Portando il loudness a -13 è come se avessi aumentato il volume di 5,12 dB mantenendo un cuscinetto di -0.33 dB (differenza fra peak e gain).

Se provassi a spingere di più, il flag -c p impedisce al suono di distorcere.

rsgain custom -s i -l -10 -c p audio.m4a
Track: audio.m4a
  Loudness:   -18.12 LUFS
  Peak:     0.534149 (-5.45 dB)
  Gain:         5.45 dB  (adjusted to prevent clipping)

(adjusted to prevent clipping)” è la conferma che la protezione anti-clipping è entrata in azione.

Se non ci fosse stata:

rsgain custom -s i -l -10 audio.m4a
Track: audio.m4a
  Loudness:   -18.12 LUFS
  Peak:     0.534149 (-5.45 dB)
  Gain:         8.12 dB

La differenza fra peak e gain indica un'evidente distorsione.

Esempio di esecuzione del brano sfruttando il replaygain:

mpv --replaygain=track audio.m4a

Senza il flag --replaygain=track, il brano verrebbe letto normalmente.

Cancellazione del tag Basta cancellare il tag per riportare tutto alla normalità

# verifico la presenza del tag prima
ffprobe -hide_banner -i "audio.m4a" 2>&1 | grep -i "replaygain"
REPLAYGAIN_TRACK_GAIN: 8.12 dB
REPLAYGAIN_TRACK_PEAK: 0.534149
replaygain: track gain - 8.120000, track peak - 0.000012, album gain - unknown, album peak - unknown,

# cancello il tag
rsgain custom -s d audio.m4a

# verifico che il tag non si ci sia più
ffprobe -hide_banner -i "audio.m4a" 2>&1 | grep -i "replaygain"
**

Un altro modo più compatto per verificare la presenza del tag:

ffprobe -i "audio.m4a" -show_entries format_tags=REPLAYGAIN_TRACK_GAIN -v quiet -of csv="p=0"

Se c'è il tag, mostra solo il gain.

Easy mode I flag impostati nella modalità custom nella modalitò easy sono affidati ad un file di configurazione.

Su Gnu/Linux i file di default si trovano in /usr/share/rsgain/presets e sono 4

  • default.ini
  • ebur128.ini
  • loudgain.ini
  • no_album.ini

C'è una sezione globla e delle sezioni specifiche per tipo di file.

L'override di queste configurazioni o la creazione di nuove, si fa in:

~/.config/rsgain/presets

e per la corrispondenza campi – flag custom vi rimando alla documentazione: https://github.com/complexlogic/rsgain?tab=readme-ov-file#scan-presets

Una volta deciso il preset che fa per noi, basta chiamare rsgain su una directory in questo modo:

rsgain easy -s <nome_preset> <path_album>

rsgain farà la scansione e applicherà massivamente le configurazioni che potranno consistere per es.:

  • nell'applicazione di un loudness a tutti i brani per uniformare la sonorità;
  • nella cancellazione di tutti i tag;
  • nell'analisi dei brani;
  • ecc.

Esempio di file di configurazione per una scansione

[Global]
TagMode=s
Album=true
TargetLoudness=-18
ClipMode=p
MaxPeakLevel=-1.0
TruePeak=true
Lowercase=false
ID3v2Version=keep
OpusMode=d
PreserveMtimes=false
DualMono=false

In questo modo rsgain produrrà un'analisi in modalità “album” per tutta la collezione, il gain da applicare all'album e una sintesi sulla media dei valori di picco ottenuti.

rsgain easy -p scan <path_album> 
...
Track: <path_album>/track_1
  Loudness:   -17.80 LUFS
  Peak:     0.743221 (-2.58 dB)
  Gain:        -0.20 dB


Track: <path_album>/track_2
  Loudness:   -17.81 LUFS
  Peak:     0.790007 (-2.05 dB)
  Gain:        -0.19 dB


Track: <path_album>/track_3
  Loudness:   -17.47 LUFS
  Peak:     0.834655 (-1.57 dB)
  Gain:        -0.53 dB

...

Album:
  Loudness:   -16.51 LUFS
  Peak:     0.991804 (-0.07 dB)
  Gain:        -1.49 dB


Scanning Complete
Time Elapsed:      00:00:27
Files Scanned:     18
Clip Adjustments:  0 (0.0% of files)
Average Loudness:  -16.61 LUFS
Average Gain:      -1.39 dB
Average Peak:      0.823503 (-1.69 dB)
Negative Gains:    16 (88.9% of files)
Positive Gains:    2 (11.1% of files)

L'ultima sezione, “Album”, mi dà le informazioni sul guadagno da applicare, in questo caso poco o nulla perché sono brani già normalizzati,.

Con un altro presets, ad es. myGain.ini, posso normalizzare tutto l'album in colpo solo.

rsgain easy -p myGain <path_album>

In altre parole, tutto ciò che la modalità custom affida allo scripting, ora viene automatizzata dalla modalità easy.

Riferimenti:

#ffmpeg #rsgain #loudness #loudnorm

 
Continua...

from Magia

📒Dal mio diario... Un giorno qualunque!

Mi sono chiesta come stavo e la mia risposta è stata, alla grande, ormai cerco di rispondermi così, su consiglio del mio migliore amico! Spesso è più semplice voltare pagina che spiegare la tempesta che si sta affrontando, anche se a tratti... Mi ripeto che nonostante tutto non sta succedendo nulla di strano, le tempeste sono normali e il sole prima o poi torna a splendere. Tradurre uno stato d'animo o raccontare le fasi di una tempesta, oltre a non essere semplice, può anche renderla più reale e farci apparire più fragili e vulnerabili nella nostra solitudine! Quindi il silenzio è più comodo della verità e ci mette nella condizione di ritrovarci e riorganizzare noi stessi nella modalità che più ci rende stabili, perché fingere che tutto va bene invece di spiegare, può farci riflettere su come spesso siamo noi a non volerci mettere in discussione e motivarci per stare meglio! Non credo che imparerò mai a fingere, ad apparire o ad essere chi non sono, anzi quando lo faccio, lo faccio pure male, però a volte vorrei dimenticare come si fa ad essere così maledettamente trasparenti e sinceri... illudendomi così di riuscire a mimetizzarmi con qualsiasi cosa faccia solo stare bene!✨

DSCN7848-1.jpg

 
Continua...

from CASERTA24ORE.IT dal 1999 on line

Spazio Autori, Gianluca Parisi: tra giornalismo d’inchiesta e narrativa storica nel panorama culturale campano

Gianluca Parisi è un autore attivo nella provincia di Caserta, dove ha sviluppato a partire dalla fine degli anni '90 un percorso intellettuale caratterizzato da un costante dialogo tra giornalismo, ricerca storica e scrittura narrativa. Attraverso i suoi racconti pubblicati nei blog e raccolti nel libro “E morirono tutti felici e contenti” con lo pseudonimo Russo Gianluca, ha svolto nel corso degli anni un ruolo centrale nella costruzione di una memoria locale attraverso la documentazione e la rappresentazione delle dinamiche sociali, culturali e ambientali del territorio.

Ha diretto la collana editoriale Il Mezzogiorno, dedicata a figure storiche e culturali del territorio campano, ha curato un inserto domenicale multilingue per la comunità immigrata sul Giornale di Caserta, anticipando tematiche di inclusione e mediazione culturale. Ha collaborato con numerose testate locali e online, tra cui Caserta24ore, da lui fondata nel 1999, occupandosi prevalentemente di cronaca, approfondimenti sociopolitici e analisi del contesto regionale.

Sebbene non sia un nome di notorietà nazionale mainstream, è autore di diversi libri, in particolare nel campo della narrativa storica e del giallo ambientato al Sud Italia, dove unisce il rigore del giornalismo alla forza evocativa della scrittura letteraria. Alcune delle sue opere esplorano vicende legate alla memoria storica e alle contraddizioni della società contemporanea nel Sud Italia, attraverso le quali ha raccontato luci e ombre del territorio casertano.

Tra le sue opere più significative in vendita sulle piattaforme (Lulu.com) e (Amazon)

Il brigante Repubblicano (2012) è un romanzo storico che si colloca al crocevia tra inchiesta giornalistica, memoria collettiva e narrazione romanzesca. L’opera rappresenta un esempio emblematico della sua doppia vocazione, cronista e narratore. Offre una riflessione critica sulle dinamiche di potere e resistenza nel contesto storico del Sud durante il periodo dell’Unità d’Italia.

Redazione Chiocciola (2009) è un’opera di carattere documentario-narrativo che ricostruisce gli eventi della rivendicazione via email dell’omicidio di Marco Biagi nel marzo del 2002 da parte delle Nuove Brigate Rosse, e che lo videro protagonista. È una rappresentazione ironica ma accurata del sistema mediatico dell’epoca. Da giornalista diede notizia del comunicato di rivendicazione prima di tutte le testate italiane. Il cambiamento di modalità comunicative dell’epoca fu citato nel manuale universitario “New journalism. Teorie e tecniche del giornalismo multimediale” edito da Mondadori, nel 2008 con ristampa nel 2013.

E morirono tutti felici e contenti (2025) è una raccolta di novelle antiche e racconti moderni. Spazia dal tema dell'amore della regina Didone nell'Eneide, al dubbio di Masuccio Salernitano autore di Mariotto e Ganozza, precursori di Romeo e Giulietta con la domanda finale al lettore: “È più grande l'amore dell'uomo o della donna?”, fino a racconti dei nostri tempi sul tema dell'amore, della corruzione, dell'immigrazione e dell'attualità. Tutti i racconti sono scritti in chiave universale e interculturale, riflettendo una sensibilità letteraria attenta alla tradizione e al dialogo tra epoche. (Amazon)

La vita di strada. E' un romanzo storico ambientato alla fine degli anni ’90 che affronta il tema della tratta di esseri umani, con particolare attenzione alle donne vittime di sfruttamento sessuale. L’opera, ispirata a storie reali, si configura come un’indagine sociologica e narrativa sulla marginalità, l’emarginazione e il desiderio di riscatto, con una forte componente emotiva e una struttura narrativa incentrata sulla voce della protagonista. È dedicato ad Alma Seidjni, vittima della tratta, scomparsa suicida a Roma nel 2021 all’età di 47 anni a testimonianza di come gli abusi subiti segnino indelebilmente la vita di chi li patisce. (Amazon)

L’educatore nei convitti scolastici (2024) è un manuale professionale che affronta, con rigore metodologico, il ruolo dell’educatore scolastico nel sistema della pubblica istruzione italiana, offrendo una prospettiva teorica e operativa su una figura professionale poco conosciuta.

Sui social è presente sulla piattaforma https://flipboard.social/@reporter

Scrivigli

 
Continua...