Tag: Mondo spiegoni 🏫

  • Che vuol dire demoscopico

    Che vuol dire demoscopico

    “Demoscopico” è un termine che deriva dal greco antico, dove “demos” significa “popolo” e “skopos” significa “osservare”. In generale, si riferisce a qualcosa che è relativo o appartiene alla demoscopia, ossia lo studio scientifico delle opinioni e dei comportamenti dei gruppi di persone, spesso attraverso indagini, sondaggi e ricerche di mercato.

    Una “giuria demoscopica” è un gruppo di persone selezionate in base a criteri specifici che partecipano a un processo decisionale, come ad esempio la valutazione di prodotti, servizi o opere artistiche, sulla base delle loro opinioni e preferenze. Questa giuria viene utilizzata per rappresentare il punto di vista del “popolo” o dell’opinione pubblica in determinati contesti, ad esempio in competizioni artistiche o programmi televisivi di talento. La sua composizione e il suo ruolo sono generalmente definiti in modo da riflettere una varietà di prospettive e opinioni.

    Giuria demoscopica significato

    La giuria demoscopica del Festival di Sanremo è un elemento chiave nella determinazione dei vincitori delle varie categorie della competizione musicale italiana. Fondata nel 2019, la giuria demoscopica è stata introdotta come una delle modalità di voto insieme alle giurie di qualità e al televoto.

    Ecco come funziona:

    1. Composizione della giuria: La giuria demoscopica è composta da un campione rappresentativo di spettatori italiani, selezionati in base a criteri demografici, come età, genere e regione di provenienza. Questo campione è stato scelto per garantire una rappresentatività della popolazione italiana nel processo di voto.
    2. Ascolto delle canzoni: I membri della giuria demoscopica ascoltano le canzoni in gara durante le serate del Festival di Sanremo, sia durante le prove che durante le esibizioni dal vivo. Questo permette loro di valutare le performance in modo equo e accurato.
    3. Votazione: Dopo aver ascoltato tutte le canzoni in gara, i membri della giuria demoscopica votano per i loro brani preferiti. Il voto avviene attraverso un’apposita piattaforma online o tramite dispositivi elettronici forniti dall’organizzazione del Festival.
    4. Ponderazione dei voti: I voti della giuria demoscopica vengono ponderati insieme ai voti delle giurie di qualità e al televoto, secondo una formula prestabilita dall’organizzazione del Festival. Questo assicura che nessuna modalità di voto abbia un peso eccessivo sul risultato finale.
    5. Determinazione dei vincitori: Alla fine delle serate di gara, i voti della giuria demoscopica vengono sommati insieme agli altri voti per determinare i vincitori delle varie categorie del Festival di Sanremo, come la categoria “Campioni” e la categoria “Nuove Proposte”.

    In questo modo, la giuria demoscopica contribuisce a garantire un processo di voto equo e rappresentativo, consentendo al pubblico italiano di influenzare i risultati del Festival di Sanremo attraverso la propria opinione e preferenza musicale.

    Parlando dell’attuale: il fatto che un artista vinca nonostante non abbia ricevuto la maggioranza dei voti popolari non implica necessariamente un broglio o un comportamento scorretto. È importante considerare tutti i fattori coinvolti nel processo di valutazione e ponderazione dei voti per capire appieno il risultato finale.

    La situazione che hai descritto potrebbe essere il risultato di diversi fattori e non necessariamente indica un broglio o un comportamento irregolare. Vediamo alcuni possibili scenari:

    1. Ponderazione dei voti: In molti contesti, inclusi i concorsi musicali come il Festival di Sanremo, i voti vengono ponderati in base a diversi fattori. Ad esempio, potrebbe essere attribuito un peso maggiore ai voti della critica o delle giurie specializzate rispetto ai voti del pubblico. In questo modo si cerca di bilanciare l’opinione degli esperti con quella del pubblico generale.
    2. Struttura del sistema di voto: A volte il sistema di voto utilizzato potrebbe favorire l’artista che riceve più voti da una particolare categoria di giuria. Se l’artista più votato dalla critica riceve voti alti da parte di tutti i giurati, mentre gli altri artisti ricevono voti più bassi, potrebbe finire per vincere nonostante non abbia ricevuto la maggioranza dei voti popolari.
    3. Strategie di marketing: In alcuni casi, le case discografiche o gli agenti degli artisti possono influenzare la critica o altre giurie specializzate in modo da favorire un determinato artista. Anche se questo non costituisce necessariamente un broglio, potrebbe portare a risultati inaspettati rispetto ai voti del pubblico.
    4. Interpretazione soggettiva dei criteri di valutazione: Le giurie specializzate possono valutare le performance degli artisti in base a criteri soggettivi, come la qualità della composizione, l’interpretazione, la presenza scenica, ecc. Ciò potrebbe portare a risultati diversi rispetto all’opinione del pubblico, che potrebbe essere influenzato da fattori diversi.
  • Gagarin fu davvero il primo uomo nello spazio?

    Gagarin fu davvero il primo uomo nello spazio?

    Ogni libro di storia che parli del secolo scorso riporta una data chiave per l’umanità , il 12 aprile 1962, quando l’Unione Sovietica lanciò la navicella Vostok 1, a bordo della quale sedeva Jurij Gagarin, il primo uomo a navigare nello spazio. Ma, secondo le intercettazioni radio rese pubbliche da due radioamatori torinesi, i fratelli Achille e Giovanni Judica-Cordiglia, le cose sembrerebbero essere andate in maniera diversa.

    L’era della conquista dello spazio.

    Finita la Seconda Guerra Mondiale per il mondo inizia una nuova lunga fase di incertezza e instabilità : la Guerra Fredda. Questo strano conflitto – diplomatico più che militare – non ha mai avuto un campo di battaglia vero e proprio né eserciti che si sono realmente affrontati a viso aperto (almeno tra i due attori protagonisti della stessa, gli USA e l’URSS) ma ebbe un palcoscenico mediatico di dimensioni enormi: lo spazio. Se, infatti, in terra, le due potenze globali si sono sempre guardate bene dall’affrontarsi a viso aperto, limitandosi a schermaglie diplomatiche o poco più, dal punto di vista tecnologico lo scontro fu aspro e combattuto e terminerà  solo con le missioni Apollo degli americani che portarono più volte l’uomo sulla Luna.

    Ma il primo “punto” in questa strana competizione lo misero a segno i sovietici, mandando in orbita il primo satellite artificiale, lo Sputnik 1, poco dopo, “raddoppiarono” inserendo all’interno del satellite Sputnik 2 la cagnetta Laika – primo essere vivente a lasciare l’atmosfera terrestre – e poi, soprattutto, raggiungendo il traguardo di inviare il primo uomo nello spazio, Jurij Gagarin, appunto.

    Foto di Lynn Greyling da PixabayBusto di Jurij Gagarin

    Il primo uomo nello spazio?

    Appena tornato a terra, Gagarin, divenuto eroe nazionale, venne portato in trionfo dalle autorità  sovietiche nelle più grandi città  russe e in giro per il mondo e, l’anno dopo, venne eletto Deputato del Soviet.

    Ma il resto del mondo non restava a guardare inerme le imprese spaziali sovietiche e non ci riferiamo soltano agli scienziati e ai politici americani ma anche ad un consistente “esercito” di radioamatori dilettanti che scrutavano le frequenze radio dei cieli con la speranza di intercettare qualche misteriosa trasmissione proveniente dallo spazio.

    A Torino due appassionati di telecomunicazioni, i fratelli Achille e Giovanni Judica Cordiglia, facevano parte di questa cospicua schiera di radioamatori e più volte si imbatterono nelle frequenze dei satelliti russi, riuscendo a captare sia le trasmissioni tra spazio e terra degli Sputnik 1 e 2, sia quelli della Vostok 1 con a bordo Gagarin. Fin qui nulla di straordinario, non furono gli unici a registrare quelle comunicazioni ma, se oggi stiamo ancora parlando di loro, il perchè è dovuto al fatto che tra il volo dello Sputnik 2 e quello della Vostok 1, i fratelli Judica Cordiglia captarono e registrarono le comunicazioni avvenute tra almeno altre due navicelle sovietiche e la terra esattamente nel novembre 1960 e nel febbraio 1961, mesi prima del volo di Gagarin.

    La cosa sconcertante è che queste comunicazioni non trasmettevano solo dati scientifici strumentali come le navette Sputnik, ma anche voci umane (dubbia la loro presenza, per la verità ), respiri affannosi (molto più evidenti), battiti cardiaci e altre informazioni biomediche.

    Queste intercettazioni, captate anche da un altro radioamatore italiano, Mario Del Rosario, confermerebbero che ben prima del volo di Gagarin, i russi abbiano mandato in orbita degli astronauti ma tali voli avrebbero avuto un esito tragico e, quindi, non sarebbero stati resi pubblici dall’ente spaziale sovietico che, essendo in netto vantaggio nella corsa alla spazio contro gli USA, preferiva non comunicare al mondo gli insuccessi ottenuti per non prestare il fianco agli americani.

    Se le conclusioni a cui sono giunti i fratelli Judica Cordiglia fossero vere, su ogni libro di storia andrebbe cambiata la data del primo volo umano nello spazio e il nome del cosmonauta che lo ha effetttuato a costo della vita, facendo, di riflesso, decadere un mito dell’impero Sovietico come Gagarin. Le autorità  russe però non hanno mai confermato la veridicità  delle intercettazioni dei radiomatori torinesi e, smentendo categoricamente e ufficialmente l’ipotesi da loro avanzata, li definirono essere due “banditi spaziali”.

    E’ da sottolineare come, già  dal 1958, voci su missioni russe nello spazio finite tragicamente erano balzate all’attenzione della cronaca occidentale e finanche il famoso scrittore di fantascienza Robert Heinlein (autore del romanzo Starship Troopers) due giorni prima del volo di Gagarin, pubblicò un articolo in cui dichiarava che un militare russo (rimasto anonimo) gli avesse confidato che almeno una missione sovietica con equipaggio umano a bordo era finita in tragedia nei mesi precedenti.

    Come stanno realmente i fatti?

    Dopo sessant’anni dal volo di Gagarin ancora non è stato possibile né confutare né smentire le tesi dei fratelli Judica Cordiglia. Oltre ai russi, molti ricercatori occidentali sottolinearono non tanto la veridicità  delle intercettazioni ma la provenienza delle stesse, asserendo che si trattasse di comunicazioni terra-terra e non terra-spazio. La domanda che ci si pone è il perchè tali comunicazioni siano state captate solo dai due torinesi (e, nel caso delle comunicazioni di febbraio, dall’altro radioamatore italiano Mario Del Rosario) ma non dalle altre centinaia di radioamatori in ascolto in quel periodo tra Europa e Stati Uniti. Anche qui però bisogna sottolineare due aspetti: innanzitutto un centro di ascolto ufficiale (e quindi non radioamatore) che ha confermato di aver registrato nelle stesse date e agli stessi orari dei Judica Cordiglia le comuncazioni in questione esiste ed è l’osservatorio astronomico di Bochum, in Germania; secondariamente, i radioamatori torinesi erano dotati di un’apparecchiatura parecchio avanzata rispetto a quella in dotazione ai radioamatori medi dell’epoca e il loro centro di ascolto, denominato “Torre Bert“, era allocato in un bunker risalente alla guerra mondiale, riadattato e ristrutturato con pareti molto spesse che schermavano quasi tutte le possibili interferenze ambientali.

    A favore della linea ufficiale russa, invece, sta il fatto che mai nessuna spia americana abbia confermato l’esistenza di questi voli umani “pre Gagarin” (così come mai nessuna spia russa, anni dopo, smentì l’avvenuto allunaggio americano) e, con la caduta dell’Unione Sovietica, negli archivi dell’agenzia spaziale non è stato trovato nulla che confermasse i voli stessi anche se, in realtà , sono diverse i documenti ritrovati relativi a non ben specificati voli suborbitali – non effettuati da comonauti ma da paracadutisti – non andati a buon fine.

    Cosmonauti persi nello spazio

    Se le registrazioni fatte prima del volo di Gagarin alimentano domande e sospetti, quelle effettuate dai Juduca Cordiglia dopo l’impresa dell’eroe nazionale russo, oltre a testimoniare che forse l’Unione Sovietica all’epoca non disse davvero tutto, in alcuni casi lasciano addirittura sgomenti.

    E’ il caso delle intercettazioni effettuate nel maggio del 1961, quindi circa un mese dopo il volo di Gagarin, in cui, in giorni diversi, i torinesi registrarono delle presunte comunicazioni avvenute tra la terra e probabili navicelle russe. In un caso si sente addirittura una voce che dice “attenzione, i torinesi ci ascoltano” mentre, in un’altra, si può ascoltare la voce sofferente di una donna che, dopo aver affermato di sentire molto caldo, chiuderà  la conversazione dicendo “tanto questo il mondo non lo saprà “, frase che diventerà  il titolo di un libro scritto dai fratelli Judica Cordiglia.

    Ovviamente, anche riguardo a queste intercettazioni posteriori al volo di Gagarin non c’è nessuna conferma ufficiale ma il dubbio che i sovietici abbiano nascosto l’esito delle missioni spaziali andate male non può essere fugato soltanto da una scontata smentita. Le voci si sentono realmente, i messaggi sono chiari e, all’epoca, realizzare falsi di questa complissità  era pressochè impossibile. L’unica ipotesi che resta in piedi per smentire i Judica Cordiglia resta quella che le registrazioni si riferiscano a intercettazioni terra-terra anzichè spazio-terra o, al massimo, di comunicazioni tra la terra ed equipaggi a bordo di aerei.

    Per completezza di informazione è bene specificare che l’Unione Sovietica comunicò nell’imminenza dei fatti il fallimento delle missioni Sojuz 1 del 1967 e Sojuz 11 del 1971 che costarono la vita rispettivamente ad uno e tre cosmonauti e i loro nomi sono riportati nella targa commemorativa posta di fianco al Fallen Astronaut Memorial, la piccola statuetta deposta sulla Luna dall’equipaggio della missione Apollo 12, in commemorazione di tutti gli astronauti (e cosmonauti) che avevano perso la vita in missione.

    http://history.nasa.gov/alsj/a15/as15-88-11894HR.jpg – Il Fallen Astronaut Memorial deposto sulla Luna dall’equipaggio dell’Apollo 12

    Achille e Giovanni Judica Cordiglia continuarono ad ascoltare a lungo le comunicazioni tra la terra e i vari satelliti e navicelle lanciati da russi e americani negli anni sessanta, senza ottenere mai la conferma che ciò che avevano ascoltato si riferisse a cosmonauti perduti nello spazio o al rientro a terra.

    Dopo sessanta anni, crediamo che difficilmente verremo a capo della vicenda, anche se, la curiosità  di sapere a cosa si riferisse quella voce femminile intercettata dai radioamatori torinesi che diceva “tanto questo il mondo non lo saprà “, è tanta.

  • Che cos’è un focus group

    Che cos’è un focus group

    Un “focus group” (in italiano, gruppo di discussione) è una tecnica di ricerca qualitativa utilizzata nell’ambito delle scienze sociali e della ricerca di mercato per raccogliere dati e ottenere insight su opinioni, percezioni, atteggiamenti e opinioni di un gruppo di partecipanti su un determinato argomento o prodotto. In un focus group, un moderatore guida una discussione strutturata con un piccolo gruppo di partecipanti, solitamente da 6 a 10 persone, per raccogliere informazioni dettagliate su un argomento specifico.

    Ecco alcune caratteristiche chiave dei focus group:

    1. Partecipanti rappresentativi: I partecipanti vengono selezionati in base alle loro caratteristiche demografiche o alle loro esperienze pertinenti all’argomento in studio. Questo può includere consumatori, potenziali clienti, elettori, pazienti, ecc.
    2. Moderatore: Un moderatore esperto guida la discussione e si assicura che la conversazione rimanga focalizzata sull’argomento. Il moderatore usa domande aperte e stimola la discussione tra i partecipanti.
    3. Struttura della discussione: Le sessioni dei focus group sono basate su un set di domande o argomenti di discussione prefissati, progettati per ottenere informazioni specifiche sull’argomento di interesse.
    4. Interazione tra i partecipanti: Gli insight emergono non solo dalle risposte dei partecipanti alle domande del moderatore, ma anche dalle interazioni e dai confronti tra i partecipanti stessi. Questo può portare a una comprensione più profonda delle opinioni e delle percezioni.
    5. Registrazione e analisi: Le sessioni dei focus group vengono spesso registrate (audio o video) e quindi analizzate in seguito per identificare temi chiave e modelli ricorrenti nelle risposte dei partecipanti.

    I focus group sono ampiamente utilizzati in vari contesti, tra cui:

    • Ricerca di mercato: Le aziende li utilizzano per comprendere le preferenze dei consumatori, valutare nuovi prodotti o servizi e raccogliere feedback sui marchi.
    • Scienze sociali: Gli studiosi li usano per esplorare temi sociali, valutare politiche pubbliche e studiare l’opinione pubblica.
    • Settore sanitario: Sono utilizzati per valutare la soddisfazione dei pazienti, esaminare le percezioni sui trattamenti medici e raccogliere informazioni sui bisogni dei pazienti.
    • Istruzione: In ambito educativo, possono essere utilizzati per ottenere feedback dagli studenti su programmi didattici o materiali didattici.

    I focus group forniscono un contesto interattivo che consente ai ricercatori di esplorare e approfondire le opinioni e le percezioni dei partecipanti in modo più dettagliato rispetto a un sondaggio o un questionario standard. Tuttavia, è importante notare che i risultati dei focus group rappresentano le opinioni di un campione limitato di partecipanti e non possono essere generalizzati all’intera popolazione.

    Esempio pratico di focus group

    Ecco un esempio pratico di come potrebbe essere condotto un focus group nel contesto di ricerca di mercato per valutare un nuovo prodotto alimentare:

    Obiettivo della ricerca: Un’azienda alimentare sta sviluppando una nuova linea di barrette energetiche e desidera ottenere feedback da potenziali consumatori prima del lancio sul mercato.

    Selezione dei partecipanti: Il team di ricerca seleziona un gruppo di 8 persone, rappresentative del pubblico target delle barrette energetiche (ad esempio, atleti, professionisti in movimento, mamme impegnate). Queste persone non devono avere esperienza diretta con il prodotto in questione.

    Sede e registrazione: Il focus group viene pianificato in un’area dedicata, come una sala riunioni, con attrezzature audio e video per registrare la discussione. È presente anche un moderatore esperto.

    Struttura della discussione: La sessione del focus group dura circa due ore. La discussione è suddivisa in tre parti:

    1. Introduzione e presentazioni: Il moderatore introduce il gruppo e spiega l’obiettivo della discussione. Ogni partecipante si presenta brevemente.
    2. Esperienza e valutazione delle barrette energetiche: I partecipanti ricevono campioni delle nuove barrette energetiche e vengono incoraggiati a assaggiarle. Discutono delle loro impressioni, valutano il gusto, la consistenza, il sapore e la confezione del prodotto. Il moderatore pone domande specifiche, come “Qual è la vostra opinione sul sapore di questa barretta?” o “Cosa ne pensate della quantità di zucchero presente?”.
    3. Feedback generale: Il moderatore guida una discussione più ampia su argomenti correlati, come le situazioni in cui le barrette energetiche potrebbero essere utili, le preferenze rispetto ai concorrenti e le aspettative dei consumatori riguardo al prezzo.

    Registrazione e analisi: La discussione è registrata e trascritta per analizzare le risposte e identificare i temi chiave. L’azienda utilizzerà i risultati per apportare eventuali miglioramenti al prodotto e per sviluppare una strategia di marketing basata sul feedback dei potenziali consumatori.

    Questo è solo un esempio di come un focus group potrebbe essere utilizzato nella ricerca di mercato. Tali sessioni possono essere personalizzate per adattarsi a diversi obiettivi di ricerca e settori industriali, ma seguono generalmente una struttura simile per raccogliere opinioni e percezioni dettagliate dai partecipanti.

  • 4chan: nei meandri del dark web e della community più controversa al mondo

    4chan: nei meandri del dark web e della community più controversa al mondo

    Se stai cercando informazioni su 4chan, magari perchè ne hai sentito parlare in giro o letto qualcosa su qualche giornale, dovresti sapere che si tratta di un forum pubblico in cui gli utenti possono, in modo anonimo, consultare e visionare contenuti di ogni genere. Non esiste moderazione e il tutto rimane nelle mani dei singoli utenti. Gran parte della sua attrattività  deriva, di fatto, da questo anonimato “estremo” in cui chiunque, senza alcuna registrazione, può leggere e postare contenuti come foto, video e molto altro ancora. Alla base della fama di 4chan vi sono controversie di tipo etico, sociale e in alcuni casi addirittura legali: non essendoci moderazione, si è molto esposti a troll, cyberbullismo, doxxing e così via. 4chan deve essere usato in modo consapevole e responsabile e, in caso di dubbi, non dovrebbe essere utilizzato affatto.

    Che cos’è 4chan

    Si tratta di un sito Web del tipo imageboard anonimo, quasi tutto in lingua inglese. Lanciato da Christopher “moot” Poole nel 2003, il sito ospita bacheche dedicate a un’ampia varietà  di argomenti, da anime e manga a videogiochi, cucina, armi, televisione, musica, letteratura, storia, fitness, politica e sport – tra gli altri. La principale caratteristica del forum è che non prevede la registrazione: chiunque può usarlo in modo libero e gratuito, e chiunque soprattutto può postarci all’interno letteralmente qualsiasi cosa. A partire dal 2021, 4chan conta qualcosa come 20 milioni di visitatori mensili unici, a testimonianza di un interesse sostanziale per questo genere di community.

    4chan si trova nel dark web?

    Di fatto, qualcuno ha suggerito che 4chan sia associabile ai contenuti del deep web oppure del dark web, ma su questo punto specifico ci sono, ancora oggi, opinioni contrastanti: da un lato c’è chi dice che sia dark web a tutti gli effetti, dato che è una parte di internet non indicizzata sui motori in cui si può tecnicamente trovare di tutto al suo interno (inclusi contenuti per adulti e/o sgradevoli o che sarebbero bannati su altre community).

    Dall’altro qualcuno suggerisce che il fatto che si possa accedere in chiaro al forum lo rende diverso dall’essere sia deep che dark web, e questa opinione ci convince altrettanto dato che, peraltro, un po’ come succede su Reddit i contenuti visibili sono “eletti” dagli utenti del forum stesso, che valorizzano ciò che guardano e seppelliscono con voti negativi i contenuti poco interessanti.

    4chan NON è un sito per tutti! (NSFW)

    A questo punto, premessi questi aspetti, se davvero hai deciso di provare a curiosare dentro 4chan, devi ricordarti e tenere sempre presente che potresti trovare contenuti poco opportuni al suo interno, che potrebbero turbarti notevolmente o provocare uno shock. Su 4chan infatti si pubblicano anche foto di altre persone senza il loro consenso, e nulla escude che possano apparire anche video e fotografie violente di morti reali, aggressioni, scene pesanti o persone che volontariamente si fanno o procurano del male ad altri.

    Ci teniamo a metterlo in chiaro, e vi invitiamo a non considerare in modo superficiale la questione, perchè se è vero che internet è un mondo vario bisogna fare attenzione quando ci si avventura in meandri del genere. Ovviamente in questo articolo non posteremo nulla di sconveniente tratto da quel sito, ma era a nostro avviso necessario che vi avvisassimo esplicitamente a riguardo.

    Chiarito anche questo, 4chan oggi si presenta così (screenshot del 9 aprile 2022):

    Come è fatto 4chan?

    La struttura di 4chan è estremamente semplice: una volta entrati nella home del sito, troveremo una lista di contenuti organizzati per tipologia, contraddistinti da un nome univoco e da una lettera specifica all’interno di ogni indirizzo (URL). Le board che sono visibili al momento in cui scriviamo la guida riguardano la cultura giapponese, hobby e interessi, creatività , varie ed eventuali, ed una sezione dedicata interamente al mondo degli adulti (NSFW).

    Cliccando su una sezione troverei subito quello che ti interessa, e potrai visitare la board nell’ordine in cui i contenuti vengono postati.

    Foto di copertina di Markus Spiske: https://www.pexels.com/it-it/foto/tecnologia-computer-desktop-programmazione-113850/

  • Come si attiva Facebook Dating

    Come si attiva Facebook Dating

    Da qualche giorno Facebook Dating, l’antagonista di Tinder all’interno di Facebook, è finalmente disponibile anche in Italia, così come lo è da diverso tempo Argentina, Brasile, Bolivia, Canada, Cile, Columbia, Ecuador, Guyana, Laos, Messico, Malesia, Paraguay, Perù, Filippine, Singapore, Suriname, Tailandia, Vietnam e Uruguay.

    Abilitare Facebook Dating dal proprio smartphone

    Per farne uso, dobbiamo entrare nel nostro account Facebook mediante l’app ufficiale Android o iOS e seguire la procedura di seguito indicata. Accedere a Facebook Dating da browser, non è possibile: bisogna farlo per forza da smartphone. Per attivare Facebook Dating bisogna pertanto andare all’interno del menù, cliccando sulle tre lineette, e poi dal menù che apparirà  selezionare l’opzione Dating con il cuoricino a fianco.

    Come impostare Facebook Dating

    Dopo aver selezionato Dating, ci sarà  una procedura guidata in cui vi verranno richiesti alcuni dati, tra cui:

    • che lavoro fate (qui potete scrivere quello che volete);
    • una vostro foto (che potete riciclare direttamente da quella impostata nel vostro profilo);
    • in che zona vi trovate (questo può essere cambiato ripetendo la procedura in base a dove vi trovate, ed è obbligatorio);
    • che cosa cercate (relazione stabile, amicizia, relazione occasionale, preferisco non dirlo).

    Il vostro nome e data di nascita sono in sola lettura, e vengono importati in automatico.

    Facebook Dating e privacy

    L’app di Facebook Dating, che trovate dentro l’app di Facebook, sembra essere abbastanza attenta alla privacy, almeno dai test che abbiamo fatto, il problema è che, mentre scrivevamo il post, ci trovavamo in una zona in cui questo servizio non sembra ancora essere attivo. È possibile che diventi attivo nei prossimi giorni, e lo sarà  con modalità  abbastanza discrete: non viene pubblicato il fatto che si sia usando Facebook Dating sulla propria bacheca, ed in genere si potrà  parlare soltanto con persone con le quali è confermato il crush.

    L’app sembrerebbe gratuita, almeno a prima vista, per cui potrebbe essere considerata una specie di Tinder gratuito, sulla base degli “amici degli amici” e con la possibilità  di chattare con chi ricambia l’interesse e (dato il periodo) anche poter fare una video-chiamata con queste persone.

    Non abbiamo la possibilità  di mostrarvi le screen dell’app perchè, per qualche motivo, non è possibile effettuare screenshot dell’app durante il suo uso. Ci sembra abbastanza semplice e rispettosa della privacy, anche se ovviamente ci riserviamo ulteriori commenti a quando saremo riusciti a farne un uso leggermente più attivo.

  • Cos’è il machine learning, spiegato ai newbie

    Cos’è il machine learning, spiegato ai newbie

    Cosa si intende con machine learning? Il machine learning (apprendimento macchina, nel senso di apprendimento automatico) è un campo dell’intelligenza artificiale (AI) che si occupa dello sviluppo di algoritmi e modelli che consentono ai computer di apprendere dai dati in modo da migliorare le prestazioni nel tempo, senza dover essere esplicitamente programmato per ogni singola situazione. Per dirla in estrema sintesi, il machine learning permette ai computer di “imparare” dai dati e trarre conclusioni o prendere (alla lunga) decisioni “quasi” autonome.

    Esempi di machine learning

    Sebbene il machine learning sia strettamente collegato all’elaborazione dei dati e alla programmazione informatica, oltre ad avere una serie di formalismi matematici che non ne facilitano certo l’apprendimento (almeno non in prima istanza), ci sono alcuni esempi in cui possiamo vedere l’applicazione dei principi del machine learning nella pratica quotidiana senza necessariamente fare riferimento ai computer. Ecco alcuni esempi che abbiamo reperito:

    1. Apprendimento delle abilità motorie: il concetto di machine learning può essere applicato nell’apprendimento di abilità motorie come guidare una bici o suonare un pianoforte. Inizialmente, potresti commettere errori e provare diverse azioni. Man mano che acquisisci esperienza, il tuo cervello elabora i feedback sensoriali e impara a correggere i movimenti per raggiungere, con esercizio e costanze, sempre maggiore precisione e fluidità.
    2. Apprendimento di una lingua: quando si impara una lingua straniera, il processo di acquisizione delle parole, delle regole grammaticali e delle pronunce può essere considerato un processo di machine learning. Inizialmente, si fanno errori e si prova a costruire frasi in modo approssimativo. Con l’esposizione continua e la pratica, si migliora progressivamente la padronanza della lingua e si diventa più fluenti.
    3. Riconoscimento dei modelli: un agricoltore potrebbe imparare a riconoscere i segnali che indicano la presenza di malattie sulle piante o un sommelier potrebbe sviluppare la capacità di distinguere diversi aromi e sapori nel vino.
    4. Adattamento al cambiamento: Il concetto di adattamento al cambiamento nell’esperienza umana può essere considerato come una forma di machine learning. Quando ci troviamo di fronte a nuove situazioni o sfide, il nostro cervello elabora l’esperienza passata, impara dai successi e dagli errori, e si adegua per affrontare in modo più efficace i nuovi scenari, facendo ipotesi di vario genere e comportandosi sulla base dell’esperienza e dei propri desideri.

    Sebbene questi esempi siano semplici analogie parziali per illustrare come il machine learning possa riflettere il processo di apprendimento umano, è importante notare che l’effettiva implementazione e applicazione di questo tipo di algoritmi richiede il supporto di algoritmi e tecniche computazionali avanzate.

    A livello pratico – Nel caso in esame, faremo uso della libreria di Python Sci-Kit, che ci aiuterà a comprendere meglio il nostro argomento.

    Esempi più pertinenti si possono snocciolare in modo induttivo: quando si visita un sito di shopping online, come Ebay o Amazon, il sistema utilizza algoritmi di machine learning per analizzare i tuoi precedenti acquisti, le tue preferenze, le recensioni degli altri utenti, i prodotti che hai visitato più spesso e le ricerche che hai fatto in passato. In questo modo utilizza queste informazioni per suggerire prodotti che potrebbero interessarti. Ad esempio, se hai acquistato un paio di scarpe da corsa, potresti ricevere suggerimenti su altri articoli correlati, come calze sportive o abbigliamento da fitness. I suggerimenti per le serie e i film su Amazon Video o Netflix possono, in teoria, seguire lo stesso principio. Gli articoli che potete vedere alla fine di ogni articolo del nostro blog, per fare un ulteriore ultimo esempio, possono considerarsi una forma di suggerimento di contenuti basato sull’apprendimento macchina, questa volta applicato ai contenuti testuali.

    Storia del machine learning

    La storia del machine learning risale agli anni ’40 e ’50, quando i primi pionieri dell’informatica, come Alan Turing, si interessarono alla possibilità di creare macchine capaci di apprendere. Tuttavia, fu solo negli anni ’60 che il concetto di machine learning iniziò ad essere sviluppato in modo più concreto. Nel 1959 Arthur Samuel, uno dei pionieri del campo, introdusse il termine “machine learning” e sviluppò un programma di gioco per dama che imparava dai suoi errori e migliorava le sue mosse nel tempo. Questo lavoro pionieristico ha posto le basi per molte delle tecniche di machine learning utilizzate oggi.

    Negli ultimi anni, con l’avvento del “big data” e dei progressi nella capacità di elaborazione dei computer, il machine learning è diventato sempre più pervasivo. Algoritmi complessi come le reti neurali profonde (deep neural networks) hanno raggiunto risultati impressionanti in campi come il riconoscimento delle immagini, la traduzione automatica, il riconoscimento vocale e molti altri. Oggi, il machine learning è presente in numerosi settori, tra cui l’industria, la medicina, la finanza, la ricerca scientifica e molti altri. Continua a evolversi rapidamente grazie a nuove tecniche, algoritmi più sofisticati e ad approcci innovativi, come il reinforcement learning oppure il transfer learning. Molti passi sono stati compiuti fino ad oggi e, di fatto, grazie allo sviluppo di linguaggi e librerie open source gran parte di queste tecniche sono disponibili per qualsiasi azienda e programmatore volesse farne uso.

    Statistica, analisi e “direzionalità” dei dati

    Tanto per fissare subito le idee e non scendere in eccessivi dettagli che renderebbero la trattazione quasi impossibile (nonchè dispersiva), poniamo che i nostri dati siano rappresentabili su un piano cartesiano. Ad esempio stiamo raccogliendo informazioni su temperatura e altitudine di un territorio, per cui i nostri dati sono rappresentabili come una “nuvola” di punti così rappresentabile. Una nuvola perchè, proprio come le nuvole in cielo, non c’è una forma ben definita, tanto che la loro rappresentazione è tipicamente soggettiva e molte persone vedono forme nelle nuvole che altri, diversamente, non riescono a vedere (fenomeno noto come pareidolìa, per inciso).

    In questo caso facciamo caso, per i nostri scopi, esclusivamente alla forma “generale” della nuvola, dove i punti più densi sono più scuri e quelli meno densi più chiari: anche senza avere un dottorato in matematica (avercene…) è abbastanza chiaro che non sia possibile definire una funzione matematica che permetta di rappresentare in modo sintetico la distribuzione di punti, come avverrebbe per disegnare invece una retta, una parabola o una circonferenza (che difficilmente fitterebbero, ovvero corrisponderebbero, in ogni casi, a dati del mondo reale). Lei irregolarità / imprevedibilità del mondo di ogni giorno sono il primo vero ostacolo che si incontra quando si lavora con il machine learning (…e quando si vive, aggiungerei 🙂 ): e allora come procedere? Come possiamo approcciare ad un problema del mondo reale per cui non esiste una formalizzazione matematica classica, di quelle che si studiano a scuola o nei primissimi anni di università?

    La statistica in questo caso può essere di aiuto, ed è evidenziata dalle due frecce perpendicolari che sono disegnate nella figura in basso che abbiamo tratto da Wikipedia: se ci fate caso le due frecce puntano nella direzione di maggiore densità dei dati, ed è stato in questo modo possibile definirla una certa direzionalità. Non si tratta di un avere propria direzione, perché di fatto non c’è una direzione netta nella distribuzione di quei dati: c’è una direzionalità, un concetto differente, più vago se vogliamo ma anche più adeguato ad esprimere quello che ci serve. I vettori (le freccette) indicati/e in figura, da un punto di vista tecnico, sono detti autovettori della matrice di covarianza, e sono alla base della disciplina nota come analisi delle componenti principali.

    Lo scopo di questo genere di analisi dei dati è proprio quello di fissare una direzionalità dei dati sparsi, semplificandone la trattazione senza, al contempo, perdere troppe informazioni a riguardo. Quelle due freccette ci dicono che i dati tendenzialmente si addensano in quelle due direzioni, senza entrare in troppi dettagli e fornendo una descrizione ad alto livello degli stessi.

    Varianza e covarianza

     Senza perderci in ulteriori digressioni, torniamo sulla parola covarianza, per un attimo. Un concetto statistico non difficile da definire ma importante da fissare. Per quello che ci interessa, ci teniamo stretto il concetto di varianza e covarianza, che in statistica indicano rispettivamente :

    • La varianza è una misura della dispersione dei dati rispetto alla loro media. Indica quanto i dati si discostano dai loro valori medi. Una varianza bassa indica che i dati sono concentrati intorno alla media, mentre una varianza alta indica una maggiore dispersione dei dati.
    • La covarianza, d’altra parte, è una misura della relazione lineare tra due variabili. Misura la direzione e la forza della relazione tra le variabili. Una covarianza positiva indica che le due variabili tendono a variare nello stesso senso, mentre una covarianza negativa indica che le due variabili tendono a variare in direzioni opposte.

    La media aritmetica di 10 dati è data, in forma base, dalla somma dei 10 dati divisa per 10, per quanti sono i dati. La varianza si calcola, per inciso, come la media dei quadrati delle differenze tra ciascun dato e la media dei dati.

    Per intenderci, se due set di dati (uno rosso e l’altro blu, in figura) hanno entrambi media sul valore 100, possono avere due varianze diverse: quella blu è più bassa e quella rossa è più alta, il che significa che nel caso dei dati rossi ci sono più dati addensati su una media che è vicina al cento, mentre la distribuzione blu risulta più uniforme. Due varianze diverse pur avendo la stessa media, in sostanza.

    La varianza gioca un ruolo fondamentale per molti algoritmi di machine learning, ed è per questa ragione che l’abbiamo introdotta.

    Tecnica di model fitting

    Poniamo di aver acquisito i nostri dati e di averli sparsi come tanta sabbiolina sopra un piano. Ogni chicco di sabbia rappresenta un puntino nel grafico che abbiamo visto all’inizio, ed abbiamo visto che è possibile effettuare una misurazione della sua varianza allo scopo di determinare la “densità” dei dati in prossimità della media degli stessi. Che cosa succede se aggiungiamo della sabbia in termini di algoritmo? L’algoritmo sarai in grado di riconoscere la direzionalità di nuovi dati che vengono sottoposti? La tecnica di model fitting (adeguamento del modello) è un processo iterativo che coinvolge la sperimentazione con diversi modelli, funzioni di costo e parametri al fine di trovare la combinazione ottimale che migliori le prestazioni del modello.

    È importante trovare un equilibrio tra un modello che sia abbastanza complesso da catturare le relazioni nei dati, ma non così complesso da soffrire di overfitting, cioè da adattarsi eccessivamente ai dati di addestramento senza riuscire generalizzare bene su nuovi dati.

    Il processo di model fitting comporta solitamente vari passaggi:

    1. Selezione del modello: regressione lineare, alberi decisionali, reti neurali, e via dicendo.
    2. Definizione delle funzioni di costo: Le funzioni di costo misurano l’errore tra le previsioni del modello e i valori veri dei dati di addestramento. Scegliere una funzione di costo appropriata dipenderà dal tipo di problema che si sta risolvendo. Ad esempio, per la regressione lineare, si può utilizzare la somma dei quadrati degli errori (SSE). Ovviamente la scelta di una funzione di costo inadeguata può portare a valutazioni fuorviate, in alcuni scenari.
    3. Una volta selezionato il modello e definita la funzione di costo, l’obiettivo è trovare i valori dei parametri del modello che minimizzano la funzione di costo.
    4. Addestramento del modello: Durante l’addestramento, si passano i dati di addestramento al modello e si calcolano le previsioni. Successivamente, si calcola l’errore tra le previsioni e i valori veri e si utilizza l’algoritmo di ottimizzazione per aggiornare i parametri del modello.
    5. Valutazione del modello: Dopo l’addestramento, è importante valutare le prestazioni del modello. Ciò viene fatto utilizzando dati di test separati, che non sono stati utilizzati durante l’addestramento.
    6. Tuning finale: Se il modello non produce prestazioni soddisfacenti, è possibile regolare i suoi iperparametri per migliorarne le prestazioni. Gli iperparametri sono parametri che non vengono appresi dal modello durante l’addestramento, ma devono essere impostati manualmente dall’utente.

    Le sette fasi descritte possono essere ripetitive e non ripetute una sola volta, anzi è spesso necessario tornare più volte su alcuni punti a dispetto di altri.

    Tecnica di predicting (predizione)

    La predizione nel machine learning è il processo di utilizzo di un modello addestrato per fare previsioni o stime su nuovi dati non visti in precedenza. Dopo aver addestrato un modello, l’obiettivo principale della predizione è ancora una volta di utilizzare il modello per fare previsioni accurate su nuovi esempi o dati di test. La predizione nel machine learning è un processo chiave per applicazioni come la classificazione, la regressione o il riconoscimento di pattern.

    Il processo di predizione comporta, in questo caso, i seguenti passaggi:

    1. Preparazione dei dati di input: Prima di effettuare una previsione, i nuovi dati devono essere preparati in modo coerente con i dati di addestramento utilizzati per addestrare il modello. Ciò può comportare la pulizia dei dati, l’estrazione delle caratteristiche e l’applicazione delle trasformazioni necessarie.
    2. Utilizzo del modello addestrato: Dopo aver preparato i dati di input, il modello addestrato viene utilizzato per generare previsioni. Il modello prende in input i dati di test e restituisce una previsione o un valore stimato.
    3. Valutazione delle previsioni: Una volta effettuate le previsioni, è importante valutare l’accuratezza e le prestazioni del modello. Ciò viene fatto confrontando le previsioni con i valori di riferimento o le etichette corrette dei dati di test.

    Questo caso si può fare uso di metriche di riferimento come la recall e/o la precisione.

    Tecnica di cross-validation

    La cross-validation (validazione incrociata) è una ulteriore tecnica utilizzata nel machine learning per valutare le prestazioni di un modello utilizzando un insieme limitato di dati di addestramento. L’obiettivo della cross-validation è stimare l’accuratezza del modello su dati non visti, ancora una volta, fornendo una stima affidabile delle prestazioni del modello.

    La cross-validation coinvolge i seguenti passaggi:

    1. L’insieme di dati di addestramento viene diviso in diverse parti chiamate “fold”, con k intero (si parla a volte di k fold).
    2. Addestramento e valutazione: Si seleziona una delle k fold come insieme di test e le restanti k-1 vengono utilizzate come set di addestramento. Il modello viene quindi addestrato e valutato utilizzando il set di test.
    3. Il processo di addestramento e valutazione viene iterato k volte, utilizzando ogni volta una fold differente come set di test. In questo modo, ogni fold viene utilizzata una volta come set di test e k-1 volte come set di addestramento.
    4. Valutazione delle prestazioni: Alla fine della k-fold cross-validation, si ottengono k valutazioni delle prestazioni del modello. Queste valutazioni possono essere aggregate per ottenere una stima media delle prestazioni del modello.

    Tipicamente, si calcolano la media e la deviazione standard delle metriche di valutazione, come l’accuratezza o l’errore medio, per ottenere una stima affidabile delle prestazioni del modello. La cross-validation può essere utile perché permette di valutare il modello su più dati di test, fornendo una stima più affidabile delle sue prestazioni rispetto a una singola suddivisione dei dati.

    Machine learning pratico con Python

    Proviamo a mettere in pratica i concetti visti usando la libreria sci-kit. Proviamo una semplice regressione lineare, per cui sottoponiamo i dati di x e y in due array e proponiamo all’algoritmo di “prevedere” l’andamento del grafico per x = 100, 101 e 102.

    # Importare le librerie necessarie
    from sklearn.linear_model import LinearRegression
    import numpy as np
    
    # Dati di addestramento
    X_train = np.array([[1], [2], [3], [4], [5]])
    y_train = np.array([100, 200, 300, 400, 500])
    
    # Creare un'istanza del modello di regressione lineare
    model = LinearRegression()
    
    # Addestrare il modello utilizzando i dati di addestramento
    model.fit(X_train, y_train)
    
    # Dati di test per la previsione
    X_test = np.array([[100], [101], [102]])
    
    # Fare la previsione utilizzando il modello addestrato
    y_pred = model.predict(X_test)
    
    # Stampare le previsioni
    print("Previsioni:", y_pred)

    Le previsioni saranno:

    Previsioni: [10000. 10100. 10200.]

    il che ricalca effettivamente l’andamento dei dati che abbiamo proposto (un incremento di 100 ad ogni passaggio da un punto all’altro, se ci fate caso).

    Scikit-learn può fare molto altro, ovviamente, tanto che fornisce decine di algoritmi e modelli di apprendimento automatico integrati, che sono chiamati tecnicamente stimatori (estimators). Ognuno di essi può essere adattato ad alcuni dati utilizzando il suo metodo di adattamento.

    Ecco un semplice esempio in cui adattiamo un estimatore – un algoritmo specifico, di fatto – detto RandomForestClassifier (per dettagli vedi l’articolo sugli alberi decisionali) ad alcuni dati di base:

    from sklearn.ensemble import RandomForestClassifier
    clf = RandomForestClassifier(random_state=0)
    X = [[ 1, 2, 3], # 2 samples, 3 features
    [11, 12, 13]]
    y = [0, 1] # classes of each sample
    clf.fit(X, y)
    
    pred = [[ 10, 20, 30], # altri 3 samples, 3 features
    [110, 120, 130],
    [1100, 1200, 1300]]
    print ( clf.predict(X) )
    print ( clf.predict( pred ) )

    Possiamo fare uso del metodo semplicemente guardando gli esempi e sfruttando la documentazione, ovviamente conoscerne il funzionamento interno sarà utile a valutazioni di fino relative al margine di errore ed al fitting dei dati. Principio è sempre lo stesso: proviamo ad addestrare il nostro algoritmo con dei dati di base e poi ci inventiamo un “cervello” artificiale che sappia decidere sulla base dei dati precedenti. Per l’appunto, apprendimento macchina.

    Le due predizioni saranno, per inciso:

    [0 1]
    [1 1 1]
  • Guida pratica al greenwashing

    Guida pratica al greenwashing

    Il termine “greenwashing” è un neologismo che si riferisce a una pratica in cui un’azienda o un’organizzazione cerca di apparire ecologicamente responsabile e amica dell’ambiente attraverso la pubblicità e la comunicazione, anche se in realtà non ha adottato misure significative per ridurre il suo impatto ambientale o per sostenibilità. In altre parole, il greenwashing è una forma di marketing ingannevole che mira a far sembrare che un’azienda sia più ecologica di quanto realmente sia.

    Le aziende coinvolte nel greenwashing possono utilizzare varie strategie per creare questa falsa percezione di sostenibilità, come:

    1. Slogan o pubblicità ecologici: Utilizzare slogan, immagini o comunicazioni che suggeriscono un forte impegno per l’ambiente, anche se le azioni dell’azienda non lo riflettono.
    2. Etichettature fuorvianti: Applicare etichette o simboli ecologici su prodotti o confezioni senza una reale base ecologica o certificazione.
    3. Omissione di informazioni importanti: Non divulgare informazioni negative o impatti ambientali nocivi associati ai prodotti o alle operazioni dell’azienda.
    4. Promesse vaghe: Fare promesse vaghe o generiche sulla sostenibilità senza fornire dettagli o piani concreti per il miglioramento.
    5. Distorsione dei dati: Manipolare o presentare dati in modo ingannevole per far apparire l’azienda migliore dal punto di vista ambientale di quanto non sia.

    Il greenwashing è considerato una pratica disonesta e dannosa poiché può indurre i consumatori a fare scelte d’acquisto basate su false affermazioni ambientali e può ostacolare gli sforzi reali di sostenibilità. Molte organizzazioni e governi hanno sviluppato regolamentazioni e linee guida per combattere il greenwashing e garantire che le affermazioni ambientali siano accurate e verificabili. È importante per i consumatori essere consapevoli di questa pratica e cercare informazioni accurate e credibili sulla sostenibilità delle aziende e dei loro prodotti. Foto di Markus Spiske su Unsplash

  • Tra intelligenza e coscienza: perchè le macchine non possono davvero pensare

    Tra intelligenza e coscienza: perchè le macchine non possono davvero pensare

    I cellulari che usiamo ogni giorno, secondo alcuni, ci spiano: alcuni hanno osservato, ad esempio, che se parliamo di un certo argomento con un amico e poi apriamo il telefono per curiosare su Instagram, ci sono discrete possibilità  che esca fuori qualche sponsorizzata sull’argomento. Se le cose stessero davvero così, di fatto, i nostri smartphone sarebbero da buttare, e verrebbe a tutti voglia di tornare al caro vecchio Nokia 3310. Ad oggi, in ogni caso, nessuno è mai riuscito a dimostrare che gli smartphone ci spiino davvero, il che denoterebbe una certa capacità  di “decidere”   e pensare in autonomia quando sia meglio farlo. Certo, più di qualche esperto ha adombrato il sospetto che le cose possano stare così, ma la prova definitiva manca. Senza avvolgerci nella spirale complottistica secondo la quale la verità  non uscirebbe fuori comunque, il che sarebbe abbastanza paranoico in effetti, c’è da sottolineare come molti dispositivi moderni dimostrino una qualche “intelligenza” di cui fino a 10 o 15 anni prima non sembravano affatto dotati. Ma allora le macchine possono pensare? Secondo me no, o meglio non possono farlo ad oggi e credo che difficilmente potranno farlo anche nel prossimo futuro. Siccome si tratta di un’affermazione forte – me ne rendo conto – vorrei divertirmi a sviscerarla un minimo per chi fosse interessato.

    Bisogna sgombrare il campo, a mio avviso, prima di tutto da una questione che potrebbe introdurre un bias cognitivo notevole: pensare che computer e umani si assomiglino, partendo dal presupposto (per me fallace, quanto di non banale argomentazione) secondo il quale il cervello umano possa considerarsi assimilabile ad un calcolatore elettronico. Is the Brain’s Mind a Computer Program?,   si era chiesto il filosofo Searle a riguardo del famoso esperimento della stanza cinese: si immagina (in una variante del classico test di Turing) che una persona che non conosce la lingua sia costretta, di fatto, a comunicare con l’esterno ricorrendo solo ad ideogrammi cinese. Tutto ciò che possiede per provare a rispondere agli input che riceve in questa lingua è un manuale di istruzioni, a cui risponde ed imparare a dare degli output di risposta senza capire effettivamente cosa stia dicendo. Il parallelismo diventa chiaro se si pensa che un computer fa esattamente questo, nello specifico nella fase di compilazione ed esecuzione di un codice macchina che legge (sintassi) ed esegue senza conoscerne realmente il significato (la semantica). Secondo Searle, la differenza tra uomo e macchina è proprio nella mancanza di semantica tra la seconda ed il primo (e verrebbe da dire da bravi fatalisti nonchè fan di Terminator, per fortuna!).

    Le applicazioni di intelligenza artificiale sono da tempo uscite dall’avanguardia “futurista” che ne caratterizzava i primi singulti, diventando parte integrante delle app che usiamo ogni giorno. Facciamo qualche esempio per tutti: se un applicativo come AutoDraw, ad esempio, è in grado di interpretare gli scarabocchi che gli sottoponiamo e trasformarli in forme compiute (disegni stilizzati) che gli somigliano o li ricordano, che cosa vuol dire? Ciò naturalmente non significa che quell’app sia in grado di “pensare”, leggere nel pensiero o essere un veggente sulle reali intenzioni dell’utente. Eppure, paradossalmente, la sensazione che ne ricaviamo spesso è esattamente quella. Spingendo oltre il discorso, ci accorgiamo che ormai esistono auto a guida autonoma che, in un certo senso, sono dotate di intelligenza: sono realtà  per molti di noi, nonostante i costi tutt’altro che abbordabili, ma esistono. Stando all’esperimento di cui sopra, queste auto non sono davvero in grado di pensare e di distinguere (ad esempio) la differenza tra scontrarsi con un muro, un animale o una persona che attraversa la strada (per quanto, probabilmente, possano essere in grado di valutare i rischi per il guidatore in ognuno dei casi sopra elencati): non pensano davvero, ma esibiscono un comportamento intelligenze (smart), e questo ovviamente non potrà  mai renderli veri e propri guidatori coscienziosi come potrebbe esserlo un uomo ben educato e con etica e semantica a corredo.

    Grazie all’intelligenza artificiale siamo in grado non solo, ormai, di far eseguire compiti noiosi ad una macchina (lavorare su un foglio di calcolo in Excel, ad esempio), ma anche di delegare compiti complessi ad app che sfruttano la AI (Artificial Intelligence), che vanno dalla scelta strategica aziendale alla scelta di un partner. Suggerimenti, idee, spunti, più che vere e proprie “intelligenze”, vocabolo probabilmente usato ed abusato quanto blockchain e lo stesso smart. Sapere eseguire dei passi, pertanto, non equivale affatto al dotare l’automa che li esegue di un’intelligenza, concetto che andrebbe quantomeno staccato da quello di coscienza. Un essere pensante è cosciente, e questo avviene (senza scomodare diatribe ulteriori che finirebbero per appesantire una trattazione che voglio mantenere sul colloquiale) perchè decide (o meno!) di dotarsi di responsabilità , oltre che della capacità  di pensare e decidere. Sono sfumature apparentemente concettuali o astruse, secondo alcuni, ma restituiscono un vero significato, forse del tutto nuovo, a quello della pluri-citata intelligenza artificiale. Chissà  che cosa riserverà  in futuro per noi la AI per il prossimo futuro… forse nulla, forse (se le mie previsioni non fossero corrette) addirittura troppo.

    Eppure le app continuano a scegliere potenziali partner per noi grazie alle app di dating, sembrano realmente in grado di trovare la pizzeria più vicina a casa, ci sorprendono su tantissimi altri fronti come, ad esempio, nel caso della selezione accurata delle persone che potresti conoscere su Facebook. Algoritmi evoluti, sempre più avanzati e sempre più lontani – per molti versi – dalla basilarità  del sequenziamento di codice, quella che in tanti abbiamo pazientemente appreso, nelle sue varie declinazioni, ai tempi dell’università  o dei classici corsi di programmazione. Saper programmare è un’arte che imparareremo in misura sempre più frequente e numerosa sul pianeta terra, ed andrà  corredata da una conoscenza concettuale legata all’uso ed all’abuso delle tecnologie, che potrebbe diventare utile o alienante con quasi eguale probabilità .

    In fondo le macchine offrono da sempre una grande illusione, che è quella di sapere davvero qualcosa di noi, in modo secondo me simile a quella dei grandi mentalisti, che già  alla fine del secolo scorso erano in grado di far credere al proprio pubblico di avere poteri sovrannaturali, spopolando in maniera clamorosa negli anni 80 e diventando parte della cultura pop, probabilmente, con la fama crescente di illusionisti abili come Penn & Teller. Ed ogni azienda IT che propone le proprie “magie”, oggi, potrebbe essere raccontata tra 100 o 200 anni nei termini con cui sorridiamo nello scoprire i trucchi, a volte smart altre decisamente cialtroneschi, che accompagnavano gli spettacoli di magia di inizio del Novecento in tutto il mondo.

    Le macchine possono pensare, certamente, nella misura in cui ci ha suggestionato per decenni l’articolo di Alan Turing a riguardo, un gigante dell’informatica mai troppo tributato oltre che al centro di un celebre equivoco a riguardo del suo famoso esperimento mentale (che qualcuno ebbe la pretesa di aver smentito, ovviamente sbagliando proprio perchè si tratta di un esperimento mentale, non di uno realistico da testare in laboratorio). La mia impressione è che attribuire intelligenza o presunta umanità  ai software moderni avvenga per lo stesso motivo per cui, anni fa, associavamo per forza di cose le fisionomie degli alieni a quelle viste in E.T., nei fumetti o in altri film di fantascienza: semplicemente, lo facevamo in automatico perchè erano le sole che conoscevamo.

    Ma ad oggi ne sappiamo qualcosina in più, e non abbiamo più scuse: sintassi non è semantica, e le macchine informatiche, da sole, ad oggi possono al massimo farci credere di aver pensato le risposte che ci forniscono.

    Photo by Possessed Photography on Unsplash

  • Matrici in C++ (guida totale)

    Matrici in C++ (guida totale)

    Le matrici in C++ sono strutture dati che rappresentano un insieme bidimensionale di elementi organizzati in righe e colonne. Sono utilizzate per memorizzare e manipolare dati in un formato tabellare.

    Ecco una guida introduttiva completa sulle matrici in C++, che potete sfruttare per il vostro codice e per adattarlo a varie situazioni.

    Definizione di una Matrice

    Array Multidimensionale

    Una matrice viene definita come un array a due dimensioni (con massima generalità, almeno due). In questo caso definiamo due costanti, una per il numero di righe (ROWS) ed una per il numero di colonne (COLS), poi andiamo a definite la matrice che sarà di dimensioni 3×3, conterrà 3×3=9 elementi e sarà composta da interi e di forma quadrata.

    const int ROWS = 3;
    const int COLS = 3;
    int matrix[ROWS][COLS]; // Matrice 3x3 di interi

    Matrice Inizializzata

    Se volessi inizializzare la matrice con numeri, andrei a metterli tra parentesi graffe come indicato di seguito.

    int matrix[3][3] =
    {
     {1, 2, 3},
    {4, 5, 6},
     {7, 8, 9}
    }; // Matrice 3x3 inizializzata

    Accesso agli Elementi

    int value = matrix[1][2]; // Accesso all'elemento in posizione (1, 2)

    Operazioni con le Matrici

    Popolare (riempire di dati) una Matrice

    int k=0; //inizializza
    for (int i = 0; i < ROWS; ++i) {

    for (int j = 0; j < COLS; ++j) {
    matrix[i][j] = k++; // Assegnazione di valori interi progressivi 1, 2, 3, ...

    }
    }

    Stampare una Matrice:

    Per mostrare i valori della matrice, li stampiamo dentro un ciclo for.
    for (int i = 0; i < ROWS; ++i) {
    for (int j = 0; j < COLS; ++j) {
    cout << matrix[i][j] << " "; // Stampa degli elementi
    }
    cout << std::endl; // mette una nuova riga per ogni riga della matrice
    }

    Operazioni Avanzate

    • Manipolazione: Esegui operazioni come somma, sottrazione, moltiplicazione tra matrici.
    • Transposizione: Scambia righe e colonne di una matrice.
    • Determinante: Calcola il determinante di una matrice quadrata.
    • Inversione: Trova l’inversa di una matrice quadrata.

    Librerie Utili

    • iostream: Per l’input/output.
    • cmath: Per operazioni matematiche (es. calcolo della radice quadrata).
    • vector: Per rappresentare matrici dinamiche.

    Considerazioni Importanti:

    • Le matrici in C++ sono rappresentate come array multidimensionali, quindi le operazioni dirette di manipolazione possono risultare complesse.
    • Per operazioni avanzate, considera l’uso di librerie esterne come Eigen per algebra lineare.

    Le matrici sono una risorsa potente e versatile nella programmazione, utilizzate in matematica, grafica, elaborazione delle immagini, calcolo scientifico e molto altro ancora. Pratica con operazioni di base e gradualmente esplora operazioni più avanzate per sfruttare appieno il loro potenziale.

    Esercizio: rilevare solo gli elementi diagonale principale

    Per trovare gli elementi della diagonale secondaria di una matrice 3×3 in C++, puoi usare un ciclo for per scorrere gli elementi in modo tale che la somma degli indici di riga e colonna sia uguale a 2 (considerando che gli indici partono da 0).

    Ecco un esempio di come puoi farlo:

    #include <iostream>
    using namespace std;
    
    int main() {
    int matrix[3][3] =
    {{1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}};
    
    cout << "Elementi della diagonale principale:" << std::endl;
    
    for (int i = 0; i < 3; ++i) {
    cout << matrix[i][i] << " ";
    }
    cout << endl;
    
    return 0;
    }

    Elementi diagonale secondaria

    In questo esempio, il ciclo for scorre gli elementi della diagonale secondaria utilizzando l’indice i e calcolando l’indice della colonna come 2 - i. Questo approccio si basa sul fatto che la somma degli indici di riga e colonna per gli elementi della diagonale secondaria è costante e uguale a 2 nella matrice 3×3.

    Se i = 0, infatti 2-i = 2-0 = 2; se i = 1, 2-i = 2-1 = 1; Se i = 2, inifine, 2-i = 2-2 = 0.

    #include <iostream>
    using namespace std;
    
    int main() {
    int matrix[3][3] =
    {{1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}};
    
    cout << "Elementi della diagonale secondaria:" << endl;
    
    for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
    if ( (i+j) == 2 ) //allora siamo sulla diagonale secondaria
    cout << matrix[i][j] << " ";
    }
    cout << endl;
    
    return 0;
    }

    Elementi con somma di indici pari (Scacchiera, un elemento sì e uno no)

    Questo codice adatta l’approccio precedente per considerare solo le posizioni con una somma di indici pari.

    La condizione (i + (k - i)) % 2 == 0 verifica se la somma degli indici è pari prima di estrarre e stampare l’elemento corrispondente.

    Puoi utilizzare questa logica per estrarre solo gli elementi desiderati seguendo uno schema “a scacchiera”.

    #include <iostream>
    
    int main() {
    const int SIZE = 3;
    int matrix[SIZE][SIZE] = {{1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}};
    
    std::cout << "Elementi a scacchiera con somma di indici di riga e colonna pari: ";
    
    for (int i = 0; i < SIZE; ++i) {
    for (int j = 0; j < SIZE; ++j) {
    if ((i + j) % 2 == 0) { // Controllo per la somma di indici pari
    std::cout << matrix[i][j] << " ";
    }
    }
    }
    
    std::cout << std::endl;
    
    return 0;
    }

    Elementi dell’anti-diagonale

    Usata ad esempio per la convoluzione, consiste nel prendere la totalità delle diagonali secondarie (che sono nell’esempio 1, poi 2,4, poi 3,5,7).

    Quindi ad esempio: [i][k - i] andrà a prendere [0][3 - 0], [1][3 - 1], [2][3 - 2], quindi 0,3 poi 1,2 e poi 2,1.

    #include <iostream>
    using namespace std;
    
    int main() {
        const int SIZE = 3;
        int matrix[SIZE][SIZE] = {{1, 2, 3},
                                  {4, 5, 6},
                                  {7, 8, 9}};
    
        // Estrazione degli elementi dell'anti-diagonale
        for (int k = 0; k < SIZE; ++k) {
            cout << "Elementi dell'anti-diagonale " << k + 1 << ": ";
    
            for (int i = 0; i <= k; ++i) {
                cout << matrix[i][k - i] << " ";
            }
    
            cout << endl;
        }
    
        return 0;
    }
    

    Elementi anti-diagonale con somma di indici pari

    Ci sbizzarriamo, a questo punto.

    #include <iostream>

    int main() {
    const int SIZE = 3;
    int matrix[SIZE][SIZE] = {{1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}};
    
    // Estrazione degli elementi dell'anti-diagonale con somma di indici pari
    for (int k = 0; k < SIZE; ++k) {
    std::cout << "Elementi dell'anti-diagonale con somma di indici pari " << k + 1 << ": ";
    
    for (int i = 0; i <= k; ++i) {
    if ((i + (k - i)) % 2 == 0) { // Controllo per la somma di indici pari
    std::cout << matrix[i][k - i] << " ";
    }
    }
    
    std::cout << std::endl;
    }
    
    return 0;
    }

    Manipolazione: Esegui somma tra matrici.

    #include <iostream>
    
    const int ROWS = 3;
    const int COLS = 3;
    
    void sumMatrices(int mat1[ROWS][COLS], int mat2[ROWS][COLS], int result[ROWS][COLS]) {
    for (int i = 0; i < ROWS; ++i) {
    for (int j = 0; j < COLS; ++j) {
    result[i][j] = mat1[i][j] + mat2[i][j]; // Somma degli elementi corrispondenti
    }
    }
    }
    
    void printMatrix(int matrix[ROWS][COLS]) {
    for (int i = 0; i < ROWS; ++i) {
    for (int j = 0; j < COLS; ++j) {
    std::cout << matrix[i][j] << " "; // Stampa degli elementi
    }
    std::cout << std::endl;
    }
    }
    
    int main() {
    int matrix1[ROWS][COLS] = {{1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}};
    
    int matrix2[ROWS][COLS] = {{9, 8, 7},
    {6, 5, 4},
    {3, 2, 1}};
    
    int result[ROWS][COLS];
    
    sumMatrices(matrix1, matrix2, result); // Somma delle matrici
    
    std::cout << "Matrice 1:" << std::endl;
    printMatrix(matrix1);
    
    std::cout << "Matrice 2:" << std::endl;
    printMatrix(matrix2);
    
    std::cout << "Risultato della somma:" << std::endl;
    printMatrix(result);
    
    return 0;
    }

    Transposizione: Scambia righe e colonne di una matrice.

    Questo programma definisce una matrice 3×3 (matrix), esegue la trasposizione utilizzando la funzione transposeMatrix, e quindi stampa la matrice originale e la matrice trasposta. La funzione printMatrix è utilizzata per stampare le matrici. Durante la trasposizione, viene invertito il numero di righe e colonne, producendo la matrice trasposta

    #include <iostream>
    
    const int ROWS = 3;
    const int COLS = 3;
    
    void transposeMatrix(int matrix[ROWS][COLS], int result[COLS][ROWS]) {
    for (int i = 0; i < ROWS; ++i) {
    for (int j = 0; j < COLS; ++j) {
    result[j][i] = matrix[i][j]; // Scambio di righe e colonne
    }
    }
    }
    
    void printMatrix(int matrix[ROWS][COLS], int rows, int cols) {
    for (int i = 0; i < rows; ++i) {
    for (int j = 0; j < cols; ++j) {
    std::cout << matrix[i][j] << " "; // Stampa degli elementi
    }
    std::cout << std::endl;
    }
    }
    
    int main() {
    int matrix[ROWS][COLS] = {{1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}};
    
    int transposed[COLS][ROWS];
    
    transposeMatrix(matrix, transposed); // Trasposizione della matrice
    
    std::cout << "Matrice Originale:" << std::endl;
    printMatrix(matrix, ROWS, COLS);
    
    std::cout << "Matrice Trasposta:" << std::endl;
    printMatrix(transposed, COLS, ROWS);
    
    return 0;
    }

    Determinante: Calcola il determinante di una matrice quadrata.

    #include <iostream>
    
    const int SIZE = 3;
    
    int determinant(int matrix[SIZE][SIZE]) {
    int det = 0;
    
    det =
      matrix[0][0] * (matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1])
    - matrix[0][1] * (matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0])
    + matrix[0][2] * (matrix[1][0] * matrix[2][1] - matrix[1][1] * matrix[2][0]);
    
    return det;
    }
    
    int main() {
    int matrix[SIZE][SIZE] = {{1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}};
    
    int det = determinant(matrix); // Calcolo del determinante
    
    std::cout << "Il determinante della matrice è: " << det << std::endl;
    
    return 0;
    }

    Inversione: Trova l’inversa di una matrice quadrata.

    #include <iostream>
    
    const int SIZE = 3;
    
    double determinant(int matrix[SIZE][SIZE]) {
    double det = 0;
    
    det = matrix[0][0] * (matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1])
    - matrix[0][1] * (matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0])
    + matrix[0][2] * (matrix[1][0] * matrix[2][1] - matrix[1][1] * matrix[2][0]);
    
    return det;
    }
    
    void inverseMatrix(int matrix[SIZE][SIZE], double inverse[SIZE][SIZE]) {
    double det = determinant(matrix);
    
    if (det == 0) {
    std::cout << "La matrice non è invertibile (determinante zero)." << std::endl;
    return;
    }
    
    double invDet = 1.0 / det;
    
    inverse[0][0] = (matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1]) * invDet;
    inverse[0][1] = -(matrix[0][1] * matrix[2][2] - matrix[0][2] * matrix[2][1]) * invDet;
    inverse[0][2] = (matrix[0][1] * matrix[1][2] - matrix[0][2] * matrix[1][1]) * invDet;
    inverse[1][0] = -(matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0]) * invDet;
    inverse[1][1] = (matrix[0][0] * matrix[2][2] - matrix[0][2] * matrix[2][0]) * invDet;
    inverse[1][2] = -(matrix[0][0
  • Come tracciare un pacco postale

    Come tracciare un pacco postale

    Se ti stai chiedendo come seguire il tuo pacco attraverso il labirinto delle spedizioni, le Poste Italiane sono qui per aiutarti a seguire ogni passo del suo viaggio! Per iniziare, è fondamentale comprendere che ogni spedizione viene assegnata a un numero unico chiamato “numero di tracciamento”. Questo numero è la tua chiave d’accesso al mondo incantato delle informazioni sulla spedizione.

    Ora, per trovare questo prezioso numero, dovrai fare affidamento sul mittente della tua spedizione, che potrebbe essere un negozio online come Shein, Amazon o un altro rivenditore. Spesso, questo numero di tracciamento viene inviato via email o viene visualizzato sul sito web del venditore dopo aver completato l’ordine. Assicurati di conservarlo al sicuro!

    Una volta che hai il numero di tracciamento in mano, è il momento di immergerti nel magico mondo del tracciamento delle spedizioni con le Poste Italiane. Dirigiti al sito ufficiale delle Poste Italiane e cerca la sezione dedicata al “Tracciamento Spedizioni”. Una volta lì, inserisci il tuo numero di tracciamento nella casella apposita e premi il tasto “Cerca”.

    Adesso preparati, perché il tuo viaggio nel mondo delle spedizioni sta per iniziare! Dopo aver premuto il tasto “Cerca”, verrai trasportato in un mondo di informazioni dove potrai vedere lo stato attuale della tua spedizione. Questo potrebbe includere dettagli come la data di spedizione, le tappe attraverso cui è passato il pacco e persino una stima della data di consegna.

    Ecco fatto! Ora sei un esperto nel tracciamento delle spedizioni con le Poste Italiane. Ricorda, la chiave per il successo è avere sempre a portata di mano il numero di tracciamento e affidarsi al potere del tracciamento online per guidarti attraverso il meraviglioso viaggio del tuo pacco fino a casa tua!