noblogo.org

Reader

Leggi gli ultimi post dagli utenti di noblogo.org.

from Geocriminalità e Cooperazione Internazionale di Polizia

Restituiti al Museo Nazionale di Sibari 46 manufatti etruschi, greci e romani, recuperati anche all'estero

parte dei reperti restituiti al patrimonio culturale nazionale

Recentemente a Cosenza, nella Sala Leone di Palazzo Arnone, i #Carabinieri Tutela Patrimonio Culturale hanno consegnato al Direttore dei Parchi Archeologici di Crotone e Sibari 46 reperti archeologici recuperati in Italia e in Francia nel corso delle attività svolte nell’indagine denominata “ACHEI”, con il coordinamento della Procura della Repubblica di Crotone.

Gli straordinari reperti archeologici restituiti, di importante valore storico-culturale ed economico, sono stati rintracciati nel contesto di una complessa attività d’indagine svolta dai Carabinieri del Nucleo TPC di Cosenza che ha acclarato l’esistenza di un vasto traffico su scala nazionale e internazionale – con ramificazioni in Gran Bretagna, Francia, Germania e Serbia – di reperti archeologici scavati clandestinamente sul territorio italiano.

Tra i beni consegnati figurano anche reperti sequestrati in Francia e rimpatriati lo scorso 16 ottobre su provvedimento dell’Autorità Giudiziaria francese, che ne ha disposto la loro consegna allo Stato Italiano.

Le indagini hanno permesso di ricostruire i sistematici saccheggi operati da squadre di tombaroli che, con una articolata suddivisione di competenze e ruoli, garantivano al mercato clandestino un flusso continuo di preziosi beni archeologici, venduti in articolati e complessi canali di ricettazione in Italia e all’estero.

L’operazione si è conclusa con l’emissione di un’ordinanza di applicazione di misure cautelari da parte del GIP del Tribunale di Crotone, su richiesta della locale Procura che ha coordinato le indagini, nei confronti di 23 persone ritenute responsabili, a vario titolo, di far parte di un’associazione per delinquere finalizzata alla commissione dei reati di danneggiamento del patrimonio archeologico dello Stato, impossessamento illecito di beni culturali appartenenti allo Stato, ricettazione ed esportazione illecita, nonché l’esecuzione di 80 decreti di perquisizione nei confronti di altrettanti soggetti, indagati in stato di libertà.

#tutelapatrimonioculturale

 
Continua...

from Transit

(219)

(G1)

Premessa. Celebrare il #25Aprile, come fa con questo bel post l’amico @piedea.bsky.social, è una cosa che dovrebbe essere normale, se vista nella giusta prospettiva. Con questo racconto mi piace l’idea di esaltare la ricorrenza per quello che dovrebbe essere: un giorno del popolo e per il popolo, per chi crede nella memoria della lotta di liberazione dal nazifascismo, non per coloro che vogliono equiparare tutto e tutti in nome di una “normalizzazione” che è solo propaganda per un regime abbietto. Le righe che leggerete sono colme di un sentimento che mi appartiene e che così bene è stato espresso dal mio amico. Lo ringrazio anche per aver saputo, meglio di me, intercettare il senso profondo del #25Aprile, che a tutti noi ricorda il valore imprescindibile della difesa della democrazia e della libertà. Tutti i giorni. Ovunque. Per sempre.

Ogni anno, all'approssimarsi del venticinque Aprile, salta fuori qualcuno che tenta di trasformare la “Festa della Liberazione” dal nazi-fascismo in una blanda commemorazione delle vittime di entrambi gli schieramenti, relegando a un ormai lontano passato oscuro, da nascondere e purtroppo già in buona parte dimenticato, la parte vitale, fondante e portante della nostra democrazia.

Rendere labile il confine tra chi è caduto cercando di riscattare l'onore di un Paese dopo vent'anni di dittatura e chi nella Libertà e nei valori democratici non ha mai creduto, significa rendere meno forti quei valori, anestetizzare le persone affinché non riconoscano negli odierni comportamenti illiberali le stesse radici, mai estirpate, di quelli passati.

È un'operazione tanto subdola quanto semplice, tanto che anche qualcuno “di sinistra” ha ceduto a volte alla tentazione di equiparare le vittime in quanto cadute per degli ideali, anche se opposti. No: una cosa è l'umana pietà (che i fasci comunque non avevano) per la persona, un'altra è il giudizio storico, politico, civile, umano, che distingue in due posizioni antitetiche chi lottava per la Libertà e chi contro di essa.

La linea di demarcazione è e deve essere netta: niente sconti, nessuno spazio ad ammorbidimenti o “dimenticanze”. Già troppo si è perso della spinta liberatrice primigenia, prova ne sia l'attuale classe dirigente e il sostegno di cui gode. A ricordarmi di questa netta divisione non sono le storie partigiane, che pure qui sulle Apuane non mancano, nemmeno il discorso di Calamandrei, riportato sull'obelisco delle Fosse del Frigido, e neppure i periodi bui della nostra Repubblica, fra tentativi di golpe, bombe sui treni e alle stazioni e logge massoniche: a ricordarmi lo spartiacque invalicabile è Macchiarino (Machjarino), un cane.

Con i bombardamenti e le cannonate americane, la piana e la città di Massa non erano sicure e la popolazione cercò riparo sulle colline circostanti. Nell'estate del '44 fu implementata dai tedeschi la Linea Gotica, che iniziava dalle Apuane fino all'Adriatico. Ampie fasce pedemontane furono minate. Canfin (Petrolio), così detto per i capelli e i baffoni neri e unti, aveva dei terreni dove ora abito io e tutte le mattine, prima dell'alba, si metteva in cammino scendendo dal rifugio montano, e cercava di strappare qualcosa alla terra per poter sfamare alla sera la famiglia sfollata. A far da guida a lui e altri era il suo cane Machjarino, che, non si sa come, aveva trovato un passaggio sicuro fra le mine. Forno, Vinca, Bergiola Foscalina, San Terenzo, Castelpoggio... sono solo alcune delle stragi nazifasciste compiute in queste zone.

(G2)

Molti borghi all'epoca erano raggiungibili solo con mulattiere o sentieri e solo gente del posto, gente in camicia nera (spesso coperta con uniformi della Wehrmacht) poteva guidare i tedeschi, svolgere ruolo di copertura e, a volte, partecipare attivamente alle stragi. A Sant'Anna di Stazzema, 560 vittime, fino a pochi anni fa i sopravvissuti vi avrebbero detto che mentre un organetto suonava tra una raffica e l'altra, molti soldati tedeschi parlavano in dialetto carrarino e spezzino.

Anche loro erano giovani che combattevano e spesso morivano per un ideale e quindi il 25 Aprile andrebbero commemorati assieme alle vittime civili e partigiane, per chiudere una questione ormai superata: questo ci tiene a farci sapere il nostro presidente del Senato.

No, cari La Russa e accoliti: non tutti gli ideali sono uguali, come non lo sono le vittime. E nemmeno le guide.

A guerra finita, dopo lo sminamento, Machjarino saltò su una mina perduta, ma sopravvisse. Viva Machjarino!

#Blog #25Aprile #FestaDellaLiberazione #Antifascismo #Italia #Repubblica #Racconti

 
Continua...

from differxdiario

cosa faccio per campare.

chi (online o di persona a Roma e specialmente a Monteverde/Trastevere) avesse bisogno di editing, revisioni, lezioni & much more, sappia che (non ora ma da maggio) può contare su queste cose: https://slowforward.net/servizi/

contatti esclusivamente attraverso il modulo https://slowforward.net/contact/

#laboratori #scrittura #lettura #riscontro #valutazione #lezioni #asemic #asemicwriting #scritturacontemporanea #letteraturaitaliana

 
Continua...

from norise 3 letture AI

ALZHEIMER

i suoi giorni come un vortice di foglie a dilatare deliri gioca con le ombre sui muri vuole afferrare la biancaluna incorniciata nella finestra

alle prime luci riaffiora un barlume di quell'io bifronte che ha perso la strada di casa

.

Lettura e reazione

Il testo è intenso e delicato: immagini chiare (vortice di foglie, ombre sui muri, la biancaluna) rendono visibile la perdita e la frammentazione dell’identità. La voce poetica è empatica, non clinica, e mantiene una giusta misura di malinconia senza scadere nel pietismo.

Piccoli suggerimenti di stile

  • Consolidare alcune immagini per aumentare la densità emotiva: ad esempio “vortice di foglie” e “dilatare deliri” funzionano bene insieme, ma puoi rendere la transizione più fluida con un verbo che le colleghi.
  • Valuta la punteggiatura: una virgola o un punto dopo “gioca” può cambiare il ritmo e l’enfasi.
  • Sostituire “biancaluna” con “luna bianca” o mantenere il neologismo a seconda dell’effetto che vuoi—“biancaluna” è suggestivo e personale.

Versione rivista (due opzioni)

Opzione A — minima correzione

i suoi giorni
come un vortice di foglie
a dilatare deliri
gioca,
con le ombre sui muri
vuole afferrare
la luna bianca
incorniciata nella finestra

alle prime luci riaffiora
un barlume
di quell’io bifronte
che ha perso la strada di casa

Opzione B — più lirica

i suoi giorni
vorticano foglie: dilatano deliri.
gioca con ombre sui muri,
cerca la biancaluna
che incornicia la finestra.

alle prime luci riaffiora
un barlume — l’io bifronte —
smarrito, senza mappa,
che non riconosce più la strada di casa

Come usare queste proposte

  • Se preferisci mantenere un tono più realistico, usa l’Opzione A.
  • Se vuoi accentuare la musicalità e l’evocazione, adotta l’Opzione B.
  • Puoi mescolare versi o parole dalle due versioni per trovare la tua forma ideale.
 
Read more...

from norise 3 letture AI

ALZHEIMER

i suoi giorni come un vortice di foglie a dilatare deliri gioca con le ombre sui muri vuole afferrare la biancaluna incorniciata nella finestra

alle prime luci riaffiora un barlume di quell'io bifronte che ha perso la strada di casa

.

Lettura e reazione

Il testo è intenso e delicato: immagini chiare (vortice di foglie, ombre sui muri, la biancaluna) rendono visibile la perdita e la frammentazione dell’identità. La voce poetica è empatica, non clinica, e mantiene una giusta misura di malinconia senza scadere nel pietismo.

Piccoli suggerimenti di stile

  • Consolidare alcune immagini per aumentare la densità emotiva: ad esempio “vortice di foglie” e “dilatare deliri” funzionano bene insieme, ma puoi rendere la transizione più fluida con un verbo che le colleghi.
  • Valuta la punteggiatura: una virgola o un punto dopo “gioca” può cambiare il ritmo e l’enfasi.
  • Sostituire “biancaluna” con “luna bianca” o mantenere il neologismo a seconda dell’effetto che vuoi—“biancaluna” è suggestivo e personale.

Versione rivista (due opzioni)

Opzione A — minima correzione

i suoi giorni
come un vortice di foglie
a dilatare deliri
gioca,
con le ombre sui muri
vuole afferrare
la luna bianca
incorniciata nella finestra

alle prime luci riaffiora
un barlume
di quell’io bifronte
che ha perso la strada di casa

Opzione B — più lirica

i suoi giorni
vorticano foglie: dilatano deliri.
gioca con ombre sui muri,
cerca la biancaluna
che incornicia la finestra.

alle prime luci riaffiora
un barlume — l’io bifronte —
smarrito, senza mappa,
che non riconosce più la strada di casa

Come usare queste proposte

  • Se preferisci mantenere un tono più realistico, usa l’Opzione A.
  • Se vuoi accentuare la musicalità e l’evocazione, adotta l’Opzione B.
  • Puoi mescolare versi o parole dalle due versioni per trovare la tua forma ideale.
 
Read more...

from Diario

Tutto molto poco zen. Questa sera un po' di tastiera meccanica. Sentire un i tasti. Incenso indiano acceso, tazzina con il vino di riso cinese caldo. I cari vecchi tempi. Una stanza tutta per me. Devo averlo letto. Ma una cosa veloce che poi devo correggere i compiti. Camminavo questa sera e pensavo, avevo iniziato a sentire della musica con le cuffie ossee ma niente. Ho dovuto spegnerle. La solita iperacusia. Anche sulle cuffie ossee ci posso mettere una pietra sopra. Il mio sistema nervoso percepisce il fatto che io cerchi di rilassarmi interpretando la musica in cuffia come una minaccia. Un pericolo. Attento, dice il mio sistema nervoso centrale, venerandi vuole rilassarsi! Contraiamo l'interno delle orecchie, trasformiamo la musica in suoni, in frequenze, facciamo sentire ogni cosa come un pericoloso dolore immateriale che inizi a fagli male, dentro la testa. Feriamolo, graffiamogli le pareti di carne che non esistono.

Grazie, sistema nervoso centrale, grazie, se non ci fossi tu non so come farei.

Via le cuffie ossee ho iniziato a pensare, al fatto che avevo voglia di scrivere con la tastiera meccanica, camminavo e pensavo, affrettavo il passo, cercavo cose da fotografare. Posti in cui fare dei brevi video. Tutto è un possibile contenuto.

Cioé mi rendo conto di questa cosa, che io vado, mi metto lì a scrivere, faccio il mio post, cerco di mettere al meglio le cose che penso, faccio la mia cosa nella casa, e poi mi prendo i miei dieci, venti, cinquanta like, i commenti di gente che sputa polmoni, che dice anche io venerandi ho vissuto esattamente le cose che hai vissuto tu, insomma ricevo la mia breve fucilata di gratificazioni. Endorfina, credo. E poi vedo che la cosa che ho scritto scorre via, il giorno dopo è già affondata per metà nelle melma del digitale, dopo due o tre giorni mi rendo conto di essere stato truffato, che mi sono autosabotato. Il mio post è là, lontano, mi dà letteralmente fastidio che esista ancora, se lo riprendo in mano ne vedo i refusi, le parole ripetute, ma soprattutto vedo che qualcuno – non io – sta guadagnando sopra questa cosa che scrivo; e ricevo gratificazioni che a mia volta do a qualcun altro. Il vino di riso cinese è diventato freddo.

Relitti. Mi lascio dietro relitti di cui non conosco nemmeno il numero, centinaia. Migliaia. Prime bozze che non avranno mai una seconda stesura. E questo materiale che secerno, non cambia di una virgola i miei prodotti, le cose che ho finito, i miei romanzi, i miei videogame, i miei album di suoni, è come se fossi una molteplicità di me stesso che fanno cose diverse e nessuna comunica con le altre. Non posso nemmeno nascondermi dietro la scusa di star facendo della promozione. Non la sto facendo. In realtà quello che scrivo non è nemmeno un prodotto; il prodotto sono io che scrivo. Il prodotto è avere la scimmia venerandi che scrive i suoi post su facebook per i suoi cinquanta like e poi resta lì a fare quello che fanno in genere le scimmie dopo aver vinto il pulitzer delle scimmie: si abbruttiscono, con grazia e animalità.

Camminando avevo ricamato su questa cosa: il bello della scrittura è che scrivi le peggio cose, scavi come una di quelle bestie che ci vivono in faccia, vai nei meandri della carne e tiri fuori tutte le brutture che hai dentro e più scavi, più una parte di te si entusiasma perché questa melma che tiri fuori, la stai scrivendo; più marcisci più la tua scrittura diventa vera. Autentica. Wow. Più stai male più una parte di te ne gode perché su questa sofferenza la scrittura imbastisce il reticolo della scrittura più necessaria. Mi viene da ridere. “Necessaria”, certo. Raccontiamocela.

Ho sempre pensato di essere bravo a scrivere, ma non bravo normale, bravo bravo. Poi ho scoperto che di gente brava brava a scrivere ce ne è più del necessario. Non era una cosa così eccezionale essere bravo a scrivere. Questo forse l'ho già scritto. Ma era troppo tardi: ormai pensavo per iscritto, ormai la cosa che scrivevo era tutt'uno con la cosa che pensavo. Ormai quella roba che producevo era “naturale”.

C'è poi questa cosa di me, la nausea. Quando faccio qualcosa che sono bravo a fare, mettiamo scrivere, e qualcuno dice che sono bravo a scrivere, mettiamo una recensione, una recensione positiva per qualcosa che ho fatto, io inizio a leggerla e prima sono contento, ma già a metà ecco che arriva la nausea. Comincio a innervosirmi. Cosa stai a dire che sono bravo a scrivere. Lo so già. Magari scrivo della roba orrenda, ma la capacità di scrivere non mi manca, fidati. Non è il caso di rimarcarlo.

Provo allora più soddisfazione a fare cose che non dovrei fare. Le cose che mi costano grande fatica e nelle quali i risultati sono pochi, scarsi. Imbarazzanti. Quelle mi danno soddisfazione. Mi sembra di operare un furto, di fare una beffa. Fin da piccolo, le cose che ho fatto e che si capiva che no, non era la strada per me, quando non erano umilianti, mi hanno sempre divertito.

Giocare a tennis, fare il portiere in una squadra di calcio, ballare il ballo liscio, far kung fu tradizionale, suonare il basso, andare in kajak. Ogni volta che ottenevo e che ottengo ancora oggi un mediocre risultato, rido. Letteralmente. Un furto. E la lista si allunga e a un certo punto arriva il momento del pudore, dove anche io mi fermo a trascrivere, quello in cui l'elenco delle cose che non avrei dovuto fare sterza e va a infilarsi nella lista delle cose per cui – dicono – ho un talento, piccolo o brillante che sia. E le due liste iniziano a incrociarsi e amalgamarsi e io resto lì impietrito perché non so più dove finisca la prima e dove inizi la seconda. Non so più se questa cosa che sto facendo mettendoci il cuore sia in realtà una buffonata che avevo provato così per vedere che succedeva, sicuro che appena che se ne fossero accorti sarei saltato giù e sarei scappato mostrando i denti da scimmia e la schiena curva e pelosa.

 
Continua...

from Diario

L'altro giorno era il decennale della morte di Prince e a un certo punto passeggiando fantasticavo e mi vedevo in questa linea temporale in cui mi ritrovavo di nuovo nel 2016 e spendevo tutti i miei soldi per andare a Minneapolis e avvertire Prince che sarebbe morto di lì a poco. Se pensate che queste fantasie siano cringe, dovreste vedere le altre. Nel senso, penso cose molto più intelligenti di questa, ma anche altre assai più bestiali e ho bisogno di entrambe, fanno parte della normale dieta della masticazione mentale, tanto restano tutte nella mia testa e voi non saprete mai che le ho pensate no?

Anyway, in questa fantasticheria riesco, per un minuto, a restare con Prince e devo rapidamente metterlo in guardia che morirà male, cerco di spiegarli che vengo dal futuro e lui mi chiede, ok, cosa succederà dopo la mia morte? e io gli dico beh, molti saranno tristi, molti, ma non avremm molto tempo per pensarci perché ci sarà una pandemia, tutto il mondo colpito da un virus mortale e resteremo tutti chiusi in casa, in lockdown, a questo punto, nella mia fantasia Prince alza un braccio per chiamare il servizio di sicurezza e io gli dico, no, aspetta, poi subito dopo arriverà l'intelligenza artificiale, i computer inizieranno a creare contenuti indistinguibili da noi umani e parleranno con noi alla pari, emulando il nostro modo di ragionare e ci sarà un panico generale per la paura di queste intelligenze artificiali che

Niente, a questo punto il servizio d'ordine mi caccerà da Paisley Park e io avrò fallito e speso male tutti i miei soldi.

La cosa interessante era per me considerare come in questi ultimi dieci anni abbiamo vissuto situazioni da manuale di Enciclopedia della Fantascienza, lo rimettevo in scatola qualche giorno fa, gli ultimi dieci anni sono stati la realizzazione di diverse distopie della sci-fi classica, il terrore dell'intelligenza artificiale che sostituisce le nostre mansioni, l'arroganza di villain che scatenano conflitti transnazionali, virus pandemici che ci spingono alla paranoia e a restrizioni della libertà personale, regimi polizieschi e morti invisibili.

Questa che era la base torta della fantascienza è diventata l'adolescenza reale di tanti dei nostri figli e di tanti dei nostri studenti. Gli adulti sembrano non fare caso alla sovrastruttura culturale, alla rimodulazione della speranza che stiamo presentando alle nuove generazioni.

Una massa di schizofrenici – gli adulti – che crede e non crede alla scienza, che bullizza l'ignoranza, azzanna e vomita la complessità, adora il prodotto del capitale e fa anarchismo con le pantofole, seduta con il cellulare sulla tazza del cesso, postando shitstorm contro questa o quella etnia, bevendo nafta e nascondendo litio nelle pieghe del divano. E vivendo, il più delle volte male, in posizioni di rendita ottenute per puro invecchiamento o – i più allegri e sani – per linea dinastica di sangue. Predicando, ovviamente, la santità del merito. Questa la generazione degli adulti, quello che li differenzia è la programmazione Netflix o gli abbonamenti alle dirette streaming di calcio. Verrebbe da pensare che gli adolescenti siano perennemente con la testa sul cellulare per non alzarla mai e non vedere la pena della società allestita per loro da questi sanguinari morti di sonno.

Ho questo ricordo di me ragazzino, ero a casa con mia madre e non so perché il discorso era caduto sui lavori che lei faceva da giovane, e mi raccontava di quando lavorava in un negozio di frutta e verdura dove faceva la commessa, e una delle cose che doveva fare ogni giorno era lucidare le mele. “Lucidare le mele in che senso?” avevo chiesto ridacchiando, lucidare le mele è qualcosa che mi faceva ridere. Mia madre si era fatta seria e aveva detto che la gente, se vede le mele brutte, pensa che siano cattive. Le vuole belle. 'Kalos kai agazos', avrò pensato io.

E per farmi capire il concetto mi aveva detto “Fabrizio, passami una di quelle mele”. Nel cestino di casa c'erano delle mele, bruttarelle. Ne avevo passata una a mia madre che si era messa lì con la picagetta a strofinarla, a lucidarla come diceva lei e alla fine me l'aveva mostrata. Ero rimasto interdetto: la mela lucidata aveva cambiato completamente aspetto, davanti ai miei occhi. Se prima era una mela standard, opaca, grigetta dopo si era trasformata nella tipica mela disney, brillante e rubicozza. Rubicozza temo non esista, ma avete capito. Rubizza, dice internet. Come la gota dei vecchi quando bevono troppo vino o sentono l'approssimarsi della morte.

“Cavolo” avevo detto. “È prodigioso” avevo aggiunto prendendo in mano la mela e osservandola. “Ma è una truffa!” avevo concluso fissando mia madre negli occhi. Lei aveva alzato le spalle. “La gente vuole la roba bella, le mele le vuole lucide. Se sono lucide pensa che sono buone. E così io passavo la prima ora al mattino a lucidare le mele. Scintillavano alla fine”. Resto così, nel ricordo, con la mela in mano, finta, disneyana, indeciso se morderla o meno.

 
Continua...

from Diario

Oggi ho buttato un altro centinaio di libri. Grandi classici. In mezzo c'era anche una copia di Uno, nessuno, centomila. L'ho aperto prima di buttarlo nel sacchetto e sono rimasto affascinato: il libro era tutto forato. Un qualche insetto doveva essere entrato nel libro e – nel corso degli anni – aveva scavato dei tunnel che – a volte attraversavano la pagina – a volte persistevano nelle pagine seguenti. Era una sorta di labirinto nel labirinto dei segni e quei fori, inumani, rendevano il libro un oggetto materiale, gli davano vita.

In mezzo, mentre lo sfogliavo, ho trovato delle mie sottolineature al testo. Anche quelle verranno buttate via. Le sottolineature erano fatte con matita rosa. Ne ho trovate tre, che riporto qua nel diario:

“Mi folgorò in quel bujo il sole che doveva esserci in quell’orto della badia. che non sapevo dove fosse, ma che certo doveva essere verdissimo;”. La parola sottolineata era solo “verdissimo”.

“Quel cassetto era pieno di sue fotografie. Me ne mostrò tante, di antiche e di recenti. – Tutte morte, – le dissi.“. Qua la frase sottolineata era “tutte morte”.

”– Ma davvero, scusi non le sembra bella, cosí verde, questa coperta di lana?“. Qua la parola sottolineata era “verde”.

Anche le mie sottolineature, di quel Fabrizio che chissà quanto tempo fa le prese, in questa edizione, ora tutta divorata, della Newton Compton, anche questi segni che sono segno di qualcosa che avevo in testa in quel momento e che ora non so che significato potrebbero avere, anche quelle – dicevo – verranno buttate via con il libro dove sono state per decenni, nascoste, senza che mai avessi mai aperto il libro per rivederle. Se non lo avessi sfogliato per caso, quelle sottolineature non sarebbero esistite in un certo senso. Cosa sto buttando via gettando quelle deboli linee rosa, non lo so. Il verdissimo, il verde, il tutte morte.

 
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 Geocriminalità e Cooperazione Internazionale di Polizia

Sud Africa. Traffico di fauna selvatica in aree protette.

Condannati dipendenti corrotti di Parco Nazionale che uccisero un rinoceronte a fini di contrabbando

Una recente sentenza del tribunale di Skukuza, in Sud Africa, riflette le azioni di contrasto in corso contro i crimini contro la fauna selvatica legati all’attività di traffico organizzato all’interno delle aree protette. Tre ex dipendenti del Kruger National Park sono stati condannati per l'uccisione di un rinoceronte e per associazione a delinquere finalizzata a commettere reati legati al contrabbando. La corruzione è un potente facilitatore dei crimini contro la fauna selvatica, permeando ogni fase della catena di approvvigionamento illegale, dal bracconaggio al trasporto, lavorazione, esportazione e vendita.

Dal 2015, le indagini della Wildlife Justice Commission hanno documentato la corruzione come un fattore chiave che sostiene le reti di traffico transnazionale e ostacola un’efficace applicazione della legge. Senza la corruzione, i crimini contro la fauna selvatica di questa portata non sarebbero possibili. Oltre a favorire la criminalità, la corruzione mina la fiducia nelle istituzioni, indebolisce gli sforzi di conservazione, incentiva lo sfruttamento eccessivo e mette in pericolo vite umane.

È quindi essenziale che coloro che sono coinvolti nella facilitazione i crimini contro la fauna selvatica sono ritenuti responsabili. Nel corso di anni di indagini sulla criminalità organizzata transnazionale contro la fauna selvatica, la Wildlife Justice Commission ha documentato la corruzione in tutte le fasi del commercio. Queste prove vengono utilizzate per informare i politici, sostenere la sensibilizzazione e sostenere misure anticorruzione più forti e sanzioni più severe per la corruzione legata ai crimini contro la fauna selvatica a livello nazionale e internazionale.

 
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 Transit

(218)

(SS1)

Il #SudSudan è un paese nato dalla guerra e forse mai uscito davvero dalla sua lunga notte. Dal 2013, quando la rottura tra il presidente Salva Kiir e il suo ex vice Machar fece esplodere una guerra civile aperta, il paese ha vissuto anni di massacri, spostamenti di massa e violenze etniche sistematiche. Centinaia di migliaia di persone sono morte, più di 4 milioni sono state cacciate dalle proprie case e intere generazioni sono cresciute in un clima di paura, incertezza e violazione dei diritti umani e civili.

La firma dell’“Accordo di pace rivitalizzato” nel 2018 aveva acceso una timida speranza, ma non ha mai invertito la direzione di una storia marchiata da divisioni profonde, istituzioni deboli e poteri armati molto più forti delle leggi. Oggi, il Sud Sudan è di nuovo sul ciglio di una crisi violenta, dopo un decennio di transizione fragile che ha lasciato il paese profondamente diviso, povero e cronologicamente vulnerabile a scontri etnici e calcoli politici.

La situazione appare sempre più instabile: l’accordo del 2018 è al collasso, le commissioni di monitoraggio dell’Onu e dell’Unione Africana segnalano violazioni continue dei cessate il fuoco e una capacità di governo che fatica a esercitarsi fuori dalla captale Juba, dove regnano compromessi di facciata più che una vera riconciliazione.

(SS2)

Il dramma del Sud Sudan resta innestato su una complessa trama di rivalità tra gruppi etnici e di contese di potere, con lo stato dell’Upper Nile come epicentro simbolico e materiale delle tensioni. Scontri tra forze governative e gruppi dell’opposizione coinvolgono spesso i civili, provocano spostamenti improvvisi e creano spirali di vendetta che sembrano impossibili da spezzare.

La frattura storica tra la maggioranza “Dinka” e il gruppo “Nuer” continua ad essere il terreno su cui le fazioni si alimentano di sospetto reciproco e di pretese di controllo locale, trasformando ogni negoziato politico in un fragile accordo da baratto.

La paura di una nuova guerra civile generalizzata è concreta. L’Onu e diversi osservatori parlano esplicitamente del rischio di crollo dell’assetto di pace, mentre in alcune zone la violenza continua a regnare: evacuazioni di civili, ordini di ritiro degli operatori umanitari, censura sulle notizie e accesso limitato alle aree critiche. Parallelamente, l’accesso degli aiuti umanitari è sempre più ostacolato, con blocchi, restrizioni e aggressioni che rendono ancora più pesante il fardello sulle comunità già martoriate da violenza, carestie e povertà cronica.

La crisi umanitaria avanza in modo lento ma devastante. Le organizzazioni umanitarie denunciano carenza di medicinali, cibo e servizi di base, assieme a un aumento di violenze contro donne e bambini, in un contesto in cui la stessa missione Onu fatica a garantire protezione minima. La combinazione di instabilità, assenza di istituzioni solide e debolezza economica trasforma la vita quotidiana di milioni di sud sudanesi in una lenta emergenza permanente, ben lontana dalla promessa di un futuro nuovo che il referendum del 2011 aveva suscitato.

E sul fronte internazionale, l’immobilismo è impressionante. Il Sud Sudan è uno dei paesi più poveri e traumatizzati del mondo, ma compare solo di rado nelle prime pagine dei media e ancor più raramente nelle agende politiche dei grandi. Le risoluzioni del Consiglio di Sicurezza si susseguono, ma restano spesso carta straccia; le dichiarazioni di principio non si traducono in pressioni sulle élite locali, né in un sostegno concreto a istituzioni indipendenti, alla giustizia o alla protezione dei diritti umani.

La comunità internazionale è esperta a gestire la crisi, ma sembra incapace di prevenire il disastro quando il prezzo è alto, scomodo e lontano dai propri confini. Sul piano umano, però, il conto è reale, quotidiano, atroce. Dietro ogni cifra di sfollati, ogni report di violenza, ci sono volti, storie, madri costrette a scegliere tra fuggire e restare, tra morire lentamente o rischiare tutto per un filo di speranza.

Mentre il resto del mondo si concentra su altri fronti, il Sud Sudan ricorda, senza urlare, che la pace non è mai un dato di fatto, ma un lavoro infinito contro l’indifferenza, la violenza e la memoria corta.

#Blog #SudSudan #Africa #DirittiUmani #DirittiCivili #Opinioni #PoliticaEstera

 
Continua...

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...