Mirko Benedetti

  • Intelligenza Artificiale, una mia semplice Introduzione

    In questo articolo approfondirò meglio alcuni dei punti che sono solitamente sbandierati a proposito dell’intelligenza artificiale. Sono Mirko Benedetti, un esperto informatico nonché copywriter, e assieme vedremo alcuni di questi aspetti molto interessanti.

    L’intelligenza artificiale è detta AI in lingua inglese e IA in quella italiana

    Sono state dette molte cose sull’intelligenza artificiale che dimostrano quanto bisogno ci sia di novità. Ma soprattutto, di tanto in tanto si ha bisogno di un nuovo prodotto o servizio per smuovere il mercato.

    Mirko Benedetti, Intelligenza Artificiale Introduzione

    L’innovazione tecnologica è in grado di servire bene il genere umano, fornendogli occasione per vivere una vita più appagante e sicura.

    Di intelligenza artificiale se ne parla quanto meno dagli anni ’70 del novecento, ma è ora che sta avendo la sua reale implementazione e concretezza.

    Ciò che si sente nei media, Internet compreso, rasenta spesso la banalità e la superficialità. In effetti non è facile trattare un tema così complesso con parole semplici. Cercherò io di farlo.

    Premetto che questo articolo è scritto da me, ovvero un essere umano, con una buona dose di preparazione tecnica, ma ancora tanto da esplorare. Facciamolo insieme.

    Avrei potuto ricorrere anch’io all’IA per farmi scrivere qualcosa di plausibile e forse far trasparire addirittura la mia vera opinione, essendo molto bravo ad usarla e soprattutto disponendo degli strumenti adatti.

    Quali sono i limiti dell’IA, dove si può arrivare con essa

    Se da una parte c’è chi ha interesse a smerciare, se mi consentite questo termine un po’ cinico, dall’altra c’è chi vuole capire meglio.

    Per fare questo vi consiglio un ottimo sito del bravissimo Raffaele Gaito, se proprio vi interessano le cose tecniche in maniera approfondita. Non è una risorsa gratuita, ma un vero e proprio corso tenuto da Raffaele: raffaelegaito.com/ia360/.

    Tutti i più grossi Guru dell’informatica parlano dell’IA in maniera che a me pare adeguata. Prendi ad esempio anche Salvatore Aranzulla o Camisani Calzolari.

    La cosa che vi consiglio di fare, prima di studiarvi tutta la teoria, è semplicemente sporcarsi le mani e provare qualcosa sul motore di ricerca Bing: bing.com/chat.

    Come utilizzo l’intelligenza artificiale

    Per quello che mi riguarda rimango fedele allo spirito che ha animato Tim-Berners Lee, il creatore del Web. Cerchiamo di non confondere il Web con Internet di per sé, il Web come ipertesto serve soprattutto a guadagnare conoscenza.

    L’intelligenza artificiale è in grado di prendere decisioni esperte basandosi su un allenamento di tipo statistico e inferenziale.

    L’AI migliora la qualità e semplifica la vita di molti che si occupano di lavorazioni industriali, diagnosi mediche ed altro. Questi sono solo alcuni degli scopi non altro che nobili dell’IA.

    Poi esistono degli usi discutibili che se ne fa di essa, ovvero che riempia i compiti scritti degli studenti piuttosto che rediga l’articolo del giornalista.

    In ultimo ci sono degli usi assolutamente contrari alla morale di qualsiasi essere umano, qualunque sia la sua religione o credo politico. Sono usi che vanno dal confezionare video di personaggi che incontrano la nostra rivalità, umiliarli e schernirli facendogli dire e fare ciò che si vuole, a peggiori scopi ancora.

    Difficile è capire l’inganno, soprattutto se si è un po’ distratti e il video è fatto molto bene.

    In questo articolo non vedrete alcuno snippet di codice

    Questo perché pur essendo un programmatore ben ferrato, non ho voluto mettere le mani su del codice, appunto per fare in modo che il fenomeno si evolva e io intervenga quando ormai le API saranno più semplici e più produttive.

    Detto questo vi svelo ciò che ho in serbo per voi come riflessione. Mi ricordo che quando dovetti spiegare a gente nata negli anni ’60, quasi boomer, il motore di ricerca, almeno un paio di persone non esperte mi chiesero se si potesse porre delle domande direttamente a Google.

    La risposta fu no, almeno per una decina d’anni, cioè da fine anni ’90 al tardo inizio del 2000, quando usciva l’algoritmo Humming Bird di Google.

    Un motore di ricerca è come un setaccio in cui vengono fatti dei fori, che sarebbero le keyword inserite nel campo di ricerca. In base a questi fori, viene filtrata una serie di pagine che contengono le parole chiave.

    Ma cosa significa quello che gli chiedono gli utenti?

    Di per sé il motore di ricerca aveva ben poca intelligenza, il passo successivo è stato applicare algoritmi in grado di estrarre il significato di ciò che gli viene chiesto.

    Nasce così il Web semantico dove il motore di ricerca estrae il significato sia di ciò che è presente nel suo database sia della domanda che gli poniamo. Dunque fornisce una risposta molto più precisa, ovvero molto più pertinente, rispetto alla domanda effettuata dall’utente.

    Dal punto di vista dell’utente, bisognerebbe ormai dare per scontato poter fare una domanda al motore di ricerca e ottenere una risposta.

    L’intelligenza artificiale dunque può essere usata anche per automazione, diagnosi medica, generazione di contenuti scritti, audio e video.

    Tutto fantastico, ma la mia opinione è che il vero passo avanti per l’umanità sia il poter avere informazioni corrette in breve tempo, dopodiché usare il proprio cervello per fare tutto il resto.

    Ovvero la vera intelligenza artificiale utile, è quella in grado di ottenere un significato da ciò che dice un essere umano e generare una risposta con significato pertinente e corretto, quindi soddisfacente.

    Ecco l’evoluzione del Web e dei motori di ricerca

    L’intelligenza artificiale dunque, che finalmente accontenta anche i boomer o chi non è tanto avvezzo all’informatica, ora si pone nel segmento di marketing dei motori di ricerca.

    Questo argomento ti interessa e vuoi ampliare la tua conoscenza? Sei libero o libera di contattarmi per avere ulteriori dettagli e per discuterne con me, esprimendo le tue idee in merito.

    Ti è piaciuto questo post? Leggi tutto l’articolo con i commenti, commenta e condividi nei tuoi social network preferiti: mi udiranno meglio. Grazie di cuore!

  • Un’introduzione allo Sviluppo Web e alla Programmazione

    Salve a tutti! Sono Mirko Benedetti, un esperto informatico nonché copywriter, e vi guiderò gradualmente nel percorso di scoperta del Web. Nel presente articolo, “Un’introduzione allo sviluppo Web” approfondirò alcune delle tematiche più frequenti in questo ambito.

    Una breve, ma Esaustiva Introduzione Storica e Tecnica del Web e di Internet

    Lo sviluppo Web ha avuto il suo apice in italia sul finire degli anni ’90, quando una miriade di utenti non qualificati e non esperti, si è riversata su di esso.

    Mirko Benedetti, Un'introduzione allo Sviluppo Web

    Questo ha creato un mare di informazioni di tipo pluralistico, ma anche intricato e difficilmente verificabile.

    Con gli anni 2000 si è originato un fenomeno che prende mossa dal Web e sfocia nello sviluppo mobile. Dunque il focus, si è rivolto verso l’utenza, che è divenuta sempre più esigente e ha cercato contenuti più facilmente e velocemente fruibili.

    Dal Web informativo e dopo la bolla ‘dot com’ degli anni successivi, si è passati allo sviluppo delle App e delle ‘Web App’, con l’introduzione nel mercato di dispositivi sempre più performanti e duttili, gli smartphone.

    A questo punto, è entrata a far parte della vita dell’utente la pubblicità mirata, con la profilazione delle abitudini in rete attraverso i Cookie. Questi piccoli elementi di testo vengono memorizzati nel proprio dispositivo e sono poi in grado di essere letti da chi li emette, cioè i siti che visitiamo.

    Introduzione allo Sviluppo Web, Le Ultime Novità Tecnologiche

    Altra ondata di novità è la nascita del Web semantico e interattivo. I Chatbot sono adesso in grado di acquisire conoscenza in maniera statistica, su enormi basi dati presenti nel Web, per poi riversarla in risposta automatica alle domande poste dall’utente.

    Dal punto di vista del programmatore, questo ha visto l’avvicendarsi di tecnologie sempre più complesse che sono andate man mano raffinandosi.

    Si è passati in ordine sparso, dall’HTML a JavaScript, PHP e Java solo per citarne alcuni; dall’ipertesto ai media tradizionali come il video e l’audio, non tralasciando mondi virtuali creati con la computer grafica, il gioco on-line. Per poi arrivare al codice generato dalla IA.

    Oggigiorno la pubblicità e i servizi sono le fonti di monetizzazione maggiore del mondo Web. Rimane promettente, ma non affermata, la creazione di valuta virtuale come i Bitcoin.

    Si è invece affermata, oltre al mero sviluppo, la figura dell’Usability Tester e del Marketer. Questi due personaggi lavorano sul rendere il prodotto informatico più rispondente ai bisogni umani. Non dimentichiamo neanche la crociata del diritto on-line, per la Privacy, i diritti d’autore ed altro ancora.

    Si è passati dal programmare al progettare il Web, perchè si sono inserite nuove figure non strettamente tecniche nel senso informatico, ma molto più legate alla vita quotidiana, come l’intrattenimento, la ristorazione, la moda o i viaggi.

    Dal sito informativo si è dunque passati al sito interattivo e commerciale, con la creazione di grandi realtà di vendita di beni materiali e distribuzione organizzata su vasta scala, come la società fondata da Jeff Bezos.

    Introduzione allo Sviluppo Web, la Figura dello Sviluppatore

    Il programmatore diviene quindi una figura non più necessariamente ‘Core Business’ in ogni ambito informatico, anche perché si affermano professionalità complementari e trasversali.

    Con l’avvento della pandemia del 2019, si è sempre più affermato il lavoro domestico anche per chi esegue mansioni informatiche, con tutte le sue complicanze relazionali.

    D’altro canto, si è verificato un fenomeno che aveva preso piede già negli anni precedenti alla pandemia, ovvero la creazione di gruppi sociali e siti dedicati a questo scopo come il social network creato da Mark Zuckerberg.

    Non cito altri protagonisti, come gli inventori dei sistemi operativi o dei motori di ricerca. Questo, non perchè non abbiano avuto importanza nello sviluppo Web, ma perchè ne stanno semplicemente alla base. Li citerò in articoli più pertinenti, se questo dovesse risultarmi sufficientemente esemplificativo.

    L’ultima frontiera dello sviluppo Web attiene alla politica e la salute, la pubblica amministrazione.

    Anche in questi settori come lo era negli altri, è utile attuare un approccio integrato che porta ad un prodotto performante, grazie ai tecnici, ma anche convincente, grazie ai Marketer.

    Il prodotto deve essere soprattutto utile, grazie ad un approccio integrato tra on-line e off-line. Ciò lo si realizza attraverso un processo che va al di là della progettazione, ma che comprende anche la strategia.

    Un’introduzione allo Sviluppo Web, Collegamenti per Approfondire

    Se vi ho convinto a diventare sviluppatori Web e vi ho orientato, ecco alcune tecnologie che vi consiglio per iniziare:

    Ecco un esempio di Codice Scritto per Symfony

    // src/Controller/NumeroFortunatoController.php
    
    namespace App\Controller;
    use Symfony\Component\HttpFoundation\Response;
    
    class NumeroFortunatoController
    {
        public function numero(): Response
        {
            $numero = random_int(0, 100);
            return new Response(
                '<html><body>Numero Fortunato: '.$numero.'</body></html>'
            );
        }
    }

    La prima riga di codice è un commento, introdotto dalla doppia barra, un commento su singola linea, si possono creare anche commenti su più linee.

    Il commento serve al programmatore per avere una nota mnemonica, in questo caso ci ricorda che il nostro programma è scritto su un file che sta nella directory ‘src/Controller’ del progetto Symfony.

    Il nome del file ha estensione ‘php’, la quale rappresenta il linguaggio di programmazione usato da Symfony. Questo nome deve corrispondere al nome della classe, la classe è il mattone fondamentale sul quale si fonda il Framework, perchè è basato sugli oggetti.

    Un’introduzione allo Sviluppo Web: La Programmazione ad Oggetti

    La programmazione ad oggetti realizza l’astrazione fra l’implementazione vera e propria e il concetto che vogliamo tradurre in codice.

    All’interno della nostra classe viene utilizzato un Namespace, il quale non è altro che una suddivisione per aree semantiche o di scopo delle classi del programma.

    In questo caso lo scopo della classe è quella di fare da Controller, quindi gli si da un nome che termina per ‘controller’.

    Il Controller è la parte fondamentale del framework, ovvero quella che decide cosa fare in base all’indirizzo ‘URL’ chiamato dall’utente.

    In questo caso, il controller vuole restituire un messaggio con un numero casuale. Per fare questo, esso utilizza la classe di Symfony ‘Response’, introdotta dal costrutto ‘use’.

    La nostra classe, introdotta dal costrutto ‘class’, ha un metodo che abbiamo chiamato ‘numero’, in modo da esemplificare meglio.

    Un’introduzione allo Sviluppo Web, scegliere i Nomi nella Programmazione

    Si consiglia però di utilizzare nomi inglesi ‘parlanti’, che spieghino cioè che cosa rappresentano. I nostri nomi dovrebbero comunque essere dissimili da quelli usati dal Framework o dal linguaggio in questione. Questo per non creare confusione tra ciò che abbiamo scritto noi e ciò che è già presente in essi. La cosa migliore poi è essere uniformi nei nostri nomi.

    Nel nostro codice, il metodo ‘numero’ è una funzione della classe, ovvero una porzione di codice che esegue un comando ben specificato. Il metodo ha una sua variabile interna chiamata ‘$numero’.

    Questa variabile viene passata ad un oggetto che viene istanziato attraverso il costrutto ‘new’, questo oggetto viene restituito dal metodo attraverso il costrutto ‘return’.

    Il tipo di questo oggetto, ovvero la classe da cui è istanziato, è ‘Response’ e viene indicato nella firma del metodo, dopo i due punti nella sua dichiarazione. Il metodo è dichiarato come pubblico col costrutto ‘public’, ovvero può essere richiamato dall’esterno della classe.

    Soltanto un altro po’ di teoria

    La differenza tra classe e oggetto sta nel fatto che la classe ne è il suo prototipo, mentre l’oggetto assume dei valori specifici in memoria, detti stato. Entrambi hanno la possibilità di andare in esecuzione.

    Altra cosa da capire è il parametro passato al costruttore del nuovo oggetto di tipo ‘Response’. Si tratta di codice HTML in cui viene interpolata la variabile ‘$numero’.

    Il costruttore è una funzione che istanzia un oggetto a partire da un tipo, ovvero da una classe.

    In ultimo sottolineo il concetto di ereditarietà e polimorfismo nella programmazione ad oggetti, dove alcune classi ereditano gli stessi attributi da classi genitori, avendo la possibilità di introdurre delle modifiche.

    Questo argomento ti interessa e vuoi ampliare la tua conoscenza? Sei libero o libera di contattarmi per avere ulteriori dettagli e per discuterne con me, esprimendo le tue idee in merito.

    Ti è piaciuto questo post? Leggi tutto l’articolo con i commenti, commenta e condividi nei tuoi social network preferiti: mi udiranno meglio. Grazie di cuore!