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]