Sviluppare in
Transcript
Sviluppare in
Sviluppare in Matteo Enna Chi sono Matteo Enna Sviluppatore Web Attivista Digitale Il mio lavoro Sono uno Sviluppatore web “Full Stack” e mi occupo di eCommerce in Strogoff Gulmh Il gruppo degli utenti linux del Marghine, che ha organizzato questo evento. CoderDojo Guilcer I CoderDojo sono club gratuiti il cui obiettivo è l’insegnamento della programmazione informatica ai più piccoli. Rosadigitale RosaDigitale è un movimento italiano che si occupa di pari opportunità in ambito digitale e tecnologico. Il software libero Le 4 libertà del Software Libero Il software libero ● ● ● ● Libertà 0: Libertà di eseguire il programma per qualsiasi scopo. Libertà 1: Libertà di studiare il programma e modificarlo. Libertà 2: Libertà di ridistribuire copie del programma in modo da aiutare il prossimo. Libertà 3: Libertà di migliorare il programma e di distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio. Libertà 0 ● Libertà di eseguire il programma per qualsiasi scopo. Libertà 0 Eseguire un programma significa avviare il programma. ● ● ● ● L'utilizzo attivo o passivo di un software è considerato “eseguire un software” Nel caso di un sito internet è quando si entra in una qualsiasi pagina. Per un programma è quando lo si avvia Utilizzo può essere anche quando una nostra App crea una notifica sullo nostro smartphone. Libertà 0 Il Software libero non ha vincoli di utilizzo, quando ottengo un software libero posso sfruttarlo in qualsiasi modo si desidera. Vediamolo in pratica Libertà 0 Esempio 1 – Smarty Libertà 0 Esempio 1 – Smarty Smarty è un motore grafico per i template dei siti internet. ● Più della metà dei siti internet che vediamo viene eseguito Smarty per rendere più gradevoli queste pagine. Libertà 0 Esempio 1 – Smarty Come? ● Lo sviluppatore entra nel sito di Smarty; ● Legge la licenza; ● Scarica Smarty; ● Include nel suo progetto. Libertà 0 Esempio 2 – PrestaShop Libertà 0 Esempio 2 – PrestaShop PrestaShop è un CMS (un sistema che gestisce i contenuti di un sito web) utilizzato nel eCommerce. PrestaShop oltre ad essere libero è formato da software libero: Smarty, Tar, Tcpdf, Pclzip, GeoIP e ParseSQL. Libertà 0 Esempio 2 – PrestaShop Come? ● Lo sviluppatore entra nel sito di PrestaShop; ● Legge la licenza; ● Scarichi PrestaShop; ● Hai un sito eCommerce pronto per essere utilizzato o modificato. Libertà 1 ● Libertà di studiare il programma e modificarlo. Libertà 1 ● ● ● ● Un programma può essere formato da poche decine di righe di codice a diversi milioni di righe. Anche sviluppare un Software da poche decide di righe di codice comporta l'uso di tantissimo tempo tra studio, sviluppo e test. Rilasciare software con licenze libere significa dare la possibilità a chiunque di poter partire dai tuoi studi per poter creare il suo progetto. Usare software libero è come lavorare “Sulle spalle dei giganti”. Libertà 1 Esempio PrestaShop PrestaShop non è l'unico CMS Libero esistente. Esistono anche WooCommerce, OpenCart, Magento, Virtuemart, OSCommerce, ZenCart, Drupal Commerce e tantissimi altri. Le loro comunità spesso si ispirano a vicenda per poter creare un prodotto sempre migliore. Libertà 2 ● Libertà di ridistribuire copie del programma in modo da aiutare il prossimo. Libertà 2 Se si è in possesso di una copia di un software libero è possibile farne una copia e condividerla con altre persone. Spesso questi software si trovano gratuitamente anche per questo motivo. Libertà 3 Un programma viene creato per svolgere un compito ben preciso. Spesso può capitare di avere un esigenza leggermente diversa rispetto a quella di software già esistente, se questo software e libero è possibile adattarlo alla propria esigenza. Un paio di domande ● ● ● ● La licenza libera quindi è il contrario del diritto d'autore? Queste regole sono presenti in tutti i software liberi? Si può lavorare con il Software Libero? O è solo volontariato? Perché uno che non è un programmatore dovrebbe scegliere software libero? Le regole La licenza libera quindi è il contrario del diritto d'autore? No, le licenze libere sono un particolare tipo di diritto d'autore, spesso più severo e rigido. Spesso nelle licenze libere ci sono anche delle condizioni. Le regole La licenza libera quindi è il contrario del diritto d'autore? Con una licenza libera io dico: ● ● ● ● Io sono il proprietario e il creatore di questo Software! Il MIO software voglio che sia utilizzabile da chiunque lo desideri. Il MIO software voglio che sia modificato da chiunque lo desideri. Il MIO software è modificabile e condivisibile. Le regole La licenza libera quindi è il contrario del diritto d'autore? Le condizioni più frequenti possono essere: ● ● ● ● Non voglio che il software venga condiviso per scopi commerciali. Non voglio che il mio software sia utilizzato assieme a software proprietari. Voglio che le opere derivate dal mio software abbiano la stessa licenza. Voglio che nelle opere derivate venga scritto che il mio software è presente. Le regole Queste regole sono presenti in tutti i software liberi? Queste regole sono alla base di tutte le licenze per software libero. Ma ogni licenza può avere delle particolarità! Le regole Queste regole sono presenti in tutti i software liberi? La licenza GPL e LGPL Sono entrambe licenze libere e sono molto simili tra loro. L'unica differenza tra di loro è la compatibilità con il software libero. Le regole Si può lavorare con il Software Libero? O è solo volontariato? Certo, il software libero è sempre stato associato a “mercato libero”. Le regole Si può lavorare con il Software Libero? O è solo volontariato? Alcuni esempi di guadagno? ● Sulle personalizzazioni. ● Sui servizi aggiuntivi. ● Corsi di formazioni e certificazioni. ● Il software libero può essere venduto. Le regole ● Perché uno che non è un programmatore dovrebbe scegliere software libero? Le regole ● Perché uno che non è un programmatore dovrebbe scegliere software libero? Perché con il software libero si è i veri proprietari del software. Se occorrono modifiche è possibile richiederne a uno sviluppatore e non acquistarne uno nuovo. Sviluppo web nel Open Source Lo sviluppo web come visto prima è un ottimo esempio di utilizzo delle licenze libere. Sviluppo web nel Open Source Lo sviluppo web come visto prima è un ottimo esempio di utilizzo delle licenze libere. ● CMS ● Framework ● Wiki ● Web App ● WebHooks Sviluppo web nel Open Source CMS Sono i Content Management Sistem, ovvero i gestori di contenuti. Possono essere di vario tipo e vario utilizzo: giornalismo, eCommerce, blog, enciclopedie e tanto altro. Sviluppo web nel Open Source CMS Servono per permettere a chi non ha competenze di programmazione di poter creare contenuti per un sito web: prodotti, articoli, voci di enciclopedia e tanto altro. Sviluppo web nel Open Source CMS Alcuni esempi: ● Wordpress ● Joomla ● Drupal ● PrestaShop ● Magento Sviluppo web nel Open Source Framework I framework son sistemi che agevolano il lavoro ai programmatori. Aiutano ad automatizzare alcuni dei lavori che un programmatore deve ripete ogni volta. Sviluppo web nel Open Source Framework Alcuni esempi: ● Symfony ● Yii ● Zend framework Sviluppo web nel Open Source Wiki I wiki sono tipologie di siti internet per la realizzazione di contenuti collaborativi, come enciclopedie. ● ● Il più famoso è wikipedia. Esiste un CMS per crearsi il proprio Wiki in meno di 15 minuti, si chiama DokuWiki Sviluppo web nel Open Source Webapp Sono delle applicazioni che si possono utilizzare direttamente dal proprio browser. ● Convertire PDF in immagini ● Ridimensionare immagini ● Aggiungere effetti alle foto Sviluppo web nel Open Source WebHooks Sono dei piccoli software che non funzionano in autonomia, servono solo per eseguire operazioni e inviare i risultati. Spesso sono associati a chat, social network o altre App. Telegram e i Bot I bot telegram sono degli esempi di utilizzo dei webHooks. Telegram e i Bot I bot telegram sono degli esempi di utilizzo dei webHooks. Telegram è un servizio di messaggistica come Whattsup e Messenger di Facebook, è Open Source e lascia la possibilità a Sviluppatori esterni di creare dei Bot. Piccoli programmi esterni utilizzabili tramite chat. Telegram e i Bot Alcuni miei esempi di Bot ● @nuraghebot ● @sardegnabiblioteche_bot ● @sardegnatrasportibot ● DokuWikiBot Telegram e i Bot @nuraghebot Bot creato per ricercare siti di carattere Archeologico/Nuragico in Sardegna. Realizzato sfruttando i dati aperti rilasciati con le creative commons da Nurnet Telegram e i Bot @sardegnabiblioteche_bot Bot creato per ricercare siti di carattere biblioteche in Sardegna. Realizzato sfruttando i dati aperti rilasciati con le creative commons dalla Regione Sardegna Telegram e i Bot @sardegnatrasportibot Bot creato per ricercare fermate dei mezzi di trasporto extraurbano in Sardegna. Realizzato sfruttando i dati aperti rilasciati con le creative commons da Sardegna Mobilità. Telegram e i Bot DokuWikiBot DokuWikiBot è un framework Open Source che permette di creare un Bot Telegram in pochissimo tempo, prelevando i dati dal CMS DokuWiki. L'Open è virale L’open è virale: la mia esperienza con gli Open Data L'Open è virale I miei bot son nati grazie a: ● ● ● Let’s Encrypt che ha reso aperti a tutti i protocolli SSL, NURNET, Regione Sardegna e SardegnaMobilità che hanno fornito degli ottimi Dataset; Alle centinaia di testimoniante di utilizzo di Bot telegram con gli open data. Digital Successes Un esempio di Open Virale Digital Successes Un esempio di Open Virale: Digital Successes è un wiki collegata ad un bot telegram che contiene dei casi italiani di successo nel campo del digitale e della tecnologia. Che sfrutta per il suo collegamento tra enciclopedia e Bot: DokuWikiBot Open Source attivamente Vogliamo partecipare attivamente al mondo del software libero? Open Source attivamente Vogliamo partecipare attivamente al mondo del software libero? Ecco come: ● ● ● Seguendo e supportando associazioni o manifestazioni. Quando dobbiamo scegliere un nuovo software controllarne la licenza. Aiutarne lo sviluppo! GitHub GitHub è una piattaforma per progetti software. GitHub GitHub è una piattaforma per progetti software. ● ● ● È la più utilizzata al mondo. Wikipedia, Wordpress, Dokuwiki, PrestaShop e tanti altri vengono sviluppati li. Ci son tutti gli strumenti di controllo di versione, wiki e tanto altro GitHub Uno dei più grandi esempi di quest'anno. TerremotoCentroItalia ● Sito internet ● GitHub ● Bot Telegram ● Social Network Fine GRAZIE Sito Web http://matteoenna.it Facebook https://www.facebook.com/mattenna Linkedin https://it.linkedin.com/in/matteoenna GitHub https://github.com/Ellusu Email [email protected]