Buy me a coffeeBuy me a coffee

Verso il fallimento dell'intelligenza artificiale

Ultimo aggiornamento: 10 Febbraio 2020

Per approfondimenti su questo tema:

tratto da corrispondenza privata:

«[...] Interessante l'analisi che fa Federico Fagin. Concordo su tutto tranne però sul finale. Anche lui si illude che il problema si possa ridurre alla fine su come si usa la tecnologia. "Il vero pericolo è dato dagli usi malevoli dell’intelligenza artificiale." Invece il vero pericolo è la tecnologia stessa qualunque uso se ne faccia. Almeno la storia così ci ha dimostrato.

Inoltre io credo, che la scienza abbandonerà nel tempo gli studi sull'intelligenza artificiale partendo da materia inerte, per l'impossibilità di costruire robot uguali agli esseri umani, così come chiaramente ci spiega Fagin, per intraprendere gli esperimenti che hanno lo scopo di costruire macchine viventi, cioè partendo da materiale vivente (cellule staminali). Su questo la biogenetica è abbastanza avanti nella ricerca.

Da sempre l'uomo ha avuto il desiderio di creare se stesso, di essere come un Dio creatore di tutte le cose.

La tecnologia ora è si è avvicinata con la biogenetica a realizzare questo sogno. L'uomo vuole creare a sua immagine  e somiglianza l'uomo, con una differenza essenziale rispetto ad oggi, di programmare nei laboratori un uomo con caratteristiche predeterminate (modificando il DNA) e non semplicemente ereditate come succede oggi. [...]»

«[...] la vita è già intelligente. Cercare di forzare la sua intelligenza connaturata in una direzione che non le è propria, significa renderla stupida. Questa è una legge universale: non vale solo nell’educazione, dove il danno inflitto dal voler forzare i discenti su discipline lontane dalla loro sensibilità è evidente, ma vale anche per la cosiddetta intelligenza artificiale, dove l’uso di cellule vive per scopi diversi da quelli per cui natura le ha concepite non potrà che portare guai seri. Anche le pene inflitte dalle manipolazioni genetiche a piante e animali sono tutto fuorché una dimostrazione di intelligenza, anzi. Mi pare che ci siano tutte le premesse affinché l’intelligenza artificiale possa rivelarsi un grande fallimento. Forse, quando ciò accadrà, cominceremo a sviluppare più rispetto e devozione per la vita così com’è. [...]»

«[...] Se adesso mi addormentassi e poi mi risvegliassi tra mille anni, la prima cosa che chiederei è se le persone sono felici di vivere e in armonia tra di loro con amorevole gentilezza, senza che qualcuno cerchi di imporsi sugli altri. [...]»

(Giulio Ripa e Francesco Galgani, 7-9 febbraio 2020)

È possibile il reverse engineering di un'app fatta con Codename One per risalire al codice sorgente?

Ultimo aggiornamento: 29 Dicembre 2019
> INDICE DEL CORSO

Avvertenza: questa pagina non rientra nel modulo introduttivo del corso. E' rivolta a chi ha già un po' di esperienza con Codename One.

Argomenti:


È possibile il reverse engineering di un'app fatta con Codename One per risalire al codice sorgente?

Risposta breve: no, in generale la protezione del codice offerta da Codename One è robusta (nel proseguo di questo articolo analizzo le app Android, iOS e Javascript fatte con Codename One), ma ciò non preclude comunque ad un attaccante di studiarsi quel che riesce a decompilare e di provare a modificarlo. Crackers e hackers sono molto appassionati nella loro "professione" e sanno già molto più di quanto si possa insegnare loro: sono capaci di starsene per ore e giorni davanti a un computer finché non riescono a impadronirsi di un sistema. Non sarebbe la prima volta che un ragazzo o una ragazza adolescenti riescano a entrare in sistemi iper-protetti. Neanche i big dell'informatica sono riusciti a prevenire importanti fughe di dati riservati.

Risposta lunga: guardando più in dettaglio la questione, con specifico riferimento alle app fatte con Codename One, posso osservare che:

Negli incasinamenti di codice… trovare una direzione

Ultimo aggiornamento: 2 Gennaio 2020
> INDICE DEL CORSO

Avvertenza: questa pagina non rientra nel modulo introduttivo del corso. E' rivolta a chi ha già un po' di esperienza con Codename One.

How to write good codeDurante le nostre attività di coding, è normale dover modificare il codice scritto da noi (anche a distanza di tempo) o da altri per aggiungere, togliere o modificare funzionalità, correggere bug, tentare migliorie. Il problema è che spesso è difficile capire da che parte iniziare e come proseguire, specialmente su progetti complessi fatti da centinaia di classi e da una moltitudine di metodi interagenti tra di loro. Provo qui a riunire alcune mie riflessioni e indicazioni, riferite alle app multipiattaforma fatte con Codename One, con l’auspicio che almeno uno dei punti sotto indicati possa tornare utile a qualcuno.

In futuro potrei ritoccare questa lista o aggiungere suggerimenti che qualcuno dei miei lettori vorrà condividere. Per il momento non inserisco esempi di codice, questa lista è una sorta di brainstorming personale che regalo ai miei lettori.

Sviluppare app multipiattaforma - Indice del corso introduttivo

Ultimo aggiornamento: 18 Maggio 2020

Questo è un corso introduttivo molto discorsivo, per chi parte da zero, con esercizi finali, principalmente focalizzato su Codename One.
E' un corso in divenire, nel quale raccolgo articoli scritti in momenti diversi. Probabilmente pubblicherò altri articoli.

Presentazione di questo corso (pubblicata sul blog di Codename One):
"Preliminary course for mobile cross-platform development with Java and Codename One"

Presentazione dell'autore:
"Le mie attività di sviluppatore e di didattica del software".

Modulo Introduttivo

Approfondimenti

Riflessioni varie

Notizie

Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (quarta parte)

Ultimo aggiornamento: 21 Dicembre 2019
> INDICE DEL CORSO
< Articolo precedente: Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (terza parte)

Creazione di un'app con Codename OneNel precedente articolo, abbiamo visto quel che occorre, a livello di hardware, software, servizi cloud, manuali, ecc., per iniziare lo sviluppo di app multipiattaforma con Codename One + Java.

Qui do per scontato che tu abbia un'installazione di Netbeans + Oracle Java 8 + Codename One plugin, come da precedenti indicazioni. Riprendo il problema già visto nella seconda parte, quello del calcolo dello spazio percorso da un'automobile, per trasformarlo in un'app molto semplice, per Android e iPhone, qui mostrata nella foto.

Argomenti:


Idee di base della programmazione ad oggetti e il nostro problema dell'automobile

Ci tengo a sottolineare il carattere introduttivo di quanto segue, rimandando alle già citate guide per gli opportuni approfondimenti.

Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (terza parte)

Ultimo aggiornamento: 21 Dicembre 2019
> INDICE DEL CORSO
< Articolo precedente: Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (seconda parte)

Nel precedente articolo, abbiamo visto un po' di codice iniziale, un assaggino di Java. Qui, invece, mi soffermo su ciò che è necessario prima di andare avanti, al fine di evitare smarrimenti o sgradite sorprese strada facendo.

Argomenti:


Gli attrezzi del mestiere, ovvero la (costosa) dotazione software, hardware e cloud

Per sviluppare app multipiattaforma, un buon ambiente di lavoro potrebbe essere il seguente:

Malattie infettive debellate senza vaccini e malattie create dai vaccini

Ultimo aggiornamento: 13 Dicembre 2019

Malattie infettive (un tempo mortali) debellate senza vaccini, video "COMBATTIAMO LA PAURA - Dario Miedico, a Pensiero Libero - 30/11/2019", fonte:

DOWNLOAD MP4

Riguardo ai dati Istat citati nel video, riporto un grafico con un asse temporale più lungo, che ho preso sul sito ufficiale dell'Istat, intitolato "La mortalità dei bambini ieri e oggi", scritto in collaborazione con l'Unicef (fonte).

A pag. 22, si trova il grafico "Tasso di mortalità sotto i 5 anni in Italia dal 1895 al 2008 - Morbillo", qui riportato con l'aggiunta di una freccia per indicare l'anno in cui è stato reso disponibile il primo vaccino per il morbillo (1963 negli Stati Uniti, in Italia solo successivamente nel 1976, per essere poi raccomandato dal nostro Ministero della Salute nel 1979, quando ormai la malattia - senza vaccino - non era più in problema già da tempo):

Malattie create dai vaccini (a cominciare dalla patologia della scienza, gravemente infettata da falsità, ormai quasi morente), video "La ricerca imbavagliata - Stefano Montanari e Antonietta Gatti", fonte:

DOWNLOAD MP4

Morti da vaccinoComunque i morti da vaccino ci sono e come se ci sono. La foto qui a destra è stata scattata a Verona (fonte)

Rimando ai miei precedenti articoli:

Come scrisse Marcello Pamio: «[...] La cecità dell’essere umano e l’incapacità della “scienza” da lui stesso creata ci hanno impedito di osservare la Natura e la sua perfezione. Ed oggi rimaniamo ciechi di fronte ad evidenze impossibili da non vedere. Interveniamo, senza alcun rispetto, attraverso la chimica in un sistema che usa la chimica come secondo messaggero, senza neppure conoscerne meccanismi, funzionamento e regole. E’ lecito, o forse no qualora vi siano dei sintomi, ma in assenza di un problema alcuno, introdurre sostanze chimiche nel corpo è, se non altro, privo di ogni razionalità. [...]»

Francesco Galgani,
13 dicembre 2019

Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (seconda parte)

Ultimo aggiornamento: 20 Dicembre 2019
> INDICE DEL CORSO
< Articolo precedente: Sviluppare app multipiattaforma - Le basi: l’algoritmo e il codice (prima parte)

Nel precedente articolo, ho sinteticamente concettualizzato un algoritmo come un’entità che fa qualcosa e, nella pratica quotidiana, questa entità non è altro che un "pezzo" di codice (detto in maniera estremamente grossolana, ma concreta). Ho poi meglio precisato che un algoritmo è un elenco di istruzioni eseguibili da una macchina, in un tempo finito, per fare una determinata cosa. Non tutti i problemi hanno un algoritmo risolutivo, non sempre tra possibili algoritmi diversi per affrontare lo stesso problema è facile capire qual è il migliore e non sempre ci sono indicazioni o documentazione adeguate sui problemi che dobbiamo affrontare.

In questo articolo faremo un primo assaggio del codice, partendo dal caso semplice del calcolo della spazio percorso da un'automobile.

Argomenti:


Matematica e algoritmi: l'arte perduta di discernere i dati, le incognite e l'algoritmo

Ho un caro ricordo delle ore di matematica alle scuole elementari e medie, sia perché parte della matematica, soprattutto quella algebrica, mi ha sempre affascinato (per chi non lo conosce, segnalo il mio sito www.storia-matematica.net), sia perché l’approccio matematico scolastico da me conosciuto è molto in sintonia con il concetto di algoritmo. Ricordo ancora la maestra alle elementari che, per insegnarci come risolvere i problemi di matematica, dopo aver dato la descrizione del problema, procedeva sempre nell’indicarci quali fossero i dati e quali le incognite, prima di iniziare lo svolgimento vero e proprio; da noi bambini e bambine pretendeva la stessa cosa. Anche alle scuole medie il metodo era sempre lo stesso: dati, incognite e svolgimento.

Nel proseguo dei miei studi, però, già alle scuole superiori l’approccio di identificare dati e incognite, di per sé al limite del banale, ma sempre utile per modellizzare i problemi, andava sfumando, per poi sparire completamente all’università, dove non ho mai visto un docente affrontare un problema matematico (o affrontabile con la matematica, ad es. un problema di fisica) identificando per prima cosa quali fossero i dati e quali le incognite. Ognuno aveva il suo approccio, ognuno faceva come meglio gli pareva… peccato, perché una delle principali cause di smarrimento nella risoluzione dei problemi (compresi i problemi di programmazione) è proprio in una modellizzazione sbagliata o in assunzioni sbagliate. In questo senso, nel titolo di questo paragrafo, ho considerato il discernimento di dati, incognite e svolgimento come un'arte perduta.

Per scrivere algoritmi al computer, è meglio procedere come alle scuole elementari. Faccio un esempio pratico.

Problema:
Un'automobile procede alla velocità costante di 108 km/h. Quanti metri percorre in 10 minuti?

Pagine

Abbonamento a Informatica Libera - Blog di Francesco Galgani RSS