Salta al contenuto principale



Designing an FM Drum Synth from Scratch


How it started: a simple repair job on a Roland drum machine. How it ended: a scratch-built FM drum synth module that’s completely analog, and completely cool.

[Moritz Klein]’s journey down the analog drum machine rabbit hole started with a Roland TR-909, a hybrid drum machine from the mid-80s that combined sampled sounds with analog synthesis. The unit [Moritz] picked up was having trouble with the decay on the kick drum, so he spread out the gloriously detailed schematic and got to work. He breadboarded a few sections of the kick drum circuit to aid troubleshooting, but one thing led to another and he was soon in new territory.

The video below is on the longish side, with the first third or so dedicated to recreating the circuits used to create the 909’s iconic sound, slightly modifying some of them to simplify construction. Like the schematic that started the whole thing, this section of the video is jam-packed with goodness, too much to detail here. But a few of the gems that caught our eye were the voltage-controlled amplifier (VCA) circuit that seems to make appearances in multiple places in the circuit, and the dead-simple wave-shaper circuit, which takes some of the harmonics out of the triangle wave oscillator’s output with just a couple of diodes and some resistors.

Once the 909’s kick and toms section had been breadboarded, [Moritz] turned his attention to adding something Roland hadn’t included: frequency modulation. He did this by adding a second, lower-frequency voltage-controlled oscillator (VCO) and using that to modulate the drum section. That resulted in a weird, metallic sound that can be tuned to imitate anything from a steel drum to a bell. He also added a hi-hat and cymbal section by mixing the square wave outputs on the VCOs through a funky XOR gate made from discrete components and a high-pass filter.

There’s a lot of information packed into this video, and by breaking everything down into small, simple blocks, [Moritz] makes it easy to understand analog synths and the circuits behind them.

youtube.com/embed/Xbl1xwFR3eg?…


hackaday.com/2025/04/17/design…



Inheritance in Python: la chiave per scrivere codice pulito e collaborativo nel Machine Learnin


Molte persone che si avvicinano al machine learning non hanno un forte background in ingegneria del software, e quando devono lavorare su un prodotto reale, il loro codice può risultare disordinato e difficile da gestire. Per questo motivo, raccomando sempre vivamente di imparare a usare le coding best practices, che ti permetteranno di lavorare senza problemi all’interno di un team e di migliorare il livello del progetto su cui stai lavorando. Oggi voglio parlare dell’inheritance di Python e mostrare alcuni semplici esempi di come utilizzarla nel campo del machine learning.

Nello sviluppo software e in altri ambiti dell’informatica, il technical debt (noto anche come design debt o code debt) rappresenta il costo implicito di future rielaborazioni dovuto a una soluzione che privilegia la rapidità rispetto a un design a lungo termine.

Se sei interessato a saperne di più sui design patterns, potresti trovare utili alcuni dei miei articoli precedenti.

Python Inheritance


L’Inheritance non è solo un concetto di Python, ma un concetto generale nell’Object Oriented Programming. Quindi, in questo tutorial, dovremo lavorare con classei e oggetti, che rappresentano un paradigma di sviluppo non molto utilizzato in Python rispetto ad altri linguaggi come Java.

Nell’OOP, possiamo definire una classe generale che rappresenta qualcosa nel mondo, ad esempio una Persona, che definiamo semplicemente con un nome, un cognome e un’età nel seguente modo.

class Person:
def __init__(self, name, surname, age):
self.name = name
self.surname = surname
self.age = age

def __str__(self):
return f"Name: {self.name}, surname: {self.surname}, age: {self.age}"

def grow(self):
self.age +=1

In questa classe, abbiamo definito un semplice costruttore (init). Poi abbiamo definito il method str, che si occuperà di stampare l’oggetto nel modo che desideriamo. Infine, abbiamo il method grow() per rendere la persona di un anno più vecchia.

Ora possiamo instanziare un oggetto e utilizzare questa classe.

person = Person("Marcello", "Politi", 28)
person.grow()
print(person)

# output wiil be
# Name: Marcello, surname: Politi, age: 29

E se volessimo definire un particolare tipo di persona, ad esempio un operaio? Possiamo fare la stessa cosa di prima, ma aggiungiamo un’altra variabile di input per aggiungere il suo stipendio.

class Worker:
def __init__(self, name, surname, age, salary):
self.name = name
self.surname = surname
self.age = age
self.salary = salary

def __str__(self):
return f"Name: {self.name}, surname: {self.surname}, age: {self.age}, salary: {self.salary}"

def grow(self):
self.age +=1

Tutto qui. Ma è questo il modo migliore per implementarlo? Vedete che la maggior parte del codice del lavoratore è uguale a quello della persona, perché un lavoratore è una persona particolare e condivide molte cose in comune con una persona.

Quello che possiamo fare è dire a Python che il lavoratore deve ereditare tutto da Persona, e poi aggiungere manualmente tutte le cose di cui abbiamo bisogno, che una persona generica non ha.

class Worker(Person):
def __init__(self, name, surname, age, salary):
super().__init__(name, surname, age)
self.salary = salary

def __str__(self):
text = super().__str__()
return text + f",salary: {self.salary}"

Nella classe worker, il costruttore richiama il costruttore della classe person sfruttando la parola chiave super() e poi aggiunge anche la variabile salary.

La stessa cosa avviene quando si definisce il metodo str. Utilizziamo lo stesso testo restituito da Person usando la parola chiave super e aggiungiamo il salario quando stampiamo l’oggetto.

Ereditarietà nel Machine Learning


Non ci sono regole su quando usare l’ereditarietà nell’machine learning . Non so a quale progetto stiate lavorando, né come sia il vostro codice. Voglio solo sottolineare il fatto che dovreste adottare un paradigma OOP nel vostro codice. Tuttavia, vediamo alcuni esempi di utilizzo dell’ereditarietà.

Definire un BaseModel


Sviluppiamo una classe di base per il modello di ML, definita da alcune variabili standard. Questa classe avrà un metodo per caricare i dati, uno per addestrare, un altro per valutare e uno per preelaborare i dati. Tuttavia, ogni modello specifico preelaborerà i dati in modo diverso, quindi le sottoclassi che erediteranno il modello di base dovranno riscrivere il metodo di preelaborazione.
Attenzione, il modello BaseMLModel stesso eredita la classe ABC. Questo è un modo per dire a Python che questa classe è una classe astratta e non deve essere usata, ma è solo un modello per costruire sottoclassi.

Lo stesso vale per il metodo preprocess_train_data, che è contrassegnato come @abstactmethod. Ciò significa che le sottoclassi devono reimplementare questo metodo.

Guardate questo video per saperne di più su classi e metodi astratti:

youtube.com/embed/UDmJGvM-OUw?…

from abc import ABC, abstractmethod
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
import numpy as np

class BaseMLModel(ABC):
def __init__(self, test_size=0.2, random_state=42):
self.model = None # This will be set in subclasses
self.test_size = test_size
self.random_state = random_state
self.X_train = None
self.X_test = None
self.y_train = None
self.y_test = None

def load_data(self, X, y):
self.X_train, self.X_test, self.y_train, self.y_test = train_test_split(
X, y, test_size=self.test_size, random_state=self.random_state
)

@abstractmethod
def preprocess_train_data(self):
"""Each model can define custom preprocessing for training data."""
pass

def train(self):
self.X_train, self.y_train = self.preprocess_train_data()
self.model.fit(self.X_train, self.y_train)

def evaluate(self):
predictions = self.model.predict(self.X_test)
return accuracy_score(self.y_test, predictions)

Vediamo ora come ereditare da questa classe. Per prima cosa, possiamo implementare un LogisticRegressionModel. Che avrà il suo algoritmo di preelaborazione.

class LogisticRegressionModel(BaseMLModel):
def __init__(self, **kwargs):
super().__init__()
self.model = LogisticRegression(**kwargs)

def preprocess_train_data(self):
#Standardize features for Logistic Regression
mean = self.X_train.mean(axis=0)
std = self.X_train.std(axis=0)
X_train_scaled = (self.X_train - mean) / std
return X_train_scaled, self.y_train

Poi possiamo definire tutte le sottoclassi che vogliamo. Qui ne definisco una per una Random Forest.

class RandomForestModel(BaseMLModel):
def __init__(self, n_important_features=2, **kwargs):
super().__init__()
self.model = RandomForestClassifier(**kwargs)
self.n_important_features = n_important_features

def preprocess_train_data(self):
#Select top `n_important_features` features based on variance
feature_variances = np.var(self.X_train, axis=0)
top_features_indices = np.argsort(feature_variances)[-self.n_important_features:]
X_train_selected = self.X_train[:, top_features_indices]
return X_train_selected, self.y_train

Ora usiamo tutto nella funzione main.

if __name__ == "__main__":
# Load dataset
data = load_iris()
X, y = data.data, data.target

# Logistic Regression
log_reg_model = LogisticRegressionModel(max_iter=200)
log_reg_model.load_data(X, y)
log_reg_model.train()
print(f"Logistic Regression Accuracy: {log_reg_model.evaluate()}")

# Random Forest
rf_model = RandomForestModel(n_estimators=100, n_important_features=3)
rf_model.load_data(X, y)
rf_model.train()
print(f"Random Forest Accuracy: {rf_model.evaluate()}")

Conclusioni


Uno dei principali vantaggi dell’ereditarietà di Python nei progetti ML è nella progettazione di codici modulari, mantenibili e scalabili. L’ereditarietà aiuta a evitare codice ridondante, scrivendo la logica comune in una classe base, come BaseMLModel, riducendo quindi la duplicazione del codice. L’inheritance rende anche facile incapsulare comportamenti comuni in una classe base, permettendo alle subclasses di definire dettagli specifici.

Il principale vantaggio, a mio avviso, è che una codebase ben organizzata e orientata agli oggetti consente a più sviluppatori all’interno di un team di lavorare indipendentemente su parti separate. Nel nostro esempio, un ingegnere capo potrebbe definire il modello base, e poi ogni sviluppatore potrebbe concentrarsi su un singolo algoritmo e scrivere la subclass.
Prima di immergerti in design patterns complessi, concentrati sull’utilizzo delle best practices nell’OOP. Farlo ti renderà un programmatore migliore rispetto a molti altri nel campo dell’AI!

L'articolo Inheritance in Python: la chiave per scrivere codice pulito e collaborativo nel Machine Learnin proviene da il blog della sicurezza informatica.



#Libano, fuoco sulla Resistenza


altrenotizie.org/primo-piano/1…


Scuola di Liberalismo 2025: Alberto Mingardi – Luigi Einaudi e il liberalismo per l’uomo comune

@Politica interna, europea e internazionale

Alberto Mingardi è Professore Associato di “Storia delle dottrine politiche” all’Università IULM di Milano e, oltre a ciò, ricopre il ruolo di Presidential Fellow in Political Theory presso la Chapman University e



USA: Google deve adottare un approccio rispettoso dei diritti dopo che il tribunale ha dichiarato monopolista la sua funzione AdTech

Rispondendo alla sentenza di un tribunale statunitense che ha dichiarato illegale il monopolio pubblicitario online di Google, Agnès Callamard, Segretaria generale di Amnesty International, ha dichiarato:

"Una rottura del monopolio di Google nel rispetto dei diritti umani potrebbe essere un primo passo importante verso un mondo online rispettoso dei diritti umani. Erodendo il dominio di una singola azienda e indebolendo il controllo di Google sui nostri dati, si crea uno spazio che deve essere colmato da attori impegnati a tutelare i diritti umani."

amnesty.org/en/latest/news/202…

@Informatica (Italy e non Italy 😁)

reshared this




🏆 #EGMO2025: l’Italia conquista l’oro europeo alla quattordicesima edizione dell’Olimpiade Matematica Femminile.


Il liberalismo europeo e l’idea d’Europa

@Politica interna, europea e internazionale

Una riflessione a partire da Giovanni Malagodi (1904-1991). Di Renata Gravina (ricercatrice FLE). Un ciclo di seminari in modalità webinar, dal 12 al 30 maggio 2025, per gli istituti e le scuole secondarie superiori. Liceo Mangino Pagani (Salerno), Liceo Vanoni Vimercate (Monza-Brianza), Facoltà di Scienze Politiche,



Programma Europa digitale: i primi 4 inviti da 140 milioni di euro, focus su cyber e AI


@Informatica (Italy e non Italy 😁)
Nell’ambito del programma Europa digitale, la Commissione europea invita a presentare proposte al fine di promuovere la diffusione delle tecnologie digitali fondamentali. Ecco i dettagli
L'articolo Programma Europa digitale: i primi 4



ACN: a marzo 28 attacchi ransomware, in calo gli attacchi DDoS


@Informatica (Italy e non Italy 😁)
Secondo i nostri esperti, la flessione complessiva negli attacchi non deve trarre in inganno perché, nonostante il lodevole sforzo dell'ACN, forse non riusciamo a pieno a tracciare l’incidenza delle minacce sulle PMI del Paese, come succede altrove. Ecco i dettagli del rapporto ACN di marzo 2025
L'articolo ACN: a marzo 28



Giovanni Malagodi, il rigore di un liberale

@Politica interna, europea e internazionale

19 maggio 2025, ore 18:00 In diretta sui canali social della Fondazione. Interverranno Giammarco Brenelli Enzo Palumbo Nicola Rossi Modera Andrea Cangini
L'articolo Giovanni Malagodi, il rigore di un liberale proviene da Fondazione Luigi fondazioneluigieinaudi.it/giov…



Musk punta al Golden dome, lo scudo spaziale Usa

@Notizie dall'Italia e dal mondo

Il progetto Golden Dome, l’ambizioso scudo missilistico promosso da Donald Trump, inizia a prendere forma. Secondo quanto riportato da Reuters, SpaceX, l’azienda aerospaziale di Elon Musk, sarebbe in una posizione di vantaggio per assumere un ruolo primario nello sviluppo della componente spaziale del futuro sistema di



Così rubano criptovalute usando smartphone Android contraffatti con un finto WhatsApp


@Informatica (Italy e non Italy 😁)
È stata ribattezzata Shibai la nuova campagna malevola in cui i criminali informatici diffondono smartphone Android contraffatti con una versione di WhatsApp modificata con un trojan e progettata per rubare criptovalute. Ecco tutti i



Nel Mediterraneo i migranti si respingono con droni ed aerei

L'articolo proviene dal blog di @Davide Tommasin ዳቪድ ed è stato ricondiviso sulla comunità Lemmy @Notizie dall'Italia e dal mondo

L’agenzia europea Frontex ha messo in piedi un sistema che taglia fuori le ONG e permette alla Libia e alla Tunisia di ilpost.it/2025/04/17/mediterra…

reshared this



Internal Palantir Slack chats and message boards obtained by 404 Media show the contracting giant is helping find the location of people flagged for deportation, that Palantir is now a “more mature partner to ICE,” and how Palantir is addressing employee concerns with discussion groups on ethics.#News
#News


Gli Usa non abbandoneranno la Nato, ma l’Europa deve fare di più. L’intervento di Cavo Dragone

@Notizie dall'Italia e dal mondo

“Non sappiamo ancora dove il Pendolo della Storia interromperà le sue oscillazioni. Ma è sempre importante ribadire alcuni elementi fattuali per evitare che il proliferare di narrative e strategie di disinformazione ne possano alterare




ma si... mettiamo anche alla banca centrale usa un economista creativo, tipo erdogan... l'ultima cosa usa sana potrebbe saltare a breve... e al diavolo l'indipendenza della banca centrale con l'esecutivo...


i nuovi stati uniti. i talenti non servono. praticamente il modello italiano pluridecennale. ma del resto con un presidente così privo di talenti cosa ci si poteva aspettare? considerando che trump è stato eletto per volontà delle lobby più ricche (anche se votato dalla fasce più povere e ignoranti) io mi chiedo quanto sia stato stupido negli stati uniti pure chi ha soldi e magari ha sfruttato l'intelligenza per farli (non come trump) a votarlo. tutto questo al massimo fa gli interessi russi. trump non è pragmatico: non è proprio niente.


James McMurtry torna con un nuovo album in uscita il prossimo 20 giugno
freezonemagazine.com/news/jame…
Quando suo padre morì nel 2021, James McMurtry frugò tra i suoi effetti personali e scoprì uno schizzo a matita di se stesso da bambino. “Sapevo che era mio, ma non avevo capito chi l’avesse disegnato. Ho dovuto chiedere alla mia matrigna, e lei mi ha detto che assomigliava al lavoro di Ken Kesey negli […]
L'articolo


a chi pensa che trump, anche con le sue incapacità, valesse purché facesse le sue deportazioni di massa di immigrati e cittadini usa dissidenti, prima o arriverà il conto completo dettagliato di quanto è costato agli stati uniti. ed non è detto che a tutto si possa rimediare.


Sudan, inizia il 3° anno di guerra & la più grande crisi umanitaria dimenticata

L'articolo proviene dal blog di @Davide Tommasin ዳቪድ ed è stato ricondiviso sulla comunità Lemmy @Notizie dall'Italia e dal mondo

Sudan, i milioni di persone stanno vivendo e subendo ancora oggi, 27 aprile 2025, la guerra iniziata 2 anni fa, il 15 aprile 2023. Metà del Paese, 25 milioni

reshared this




Tech e Privacy, la I settimana di Aprile newsletter di @Claudia Giulia

Cinque storie che intrecciano IA, giornalismo, medicina, criptovalute e sicurezza: un viaggio nel futuro che è già qui. L’intelligenza artificiale scuote il giornalismo, si insinua nella medicina tra rischi e promesse, si distilla in versioni più agili tra innovazione e guerre di potere, si trasforma in dollari digitali mentre inciampa su Signal rivelando segreti di guerra. Cinque articoli che raccontano un mondo in bilico tra progresso e fragilità.

claudiagiulia.substack.com/p/n…

@Informatica (Italy e non Italy 😁)



Sudan, incendio nel campo profughi di Tunaydbah distrugge rifugi e attività commerciali

L'articolo proviene dal blog di @Davide Tommasin ዳቪድ ed è stato ricondiviso sulla comunità Lemmy @Notizie dall'Italia e dal mondo

Un incendio è scoppiato nel campo profughi di Tunaydbah, nel Sudan orientale, distruggendo decine di rifugi e piccole attività commerciali



la vergognosa "sinistra italiana per israele"


Ed ecco a voi Sinistra per Israele (come già noto prezzolata da Netanyahu)

Cronaca. Ieri in un dibattito in Senato si è riunita la cosiddetta “Sinistra per Israele” con Ivan Scalfarotto (Iv), Lucio Malan e Piero Fassino, Sensi e Delrio, Alfredo Bazoli e Walter Verini, Lia Quartapelle e Marianna Madia, Enza Rando e Antonio Nicita, Simona Malpezzi e Sandra Zampa; Marco Carrai, da sempre vicino a Matteo Renzi, e console onorario di Israele e Raffaella Paita, Luciano Nobili, Silvia Fregolent di IV.
L’iniziativa voleva contrastare la mozione contro Israele di Conte del giorno prima che ha visto anche la partecipazione della Shlein.
Fassino, oltre a ricordare ai presenti con orgoglio che viene definito “il sionista di sinistra”, ha ricordato anche “che va bene dire due popoli due Stati, ma che la soluzione ad ora non è praticabile”, dicendo inoltre che molte delle strutture operative di Hamas sono costruite vicino a luoghi come gli ospedali, e dunque risultano “fatali” le vittime civili. Fatali, ha usato questo termine per giustificare le conseguenze genocidiarie delle bombe israeliane. Per la cronaca - leggo da un articolo di oggi sul FQ- “una donna dal pubblico è pure intervenuta per rivendicare il fatto che l’esercito israeliano “avverte sempre dei suoi obiettivi”. Fassino l’ha rassicurata sulle sue posizioni, la sala ha applaudito”.
Cosa dire? Niente di più, se non che nella sala non aleggiava profumo di Chanel, ma di carne umana bruciata.

(Cosimo Minervini)



KENYA. I residenti occupano piantagioni di tè gestite da stranieri dall’epoca coloniale


@Notizie dall'Italia e dal mondo
Diverse comunità chiedono da tempo giustizia per le terre che furono loro sottratte durante la colonizzazione britannica e rivendicano compensazioni per le occupazioni e gli espropri
L'articolo KENYA. I residenti occupano piantagioni di

reshared this



Detenuto palestinese morto in un carcere israeliano. Oggi la Giornata dei Prigionieri Politici


@Notizie dall'Italia e dal mondo
Con la sua morte, il numero dei palestinesi deceduti nelle carceri israeliane sale a 64 dal 7 ottobre 2023. Sono 10mila i prigionieri politici palestinesi
L'articolo Detenuto palestinese morto in un carcere israeliano.



Massive Blue is helping cops deploy AI-powered social media bots to talk to people they suspect are anything from violent sex criminals all the way to vaguely defined “protesters.”#FOIA #MassiveBlue


Gaza: le Maldive vietano l’ingresso ai turisti israeliani


@Notizie dall'Italia e dal mondo
Le Maldive hanno di nuovo deciso di proibire l'ingresso nel paese dei cittadini israeliani in solidarietà con la popolazione palestinese
L'articolo Gaza: le Maldive vietano l’ingresso ai turisti israeliani proviene da Pagine Esteri.




L’offensiva di Israele non risparmia l’acqua: Gaza ha sete e muore lentamente


@Notizie dall'Italia e dal mondo
I raid aerei, il blocco degli aiuti e i danni subiti dalla rete idrica hanno fatto crollare le possibilità di approvvigionamento. 1.700 km di condutture distrutti o danneggiati: l’85% è inservibile. Tre litri a testa al giorno
L'articolo L’offensiva di



Emiliano Poddi – Le vittorie imperfette
freezonemagazine.com/rubriche/…
La finale di basket tra gli Stati Uniti e l’Unione Sovietica ai Giochi Olimpici di Monaco del 1972 è stata un evento memorabile e controverso. Gli Stati Uniti, che avevano dominato il basket olimpico fino a quel momento, si sono trovati di fronte a una squadra sovietica molto competitiva. La partita è stata caratterizzata da […]
L'articolo Emiliano Poddi – Le vittorie


#Ecuador, miracolo statistico


altrenotizie.org/in-evidenza/1…


L'UE si è impegnata a migliorare la cooperazione in materia di GDPR e l'ha peggiorata Il regolamento procedurale GDPR dell'UE avrebbe dovuto risolvere procedure troppo complesse e migliorare la cooperazione. Ora, invece, potrebbe compromettere l'applicazione delle norme mickey17 April 2025


noyb.eu/it/eu-pledged-improve-…



#introduction


Ciao a tutti. Nuovo qui. Vengo da Facebook, ho fatto un salto su Mastodon, che è molto bello ma non so perché non è nelle mie corde. Forse il limite di caratteri. Boh. Comunque non sono uno proprio da social. Quando avrò qualcosa interessare da dire lo dirò, altrimenti me ne starò zitto. In linea generale sono qui per una questione politica: voglio aiutare a far crescere questi social sani. Condividerò più che altro articoli da terzi siti che avrò trovato interessanti, cercando di condirli con una presentazione o una riflessione, oppure, nei rari casi in cui mi capita di essere illuminato, potrei sprecare qualche decina di righe per esprimere il mio dissenso (o con estrema rarità anche assenso) circa qualche argomento in particolare, scelto totalmente a seconda di come mi gira il vento. Per il resto, su di me, non so che dire, come ho detto, non sono uno da social. Comunque è bello vedere degli italiani su una piattaforma che non sia Facebook eh.
in reply to giorovv

Benvenuto Giorovv e benvenuto tra noi.

Friendica non è facilissimo da usare, ma ci vuole un po' di pazienza per sfruttarlo al meglio. A questo proposito, approfitto per segnalarti questo post riepilogativo:

informapirata.it/2025/02/02/i-…

in reply to giorovv

@giorovv È un piacere vederti qui! Pure io sono in sintesi d'accordo con questa tua presentazione, nemmeno l'avessi scritta io anche se è vero che mi piace scrivere anche cose come un diario online pubblico e accessibile ai più. Se vuoi puoi aggiungermi che almeno posso leggerti facilmente (seppur io sia per te un totale sconosciuto condividiamo ideali positivi) perché alla fine anche io sto cercando di cambiare modalità nella vita seppur tenga insta per conoscere persone (e l'ho rifatto dopo mastodon che ero su livellosegreto ma proprio come te non mi ci sono trovato per lo stesso motivo) ma alla fine non ho li nemmeno 10 follower e non mi importa di un "indice vanità", o come lo denoto io. È stato un piacere scriverti...e speriamo alla prossima! Ciao



Golfo-Israele, l'asse del genocidio


altrenotizie.org/spalla/10652-…



#Trump contro #Harvard, democrazia in gioco


altrenotizie.org/primo-piano/1…