Roberto Romagnoli a.k.a. _Ryoga777_

Developer / Blogger / Geek


Contattami
Cosa è la Blockchain

Cosa è la Blockchain


Posted By on 10 Ago, 2022

Negli ultimi tempi si fa un gran parlare di blockchain. Di solito, questo termine compare quando si parla di criptovalute, ma la tecnologia blockchain non è strettamente legata alla fintech. Blockchain è un sistema sicuro di cifratura delle informazioni che rende impossibile, o quantomeno molto difficile, hackerarle. In sostanza, si tratta di un registro digitale di transazioni duplicato e distribuito in blocchi nell’intera rete di computer connessi. Ogni blocco contiene un certo numero di transazioni e ogni volta che una nuova transazione viene registrata, il relativo record viene aggiunto su tutti i blocchi.

Questo sistema ha quindi come caratteristica la decentralizzazione e consente di non doversi appoggiare nessun ente di controllo centrale. Si basa su un concetto di fiducia per cui ogni nuovo record deve essere approvato da tutti i blocchi della catena. Ogni transazione viene registrata con una firma crittografica immutabile chiamata hash.

La Blockchain nella finanza

Senza la necessità di un controllo da parte di terzi, questo sistema applicato alla finanza segna irrimediabilmente la fine del concetto di banca come lo conosciamo noi. Ciò significa, per il consumatore finale, niente commissioni, niente controlli, nessun pericolo che la banca fallisca e i risparmi spariscano. In passato, prima della blockchain ci sono stati molti tentativi di creazione di valute digitali, ma sono sempre fallite.

Il problema principale era uno: la fiducia. Se una persona crea una moneta chiamata X e la vende sul mercato, chi mi assicura che se compro 1.000 Euro di X, questa persona poi non sparisca coi miei soldi? La soluzione a questo problema l’ha trovata Bitcoin, proprio con la tecnologia blockchain. La differenza sostanziale tra un database blockchain e un database tradizionale tipo SQL è che su quest’ultimo c’è sempre una persona addetta al controllo e all’aggiornamento. E questa persona può cambiare i record a suo piacimento. Con la blockchain invece, il database è distribuito tra tutti i partecipanti in maniera uguale e l’aggiornamento di un solo record incide su tutti i blocchi della catena. Questo rende i Bitcoin (ma anche tutte le altre criptovalute) impossibili da clonare, copiare o hackerare.

Come funziona la blockchain

Nel seguente schema, preso da Webeconomia, viene illustrato il funzionamento della blockchain. In sostanza si tratta di effettuare la transazione e registrarla in un blocco. Dopodiché verrà effettuata una verifica, cioè tutti i blocchi dovranno approvare la transazione. Una volta che la verifica avrà restituito un risultato positivo, la transazione viene criptata tramite un hash e viene eseguita la registrazione definitiva del record su tutti i blocchi.

La blockchain applicata oltre la finanza: la Cybersecurity

Come detto in precedenza, il termine Blockchain viene spesso associato al mondo della finanza tecnologica. Quindi di solito si parla di smart-banking, pagamenti digitali o trasferimenti di denaro e altri prodotti finanziari associati (ad esempio: le assicurazioni). Ma le applicazioni pratiche legate all’uso di questa tecnologia sono ben più varie. Basti pensare che con un sistema di sicurezza così rigido, possiamo lavorare anche sulla Cybersecurity. Immaginate di dover inviare un’email molto importante contenente dei dati riservati. Col classico sistema client-server, questi dati passeranno comunque per un computer centrale. In questo modo il rischio che qualcuno possa intercettarli è alto. Mentre con il sistema blockchain, chi intercetta il messaggio, dovrà avere accesso a tutti i computer su cui è registrato. Che possono essere anche diecimila. Un po’ difficile, no?

Autenticazione di documenti tramite blockchain

La blockchain potrà sostituire anche la vecchia “marca da bollo” del notaio. Autenticando ogni documento, certificato o attestato con la blockchain potremo avere certificati, contratti, attestati, ma anche diplomi e lauree digitali. Ciò assicurerebbe maggiore trasparenza e eviterebbe l’enorme lavoro di controllo di documenti cartacei, con conseguente risparmio per l’ambiente.

E-Voting e nuova democrazia

Immaginate lo stesso sistema applicato alle elezioni. Ogni record rappresenterebbe un voto e il sistema blockchain eviterebbe brogli elettorali di qualsiasi tipo. E anche voti di scambio, in quanto le transazioni non possono essere né tracciate, né salvate su dispositivo tramite screenshot. La democrazia con questo sistema si rinforzerebbe.

Altre applicazioni pratiche

Le applicazioni non si limitano a quelle elencate. Possiamo estendere la blockchain alle IA, al Networking e all’ IoT, al Car Sharing, alla Sanità, all’archiviazione Cloud…ogni campo di applicazione se ci pensiamo può essere stravolto dalla blockchain. Detto tutto questo, allora possiamo tranquillamente affermare che la Blockchain è l’internet del futuro.

Read More

Questo non sarà il solito articolo su come fa rcrescere il proprio Social Network per monetizzare; ma vi suggerirò proprio come costruirne uno, dal lato programmatore. Nell’era dei Social Network, è bene che un aspirante sviluppatore o programmatore sappia come ne funziona uno. Vuoi perché un giorno potreste ritrovarvi a lavorare per Meta, o LinkedIn (magari), vuoi perché vi ritroverete a svilupparne uno da soli. Oltretutto, la tendenza per il futuro sembra convergere tutta sui Social. Già oggi esistono Social Network dedicati a quasi ogni aspetto della vita quotidiana. Ci sono Social generici, come Facebook e Twitter, Social per foto/video come Instagram e TikTok, Social professionali come LinkedIn, Social per gamer come Ludomedia e Social aggregatori, come ComeHome o NextDoor. Sembra che ciò che un tempo si faceva tra portali con Forum e mIRC, oggi si sia spostato sui Social Network. E le aziende iniziano ad investirci. Ma per un programmatore, come funziona un Social Network? Quali sono i linguaggi di programmazione da usare, quali framework? Quali competenze servono per crearne uno? Scopriamolo.

È tutta una questione di database

Quando pensiamo ai Social Netowrk, la prima immagine che ci viene in mente è il sito “finito”. In generale, quando si parla di qualsiasi sito si pensa al suo front-end, ovvero la resa finale che esso ha sul nostro browser. Ma i siti hanno anche un back-end, ovvero il codice con cui sono realizzati, che rappresenta il motore che li fa girare. Il back-end di un Social Network riceve le richieste dagli utenti e fornisce come risposta una pagina html autogenerata. Questa pagina può rappresentare un semplice profilo utente, un feed con i post degli utenti collegati, la pagina dei messaggi privati, un album di foto etc.

Il sistema che rende tutto possibile è basato sui database. Se togliamo ai Social Network la parte visuale, spogliandoli da HTML e CSS, vediamo un cumulo di codice che non fa che collegare tra loro i record di un enorme database degli utenti. In sostanza:

  • L’utente manda una richiesta HTTP al server del Social Network;
  • Il server elabora la richiesta;
  • Se la richiesta è una HTTP POST con, ad esempio, user e password (o email e password), allora il server cerca nel database una corrispondenza e fa loggare l’utente;
  • Se invece la richiesta è una HTTP GET, il server controlla se negli URL presenti nella sua lista, esiste la pagina richiesta dall’utente;
  • Il server poi, si collega al database utenti e ricava dai record tutte le informazioni di cui ha bisogno;
  • Dopo aver recuperato le informazioni dai record del database, il server cerca il template adatto (configurato su un apposito file) e genera un file html da restituire all’utente che ha fatto la richiesta

Il database in questione contiene diverse informazioni, tra cui username, password, email, numero di telefono, post, foto, video, storie, utenti seguiti/amici, pagine seguite etc. Alcuni di essi sono dati sensibili (come email e password) e sono visibili solo all’utente che ne è proprietario. Altri sono elementi pubblici, come i post, le foto, i video e altro.

Che linguaggi di programmazione usare?

Qui il campo è abbastanza libero. Voglio dire, il risultato finale sarà sempre una pagina HTML e la sua grafica sarà sempre collegata ad un CSS, con magari qualche elemento in JavaScript. Ma per il back-end la scelta è pressoché ampia. Più che di un linguaggio di programmazione, abbiamo bisogno di un framework adatto. Quindi, se troviamo un linguaggio di programmazione con un buon framework che consente di creare un web server, allora possiamo tranquillamente utilizzarlo.

Comunque, se volete farvi un’idea, di seguito vi faccio un elenco di ciò di cui potreste aver bisogno. Alcuni elementi sono essenziali, altri a scelta. Ma comunque servirà a farvi un’idea. Dunque, per costruire un Social Network “from scratch” vi servirà conoscere:

Per il Front-End

  • HTML;
  • CSS;
  • JavaScript (React);
  • Eventualmente, le librerie di Bootstrap (che sono in CSS e JavaScript)

Per il Back-End (qua la scelta è libera)

  • PHP;
  • JavaScript (con framework come Node.js, o Express);
  • Python (con framework come Django);
  • Java (con framework come Spring);
  • ASP.NET;
  • SQL, MySQL, o PostgreSQL per la gestione dei database

Ovviamente i miei sono solo consigli. Sta a voi poi decidere da dove iniziare e con quale linguaggio. Le combinazioni possono essere innumerevoli. Quello che vi consiglio io è di documentarvi su quali siano i linguaggi di programmazione utilizzati oggi dai siti più importanti e cominciare a studiare quelli. Creare un Social Network, dal lato programmatore, non è una cosa certo semplice, ma neanche così comoplicata…se saprete impegnarvi.

BuddyBoss (ex-BuddyPress)

Per chi invece non ha voglia di scrivere il codice da zero, esistono CMS dedicati anche alla creazione di Social Network. Tra i più famosi annoveriamo BuddyBoss (un tempo conosciuto come BuddyPress). Si tratta di un plug-in per WordPress che contiene un insieme di elementi comuni ai tipici Social Network e consente di aggiungere ulteriori funzionalità attraverso l’ecosistema dei plug-in WordPress (come Elementor, Astra e tanti altri).

BuddyPress è stato creato con l’obiettivo di facilitare la creazione di siti web per il Social Networking. Potente, ma nel contempo semplice da usare. Pensato per sviluppatori e programmatori alle prime armi, che però “smanettano” bene con WordPress.

Read More

Parliamo di Linguaggi di Programmazione legati ai siti più famosi del momento. Da quando internet è diventato d’uso comune, siamo passati dai semplici siti web scritti in HTML, con un pochino di JavaScript e quel po’ di CSS per rendere la grafica più dinamica, a vere e proprie applicazioni per il web, che offrono servizi online di ogni tipo. Oggi il sito web non è più visto come un semplice ipertesto con delle informazioni, ma più come un’applicativo da usare all’interno del browser. Anche i semplici blog, che una volta avevano CMS molto rudimentali (vi ricordate di Splinder?), in cui dovevi comunque conoscere un po’ di HTML per poter realizzare qualcosa di carino, oggi hanno dei motori molto più complessi per la loro realizzazione (vedi WordPress, Joomla, Blogger etc.). Quindi, per un aspirante programmatore/sviluppatore che vuole entrare nel mondo della programmazione web, quali sono i linguaggi di programmazione che si possono consigliare? Vediamoli.

Front-End o Back-End?

Quando si parla di programmazione web, è bene dividere il processo in due: il front-end e il back-end. Il front-end è il sito così come appare all’utente, il back-end è il “motore” che lo fa girare. Per quanto riguarda il front-end, o lato client,la trafila è sempre la stessa da anni, ovvero si usano HTML, CSS e JavaScript per creare la pagina. Col tempo sono nate diverse librerie per il front-end e diverse raccolte di elementi grafici pronti all’uso. Una delle raccolte più famose è Bootstrap. Un insieme di moduli ed elementi grafici per CSS e JavaScript. Il back-end invece, o lato server dispone di un’ampia scelta che va da Java a Python, passando per alcune librerie di JavaScript e per i classici PHP, ASP.NET e altri.

Se vorrete avvicinarvi alla programmazione web quindi, sappiate che potrete scegliere. Potrete volervi dedicare solo a un aspetto (front-end o back-end), oppure a tutti e due. Chi programma sia front che back è detto “Full-Stack Developer”. Una volta capito di cosa volete occuparvi, bisogna scegliere il linguaggio di programmazione più adatto alle vostre esigenze. Di seguito, vi elenco i linguaggi di programmazione usati dai siti più famosi al momento, considerando che però il web è grande e la scelta è vastissima.

Java

Java è un linguaggio di programmazione orientato agli oggetti. È open source e multipiattaforma. Grazie alla sua versatilità può essere utilizzato per i progetti più disparati. È un linguaggio back-end, in quanto non dispone di una libreria grafica per i siti web, ma è capace di generare pagine HTML attraverso i giusti framework. Nonostante la sua potenza e la grande richiesta di cui gode nel mercato delle web app, non lo consiglio a chi vuole iniziare da zero perché è un linguaggio molto difficile da imparare.

PHP

PHP è un linguaggio di scripting (ovvero non ha bisogno di un compilatore per far girare i programmi) basato su C e Perl. Con PHP si possono programmare siti web dinamici e web app. È abbastanza semplice da imparare anche per un principiante e si integra benissimo con l’ HTML. Dispone di un ampio supporto a diversi tipi di database e ha una buona integrazione con il protocollo internet. È uno dei linguaggi più studiati dagli aspiranti programmatori per via della sua semplicità. Sebbene però sia facile e potente, ad oggi è anche diventato obsoleto, in quanto con l’avvento dei framework per il web di JavaScript e Python, PHP è finito in disuso. Tuttavia, alcuni gestori di siti ancora vi si affidano.

JavaScript

JavaScript è un linguaggio di scripting orientato agli oggetti. Nonostante il nome, non ha niente a che vedere con Java, se non che tutti e due derivano dal linguaggio C. Il nome JavaScript fu scelto per via della popolarità di Java all’epoca in cui fu inventato, oltre che per la somiglianza con quest’ultimo nella struttura del suo codice. È un linguaggio dinamico, in grado di aggiungere tante funzionalità a un pagian web, anche dal punto di vista back-end. Ad oggi è il linguaggio più usato per l’E-Commerce e dispone di una serie di framework e librerie per il web che lo rendono ogni anno più popolare. Per iniziare ad addentrarsi nel mondo della programmazione web, è forse uno dei “primi gradini” migliori da salire.

Python

Python è il linguaggio di programmazione del momento, utilizzato da gran parte dei siti più famosi. Anch’esso un linguaggio di scripring, poiché non dispone di un compilatore per far girare i programmi, bensì di un interprete. Al pari di Java, Python è indipendente dalla piattaforma. Grazie alla sua immensa fornitura di librerie e framework, con Python è possibile programmare praticamente di tutto. Dalle semplici applicazioni per il PC alla programmazione di IA. Dispone di una vasta scelta di framework anche per le applicazioni web. Il più famoso è Django, con il quale, per fare un esempio, sono stati concepiti siti web come Instagram e Pinterest. La sua facilità lo rende tra i linguaggi più scelti dagli aspiranti programmatori e la sua potenza lo mette ai primi posti tra quelli più scelti in assoluto dalle aziende.

Go

Go, conosciuto anche come Golang, è un linguaggio di programmazione creato da Google e ispirato a C. È stato concepito per la programmazione di applicazioni web/server, middleware e database. È supportato da una vasta gamma di librerie, che lo rendono uno dei linguaggi più potenti per scrivere per il web dal lato server.

C++

In ultimo, ma non per importanza, vi cito il linguaggio più vecchio tra quelli menzionati in tutto l’articolo. Il C++. Nato dal linguaggio C, C++ rappresenta un’evoluzione di quest’ultimo. Molto semplice da memorizzare, in quanto dispone di appena una sessantina di parole chiave, è considerato uno dei linguaggi più potenti, per la sua vicinanza al linguaggio macchina. La sua vicinanza al linguaggio macchina, combinata al lessico abbastanza povero, fa di C++ uno dei linguaggi più complessi da scrivere, per via delle sintassi non sempre molto chiare. Tuttavia, è uno dei linguaggi più utilizzati quando si parla di sistemi operativi e applicazioni.

I siti web più famosi e i linguaggi di programmazione utilizzati

Fatta questa breve panoramica sui linguaggi di programmazione più utilizzati per il web, di seguito ecco un riassunto dei maggiori siti del momento e dei linguaggi da essi utilizzati per lo sviluppo

SITO WEBFRONT-ENDBACK-END
GoogleJavaScript, HTML, CSSC, C++, Go, Java, Python, PHP
FacebookJavaScript, HTML, CSSHack, PHP, Python, C++, Java, Erlang, D, XHP, Haskell
WhatsAppXMLAndroid, Swift, Java
YoutubeJavaScript, HTML, CSSC, C++, Python, Java, Go
InstagramJavaScript, HTML, CSSPython
AmazonJavaScript, HTML, CSSJava, C++, Perl
TikTokJavaScript, HTML, CSSC, Java, Python, Swift
TwitchJavaScript, HTML, CSSRuby
Tabella dei siti più popolari e dei linguaggi di programmazione più utilizzati
Read More

L’acronimo VPN sta per Virtual Private Network, che significa “Rete Privata Virtuale”. Una VPN serve a proteggere la connessione a internet e la privacy. Cifra i dati attraverso la crittografia e nasconde e maschera l’indirizzo IP, fornendo ai provider un indirizzo alternativo. In questo modo le connessioni a reti pubbliche, come un Wi-Fi pubblico, sono più sicure. Se attivate una VPN sul vostro smartphone, nessuno potrà tracciarvi e non ci sarà il rischio che qualcuno vi rubi i dati. E se dovete accedere a un contenuto bloccato nel nostro paese, tramite VPN potrete impostare un indirizzo IP di un paese in cui quel contenuto è libero e accedervi lo stesso.

In questo modo, se volete guardare un film o una serie TV che sono nel catalogo americano di Netflix, ma non in quello italiano, potete collegarvi a una VPN americana e guardarla grazie ad essa. Ma non solo; ammettiamo che per lavoro vi troviate a Hong Kong e dovete usare TikTok per condividere un video. A Hong Kong TikTok è stato bloccato, quindi avrete bisogno di una VPN italiana per poterlo usare. MA la VPN ha anche un’altra utilità: potreste dovervi connettere ad un cloud riservato per lavorare in smart working. Omagari dovete collegarvi col computer di casa mentre siete in viaggio. In quel caso, la VPN garantirebbe la sicurezza non solo dei vostri dati, ma anche del lavoro in generale.

Come connettersi a una VPN con i propri dispositivi

Esistono diversi servizi di VPN online. Alcuni gratuiti, altri a pagamento. Il più famoso è sicuramente NordVPN, ma la lista è davvero lunga. Oltre alle app poi, la VPN si può integrare anche all’interno dei propri browser come plug-in. Esistono poi alcuni browser, come Brave, che la hanno integrata di default. Microsoft dispone di un servizio VPN per Azure chiamato Gateway VPN, che consente alle aziende di creare reti estese per tutti i dipendenti che lavorano in mobilità.

Come funziona una VPN

Nella connessione a internet classica, il provider di servizi internet mette in comunicazione il computer dell’utente con la destinazione desiderata. Ad esempio, se scrivete sul vostro browser “google.com”, il vostro provider elabora la richiesta e vi collega direttamente ai server di Google. In questo modo, a Google arrivano tutte le informazioni sul vostro computer. Da che città vi siete collegati, che IP state utilizzando, che browser e poi anche tutto ciò che farete all’interno del sito (le ricerche, nel caso di Google). Questi dati potranno essere poi utilizzati dallo stesso Google per inviarvi annunci pubblicitari.

Ma come questi dati possono essere presi e riutilizzati da Google, la stessa cosa possono farla anche eventuali siti con brutte intenzioni. O potete addirittura essere intercettati mentre, ad esempio, vi collegate tramite app alla vostra banca per effettuare pagamenti o visualizzare il saldo. Per fare in modo che la connessione sia sempre sicura, occorre crittografarla. E un servizio di Virtual Private Network, o VPN in pratica serve a questo. Quando voi scrivete l’indirizzo di un sito sul vostro browser, il provider (che prende i dati dalla vostra app VPN) vi reindirizza al server della Virtual Private Network (crittografando i dati). Il server vi fornirà un nuovo indirizzo IP e solo dopo inoltrerà la richiesta al sito di destinazione. In questo modo i dati è come se viaggiassero in un furgone blindato. Mentre prima giravano in monopattino.

Se l’argomento ti è piaciuto, se ti interessa l’informatica e vuoi continuare a seguirmi, allora seguimi sui miei Social, magari connettiti con una VPN!

Mi trovi su FacebookInstagramTikTokWavefulTwitter e Github

Read More

L’autenticazione a due fattori (spesso indicata come 2FA) è un sistema di autenticazione per sistemi e piattaforme informatiche. Consiste nell’utilizzo di due fattori di autenticazione, come ad esempio una password e una scansione biometrica, oppure una password e un pin autogenerato da un’apposita app detta “authenticator”. Molti confondono l’autenticazione a due fattori con la verifica in due passaggi, viste le similitudini tra i due metodi. Ma il sistema non è proprio lo stesso. Vediamo bene come funziona l’autenticazione a due fattori e perché è tanto utile.

Identificazione e autenticazione: la verifica in due passaggi

Quando ci colleghiamo a un sito, dobbiamo sempre fare due operazioni di base: identificazione e autenticazione. L’identificazione consiste nell’inserire il nostro username, o la nostra email (o in alcuni casi il numero di telefono), mentre l’autenticazione è l’inserimento della password. L’autenticazione è quel processo in cui stiamo confermando la nostra identità al computer che gestisce il sito a cui ci stiamo connettendo. Attraverso un sistema di controllo, l’algoritmo del sito verifica che al nostro username sia associata esattamente la stessa password che abbiamo inserito. Dopo l’inserimento di username e password, solitamente il sito ci fa loggare e possiamo accedere alla nostra dashboard. Ma a volte per una questione di sicurezza, il sito ci chiede un’ulteriore conferma della nostra identità.

Il sistema più comune è il captcha. Ovverosia la richiesta di inserire un codice che appare a schermo sottoforma di immagine distorta, o rispondere a una sorta di quiz in cui ci vengono mostrate delle immagini. Altre volte ci viene inviato un PIN sul nostro numero mobile o su WhatsApp. Questi metodi sono solitamente a scadenza. Un captcha, così come anche il PIN, se dopo un periodo di tempo stabilito (di solito 10 minuti) non viene inserito, scade. Questo serve a far capire al sito che non siamo hacker che cercano di rubare un profilo, e che non siamo neanche bot ma utenti reali che cercano di collegarsi. Questa è la verifica in due passaggi.

Identificazione e autenticazione: l’Autenticazione Multi Fattoriale (MFA)

Un altro sistema di sicurezza, ben più solido della verifica in due passaggi è l’Autenticazione Multi Fattoriale, conosciuta anche come MFA. L’Autenticazione Multi Fattoriale prevede l’utilizzo di più fattori durante il processo di autenticazione. Il processo consiste nel combinare tra loro tre fattori principali:

  • Una cosa che sappiamo: come una password o un PIN;
  • Una cosa che abbiamo: che può essere uno smartphone con un’app dedicata alla MFA, o una smartcard, o una pendrive con un codice crittografato;
  • Una cosa che siamo: cioè qualcosa che rimanda direttamente a noi; come un dato biometrico (impronta digitale, face recognition, scansione della retina…)

Il sistema di MFA più diffuso è l’ Autenticazione a due Fattori, detta 2FA. Combina due dei fattori elencati qua sopra al fine di verificare la vera identità dell’utente. Ad esempio: dopo aver inserito la password o il PIN, viene richiesto di inserire una pendrive, oppure di poggiare il dito su un lettore di impronte. Questo metodo viene utilizzato, ad esempio, nei sistemi di verifica badge delle aziende. Quello che una volta era “il cartellino”, per capirci. Una volta passato il badge, che legge il numero di matricola del dipendente (smart card), il lettore ci chiede di appoggiare il dito sul sensore di impronte per la verifica (biometria).

Verifica in 2 Passaggi e Autenticazione a due Fattori: differenze

Spesso questi due sistemi vengono confusi tra loro, in quanto hanno un funzionamento molto simile. Ma la differenza in realtà è evidente. Prendiamo ad esempio Google Authenticator, che viene utilizzato anche da Facebook per la verifica. Una volta inserite email e password, Facebook ci indirizza a una pagina in cui viene richiesto di inserire un codice, presente in Google Authenticator. Apriamo l’app che abbiamo precedentemente installato e troviamo il codice univoco per Facebook. Si tratta di codici autogenerati che cambiano periodicamente. Inserendo quel codice, siamo autenticati. Quindi, come potete vedere, abbiamo sì effettuato una doppia verifica, ma con due fattori uguali (due codici alfanumerici).

Mentre per quanto riguarda la 2FA, sempre Google Authenticator dispone di un sistema di face recognition. Una volta inserita la password, bisognerà accedere all’app e guardare verso la fotocamera. In questo caso stiamo utilizzando due fattori diversi: un codice alfanumerico per la password e una scansione del volto per l’autenticazione a due fattori. Quindi ecco perché l’autenticazione a due fattori è più sicura della verifica in due passaggi. Mentre con la semplice verifica in due passaggi un hacker può tranquillamente crackare i due sistemi di controllo con uno stesso algoritmo, per l’autenticazione a due fattori, anche se riuscisse a crackare la password, dovrebbe avere con sé il dispositivo di controllo dell’utente. E magari anche un suo dito, per la scansione dell’impronta (e la cosa, oltre che difficile, diventerebbe piuttosto macabra). Quindi viene da sé che l’autenticazione a due fattori è decisamente il metodo più sicuro per proteggere i propri dati da un attacco esterno.

Se l’argomento ti è piaciuto, se ti interessa l’informatica e vuoi continuare a seguirmi, allora seguimi sui miei Social: mi trovi su Facebook, Instagram, TikTok, Waveful, Twitter e Github

Read More

Oggi voglio darvi un po’ di consigli per crescere sui Social Network. Da quando esistono, i Social hanno rivoluzionato la nostra vita, accorciando le distanze e accelerando le comunicazioni. E tra i vantaggi legati a questo, c’è anche la possibilità di poter campare di Social. È realmente possibile, basta solo applicare i giusti accorgimenti. Vediamo come

Un po’ di storia: SixDegrees e Friendster

Siamo nel 1997. Un giovane avvocato statunitense di nome Andrew Weinreich crea SixDegrees; un sito nato per mettere in contatto persone in base ai propri interessi, fino a sei gradi di distanza. Vale a dire che il portale suggeriva agli utenti amici di amici, fino a sei amicizie intermedie. Sebbene il termine non fosse ancora nato, SixDegrees poteva essere considerato il primo Social Network della storia. Ma non durò molto; nel 2001 il sito chiuse i battenti per via dello scarso interesse dimostrato dagli utenti. Un pionieristico sito-meteora.

Il termine Social Network venne coniato qualche anno più tardi, nel 2003. Quando Johnatan Abrams diede vita a Friendster. Un altro sito molto popolare che metteva in contatto le persone che però durò poco. Gli autori infatti, per evitare che le persone creassero profili fake, introdussero l’iscrizione a pagamento, che decretò la morte per mancanza di utenti del sito.

MySpace, Facebook e la nascita del Social Media Manager

Dopo SixDegrees e Friendster, fu finalmente il turno di MySpace. Nato anch’esso nel 2003 da Tom Anderson e Chris DeWolfe. La possibilità di personalizzare il proprio profilo e di aggiungere contenuti multimeriali audio/video portò molti musicisti professionisti a usare la piattaforma per autopromuoversi, dando il via al lento declino del predominio delle case discografiche. Grazie a questo fenomeno, si iniziarono a notare le vere potenzialità del web 2.0. Stava diventando più facile raggiungere persone lontane e la comunicazione diventava sempre più immediata. E non servivano più intermediari.

Nel 2004 poi, un giovane studente universitario di Harvard, lo sconosciuto (allora) Mark Zuckerberg, diede vita a Facebook. Da allora il Social Network è diventato un aspetto fondamentale della vita digitale delle persone. Basti pensare al fatto che oggi quando si compila un curriculum, accanto all’indirizzo email di solito si inserisce anche un profilo Facebook (o Twitter). La crescita esponenziale dei Social dal 2004 ad oggi ha convinto anche le aziende a adattarsi. In più, il fenomeno di massa ha fatto in modo che nascesse anche una nuova figura professionale: il Social Media Manager. Ovvero un professionista, esperto di Social, in grado di aiutare i profili Social aziendali (e non) a posizionarsi in alto nei motori di ricerca, per guadagnare così nuovi iscritti.

Consigli per crescere nei Social: sii il tuo brand

Tra i vari consigli per crescere nei Social Network, quello che reputo più efficace è: quando vi mettete in testa di voler lavorare con i Social Network, la prima cosa che dovete fare è pensare come un’azienda. La vostra immagine diventa il vostro brand, i Social sono la vostra vetrina e i contenuti che postate sono i prodotti da vendere. Quindi cominciate a ragionare in questi termini. Come allestireste la vostra vetrina? Di sicuro, se avete qualche prodotto in offerta, lo mettereste davanti a tutti, con un bel cartello grande con su scritto “offerta”, e il prezzo scontato in evidenza. Se ci sono prodotti stagionali, li esporreste nelle dovute stagioni. E poi decorereste la vetrina con i temi più in voga, per farla risultare accattivante ai passanti.

Ecco, è esattamente quello che dovete fare coi vostri post. Prima di tutto dovete rimanere sempre “sul pezzo”, condividendo status e contenuti che siano a tema col periodo in cui state postando. Se ad esempio è Natale, una foto vostra col cappellino di Babbo Natale o una magliettina da Elfo ci sta bene. Usate poi qualche frase di richiamo. Scegliete un tormentone o un motto che la gente possa ricordare facilmente. Ci sono frasi che vanno avanti da decenni che, pur essendo banali, sono rimaste nella testa e nel cuore di tutti. Tanto per citarne alcune: “È buono qui, è buono qui”, “Ma tu sbagli candeggio!”, “Più lo mandi giù, più ti tira su”, “È tutto intorno a te”.

Usare gli strumenti giusti. Qualità, non (solo) quantità!

Ogni Social Network dispone di una serie di strumenti per i professionisti. Ad esempio, su Facebook è possibile creare una pagina (aziendale o artistica), mentre su Instagram si può creare il profilo per il business. Attraverso queste particolari tipologie di profilo è possibile visionare e misurare la qualità delle pagine stesse. Con uno strumento chiamato insights, potrete vedere le statistiche sulla vostra pagina. Vi verranno mostrati gli andamenti della pagina e dei singoli post, nei periodi che selezionerete. Se notate che alcuni contenuti ricorrenti forniscono un picco alle visualizzazioni e interazioni della pagina, allora saranno quelli i contenuti su cui puntare. Postare spesso aiuta, ma postare i contenuti giusti aiuta ancora di più.

Una volta scelti i contenuti più “hot” della pagina, è possibile sponsorizzarli. Magari all’inizio dovrete spendere qualcosa voi, ma col tempo questa spesa si rivelerà un investimento. Grazie a delle campagne mirate e programmate nei tempi giusti, la vostra pagina potrà raggiungere un numero considerevole di follower e interazioni quotidiane in breve tempo. E vi farete notare magari da grossi marchi che vorranno pubblicizzarsi presso di voi, quindi vi offriranno un compenso per presentare o recensire i loro prodotti.

Consigli per crescere sui Social Network: gli hashtag

Un modo sicuramente efficace per arrivare a quanta più gente possibile e ampliare il vostro pubblico è quello di scegliere i giusti hashtag per promuovere i vostri post. Su Instagram e Twitter, quando iniziate a scrivere un hashtag, vi si apre una sorta di menu a tendina coi suggerimenti. Solitamente nella lista troverete i vari hashtag affiancati dal numero di interazioni totali ad essi legate. Può capitare che tra i vari hashtag suggeriti, ce ne sia uno simile a quello che avete in mente voi, ma con un bacino d’utenza di un milione e mezzo di persone. Sicuramente usandolo salirete in cima alle tendenze correlate.

Ottimizzare il SEO

Se i vostri contenuti includono un blog (come i miei), scrivere in ottica SEO vi aiuterà. WordPress offre molti strumenti utili per l’ottimizzazione che, se usati bene, possono fare in modo che il vostro sito schizzi in testa ai motori di ricerca quando qualcuno ricerca in rete parole legate agli argomenti che anche voi trattate. Scegliete un titolo accattivante e impostate la frase del titolo come frase chiave. La stessa frase dovrà essere ripetuta almeno 3 volte all’interno dell’articolo, per fare in modo ce l’algoritmo funzioni bene.

Consigli per crescere sui Social Network: Call-to-action e risposte ai commenti

I vostri follower devono sentirsi coinvolti. Invitarli a fare determinate azioni è un passo avanti. Molti YouTuber invitano i propri spettatori a mettere mi piace, condividere, iscriversi e attivare la campanellina per le notifiche sui nuovi video. E contestualmente, invitano anche a dire la vostra nei commenti. Ecco, se invitate il vostro pubblico a commentare i vostri video/post/articoli etc, rispondere ai commenti sarebbe una buona abitudine.

Collaborazioni con altri influencer

Se durante il cammino conoscete altri influencer che trattano i vostri stessi argomenti, un suggerimento che vi do è quello di collaborarci. Unireste i vostri due bacini d’utenza, raggiungendo l’uno i follower extra dell’altro (non considerando quelli in comune, ovviamente).

Scegliere i giusti Social Network

Infine, per terminare questa infarinatura di concetti, un ultimo consiglio: scegliete opportunamente i Social in cui promuovervi. Perché alcuni Social sono molto generici e quindi vanno bene per tutti, come Facebook, TikTok o Instagram. Ma per puntare sulle giuste nicchie di utenti bisogna andare a cercarli là dove sappiamo di trovarli. Ad esempio: se siete Gamer, va bene stare su YouTube e TikTok. Ma andrebbe ancora meglio fare delle belle live su Twitch. Se siete programmatori, avere una bella paginetta su Github sarebbe un’ottima idea.

In conclusione: se volete crescere sui Social e arrivare a guadagnare uno stipendio da essi, lo potete fare. Ma scordatevi che sia un lavoro facile. I “soldi facili” non esistono. Se volete campare con i Social dovete trattarli come un vero e proprio lavoro. Magari all’inizio non vedrete subito risultati, ma con una buona dose di pazienza e tanta costanza, essi arriveranno. E sarà una gran bella soddisfazione.

Read More

Grazie a un BOT costruito con Python e instapy, utilizzare Instagram diventerà più semplice. Vediamo come.

Da quando internet è diventato commerciale, le cose sono cambiate di molto. I più “datati” tra chi sta leggendo queste righe ricorderanno bene come era negli anni ’90. Niente Social, niente app, connessioni lente, niente dsl o fibra. La rete era un enorme massa di ipertesti collegati fra loro, che fornivano informazioni e basta. C’erano pochissimi servizi online, e quasi tutti molto macchinosi. Gli stessi blog giravano su cms rudimentali in cui bisognava comunque avere delle basi di HTML per fare post un po’ più “accattivanti”. E per interagire con altri utenti c’erano i forum, i gruppi di discussione, qualche instant messenger nascente e le chat, che potevano essere interne a un sito, oppure sui canali di mIRC.

Negli anni però è arrivata la rivoluzione. Grazie alle connessioni sempre più veloci e all’arrivo di nuovi device come smartphone e tablet, i servizi sono iniziati ad aumentare. Tra le innovazioni portate con questa ventata di cambiamento, quella più epocale è stata sicuramente il Social Network. Nei primi anni 2000, Tom Anderson ci provò con MySpace. Fu un grande successo, ma col tempo venne surclassato alla grande da Facebook e Twitter. Nel mentre, altre piattaforme nascenti cercavano di affermarsi. Come non menzionare Netlog, o Google+? E tra le varie piattaforme Social, ce ne era una che piano piano si faceva timidamente strada, fino ad arrivare a farsi acquistare da Facebook (oggi Meta). Sto parlando di Instagram, al momento la terza app Social più utilizzata al mondo, dopo WhatsApp e Facebook (tutte figlie di mamma Meta) e subito prima di TikTok. Superata per un breve periodo in Italia solo da Waveful.

I Social, la svolta del decennio

Grazie ai Social, oggi è possibile mettersi in contatto con chiunque. Ed è anche possibile raggiungere tutti i propri contatti istantaneamente. Grazie agli hashtag poi, si possono raggiungere anche persone che non si hanno nella lista contatti. Più un hashtag è di tendenza, più persone riesce a raggiungere. E proprio grazie a questo meccanismo, aziende e professionisti hanno iniziato a imporsi e ad allargare il proprio target di riferimento. Parlando di Instagram in particolare, oggi si può dire che esiste la professione dell’ Instagrammer, che al pari dello YouTuber o del TikToker, può far portare a casa la leggendaria pagnotta.

Come funziona? È molto semplice! Se hai un profilo Instagram molto seguito e sai come interagire con i tuoi follower e soprattutto con gli hashtag di tendenza, le aziende stesse ti contatteranno per offrirti collaborazioni. In cambio di pubblicità ai loro prodotti tramite i loro hashtag dal tuo profilo, potranno offrirti una sponsorizzazione. Tutto sta nella tua costanza nel postare nuovi contenuti ogni giorno e nell’interagire con i tuoi follower il più possibile. In modo da risultare un utente attivo e sempre aggiornato. Se continui a seguirmi, in uno dei prossimi articoli ti suggerirò anche qualche modo per far crescere i tuoi Social efficacemente.

Perché usare un BOT?

Ma potresti non avere tutto il tempo necessario da dedicare ai Social. Magari per lavoro non hai tanto tempo libero a disposizione per metterti a controllare tutto. Per questo ho pensato di darti un aiutino. Se vai sul mio profilo Github troverai un’app chiamata InstaBOT. Si tratta di un bot per Instagram scritto in Python con la libreria instapy, che ti permetterà di automatizzare alcune azioni senza doverti ogni volta collegare e fare tutto da te. Ricorda però, a Meta non piacciono i BOT e quindi se esageri, potresti ritrovarti con l’account limitato. Cerca di non esagerare e usalo con parsimonia. Ricordati anche che un buon Instagrammer è uno che interagisce in prima persona con i suoi follower, non lascia fare tutto ai bot. Quindi InstaBOT deve essere solo un supporto alle tue azioni quotidiane. Deve essere qualcosa che va a completare il lavoro là dove non puoi arrivare tu. Non deve diventare il tuo sostituto su Instagram. Ma vediamo subito quali sono i comandi base che ho utilizzato nella mia app.

InstaBOT: il codice

Prima di tutto: per far funzionare il nostro BOT per Instagram con Python, occorre installare instapy e schedule, la prima è libreria di Python dedicata a Instagram, la seconda una libreria che ti consentirà di programmare le azioni secondo un’agenda definita. Installarla è semplice, come per tutte le librerie di Python, si usa pip:

pip install instapy 
pip install schedule

Dopodiché, con il tuo IDE preferito (io uso VS Code e Atom, ma puoi usare qualsiasi editor ti piaccia), apri un nuovo file e dagli un nome che abbia l’estensione .py, ad esempio “app.py”. E per prima cosa, importa quello che ti serve dalla libreria instapy

from instapy import InstaPy
from instapy import smart_run
from instapy import set_workspace
import time
import schedule

Una volta importate le classi, definiamo le variabili per il login, settiamo un workspace e logghiamoci.

user = "" #inserisci il tuo username tra le virgolette
pwd = "" #inserisci la tua password tra le virgolette

set_workspace(Path=None)

#effettuiamo il log-in con username e password impostate in precedenza
instagrammer = InstaPy(user, pwd) 

E ora, definiamo le funzioni per l’automazione. In questa app di esempio creerò due funzioni; una per mettere like e commentare determinati hashtag, l’altra per seguire le persone.

#funzione per commentare, mettere like e seguire altri utenti
def automation():
    with smart_run(instagrammer):
        instagrammer.set_do_comment(enabled = True, percentage = 20)
        #inserisci il commento tra le virgolette. Attenzione, puoi inserire anche più commenti all'interno della lista, tutti tra virgolette e separati da una virgola
        instagrammer.set_comment([""])

        #come per i commenti, inserisci gli hashtag tra le virgolette. Puoi inserire anche più hashtag all'interno della lista, tutti tra virgolette e separati da una virgola
        instagrammer.like_by_tags([""], amount=100, media = "Photo")
        instagrammer.set_do_follow(enabled = True, percentage = 25, times = 2)

def get_followers():
    with smart_run(instagrammer):
        #inserisci lo username di un utente a scelta da cui prendere i followers
        instagrammer.grab_followers(username="", live_match=True, store_locally=True, amount="full")

Ora che abbiamo definito le funzioni, passiamo al corpo principale del programma: ovvero la schedulazione. Impostiamo, ad esempio, la funzione per prendere i follower da un altro utente ogni lunedì a mezzogiorno, mentre per i like e i commenti facciamo tutti i mercoledì alle 10.

schedule.every().monday.at("12:00").do(get_followers)
schedule.every().wednesday.at("10:00").do(automation)

while(True):
    schedule.run_pending()
    time.sleep(10)

E adesso, tutti su Github!

Come ho detto in precedenza, il codice sorgente della mia applicazione si trova sul mio Github, a questo link. Se continuate a seguirmi e a seguire il mio Github, col tempo la migliorerò, aggiungendo anche una veste grafica in modo da farvi trovare un’applicazione in grado di farvi effettuare il log-in con i dati che inserite voi, e che vi farà seguire/commentare/mettere like a qualsiasi profilo decidiate, semplicemente scrivendo il suo username in un campo di testo. Per ora, accontentatevi della “base”. Ma, come al solito…STAY TUNED!

Read More

Ormai YouTube è diventato la piattaforma video per eccellenza. Gratuita (a meno che non vogliamo sottoscrivere l’abbonamento Premium) e ricca di contenuti. Ma a volte, per qualche motivo, non possiamo disporre della connessione a internet. Magari siamo in qualche punto in cui il segnale è debole. In quei casi quasi rimpiangiamo gli anni 2000 e il lettori DVD o MP3 portatili. Ma non tutto è perduto. Infatti, se vogliamo scaricare i nostri video sul nostro smartphone, o anche solo le tracce audio, si può fare. Il modo più rapido sarebbe quello di abbonarsi a YouTube Premium. Ma volendo, c’è un trucchetto ancora più facile (e gratuito).

Con Python infatti, è possibile creare un’app in grado di scaricare video da YouTube. Sia che vogliate scaricare tutto il video, o anche solo l’audio (magari di una canzone che vi piace), col linguaggio di programmazione del pitone questo è possibile! Sul mio Github ho inserito il Repository completo. Qui invece voglio analizzare con voi il “core” dell’app.

Innanzitutto, bisogna prima installare sul nostro computer la libreria PyTube di Python. Per farlo basta usare pip scrivendo il seguente comando dal vostro terminale Linux/MacOS/Windows:

pip install pytube

Dopodiché, aprite il vostro editor preferito. Io uso sia VS Code che Atom, ma qualsiasi editor usiate va bene. C’è chi usa PyCharm e chi usa vim. L’importante è che sia un ambiente a voi comodo. Una volta aperto l’editor e impostato il nuovo progetto, aprite un nuovo file e dategli l’estensione .py (ad esempio: app.py, o youtube-downloader.py). La prima cosa che dovete fare è importare la libreria che vi interessa all’interno del file:

from pytube import YouTube

Bisogna poi creare un oggetto di classe YouTube, che prenderà lo stream direttamente dal video e due oggetti che conterranno le informazioni che ci servono per questo programma.

yt = YouTube("https://www.youtube.com/<indirizzodelvideo>/")
video = yt.get_highest_resolution()
audio = yt.streams.get_by_itag(140)

Come avete visto, l’oggetto yt prende il video direttamente dall’URL. L’oggetto video invece, cattura lo stream alla miglior risoluzione possibile. Per quanto riguarda l’oggetto audio, ho usato un particolare filtro. Nella pagina di documentazione di pytube c’è un elenco di tag che servono per i vari filtri. Il 140 corrisponde al formato audio/mp4 a 128 kb/s.

Ora che avete impostato gli oggetti, per scaricare il video e l’audio, basta eseguire i seguenti comandi:

video.download()
audio.download()

E il gioco è fatto!

Ovviamente, vorrete creare qualcosa di più vivo, più accattivante. Più graficamente accettabile di un semplice programmino a riga di testo. Per questo io ho usato nella mia app la libreria Tkinter. Ho creato un contenitore con il logo dell’app, una barra di ricerca e i pulsanti per cercare il video con le informazioni e scaricare audio e video. Il codice sorgente è su Github, ma per chi non fosse pratico del portale lo riporto anche qui, completo di commenti. In altri articoli vi insegnerò come si installa e usa la libreria Tkinter. STAY TUNED!

from cProfile import label
from cgitb import text
import tkinter as tk
from tkinter import *
from tkinter import filedialog
from tkinter.font import BOLD, ITALIC
from pytube import YouTube

window = tk.Tk()
window.title("YouTube Downloader")
#window.iconbitmap("icona_yt.ico")
window.tk.call('wm', 'iconphoto', window._w, tk.PhotoImage(file='icona_yt.png'))
window.geometry("800x600")
window.config(bg="#ffd0bf")

#Funzione che scarica i Video completi
def download_video():
    if yt_video.get() == "":
        print("Inserire prima un URL valido")
    else:
        video_search()
        download_button.config(state=tk.DISABLED)
        yt_video.config(state=tk.DISABLED)
        audiosave_button.config(state=tk.DISABLED)
        download_dir = filedialog.askdirectory(title="Seleziona la cartella di destinazione")
        yt = YouTube(yt_video.get())
        video = yt.streams.get_highest_resolution()
        video.download(output_path=download_dir)
        download_button.config(state=tk.ACTIVE)
        yt_video.config(state=tk.ACTIVE)
        audiosave_button.config(state=tk.ACTIVE)

#Funzione che ricerca su YouTube il video richiesto e fornisce tutti i dettagli (titolo, descrizione e lunghezza video)
def video_search():
    if yt_video.get() == "":
        print("Inserire prima un URL valido")
    else:
        yt = YouTube(yt_video.get())
        video = yt.streams.get_highest_resolution()

        video_label = tk.Label(window, text=yt.title, font = ("Arial", 10, BOLD), bg="#ffd0bf", fg="red")
        video_label.grid(row=6, column=0, pady=20)
    
        video_description = tk.Label(window, text=yt.description, justify=LEFT, wraplength=500, font = ("Arial", 8, ITALIC), bg="#ffd0bf", fg="black")
        video_description.grid(row=8, column=0)

        video_info = tk.Label(window, text="Durata: "+str(yt.length)+" secondi; Visualizzazioni: "+str(yt.views), justify=LEFT, wraplength=500, font = ("Arial", 8, BOLD), bg="#ffd0bf", fg="black")
        video_info.grid(row=7, column=0, pady=10)

#Funzione per scaricare l'audio dai video. Il formato scelto è Mp4
def download_audio():
    if yt_video.get() == "":
        print("Inserire prima un URL valido")
    else:
        video_search()
        download_button.config(state=tk.DISABLED)
        yt_video.config(state=tk.DISABLED)
        audiosave_button.config(state=tk.DISABLED)
        download_dir = filedialog.askdirectory(title="Seleziona la cartella di destinazione")
        yt = YouTube(yt_video.get())
        audio = yt.streams.get_by_itag(140)
        audio.download(output_path=download_dir)
        download_button.config(state=tk.ACTIVE)
        yt_video.config(state=tk.ACTIVE)
        audiosave_button.config(state=tk.AACTIVE)

#Imposto l'app
# in alto, il logo di YouTUbe, con la scritta "Downloader" sotto di esso  
logo_youtube = PhotoImage(file="icona_yt.png")
title_label = tk.Label(window, image=logo_youtube, font=("Arial",20, BOLD), bg="#ffd0bf", fg = "red")
title_label_text = tk.Label(window, text="Downlader", font=("Arial",20, BOLD), bg="#ffd0bf", fg = "red")
title_label.grid(row=1, column=0, pady=5)
title_label_text.grid(row=2, column=0, pady=5)

#Sotto il titolo dell'app, la nostra "call to action"
instruction_label = tk.Label(window, text="Inserisci URL del video da scaricare:", font =("Arial", 12, ITALIC), bg="#ffd0bf", fg="black")
instruction_label.grid(row=3, column=0)

#La barra di testo in cui inserire l'URL del video di YouTube
yt_video = tk.Entry(window, bd=3, width=80)
yt_video.grid(row=4, column=0, padx=5)

#I tre pulsanti d'azione:
#Ricerca
search_icon = PhotoImage(file="lente.png")
search_button = tk.Button(window, image=search_icon, width=20, height=20, bd=3, bg="red", command = video_search)
search_button.grid(row=4, column = 1, pady=20)

#Salva video
savefile = PhotoImage(file="savefile.png")
download_button = tk.Button(window, image=savefile, width=20, height=20, bd=3, bg="red", command = download_video)
download_button.grid(row=4, column = 2, pady=20)

#Salva audio
audiosave = PhotoImage(file="audiosave.png")
audiosave_button = tk.Button(window, image=audiosave, width=20, height=20, bd=3, bg="red", command= download_audio)
audiosave_button.grid(row=4, column=3, pady=20)

window.mainloop()

Una volta inserito tutto il codice e creata l’app, per farla partire basta andare sul Terminale, nella cartella dell’app e digitare il comando di python. Attenzione, se avete installato Python 3, al posto di “python” dovrete scrivere “python3”

python nomecheavetedatoallapp.py
Read More