Il talk prevede una breve introduzione alla piattaforma Maemo ed ai Nokia Internet Tablet, sia dal punto di vista dell'utente comune, sia da quello dello sviluppatore.
Verrà poi spiegato come configurare ed installare l'ambiente Scratchbox, il principale ambiente utilizzato per sviluppare applicazioni per Maemo.
Infine verranno presentati due plugin per Eclipse: ESbox e PluThon. Il primo si interfaccia con Eclipse e Scratchbox, permettendo di sviluppare sia applicazione C/C++ che Python e di testarle all'interno dell'ambiente Scratchbox. Il secondo è un plugin specifico per Python e permette di eseguire e debuggare le applicazioni direttamente sul dispositivo.
Vagrant e Docker a confronto;scegliere ed iniziareDaniele Mondello
Pitch presentato al Linux Day 2015 a Palermo su Vagrant e docker per confrontarli, scegliere ed iniziare. Partendo dal concetto di virtualizzazione, proseguendo con l'analisi delle due soluzioni fino a dare cenni sull'installazione ed un primo utilizzo.
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
Il talk prevede una breve introduzione alla piattaforma Maemo ed ai Nokia Internet Tablet, sia dal punto di vista dell'utente comune, sia da quello dello sviluppatore.
Verrà poi spiegato come configurare ed installare l'ambiente Scratchbox, il principale ambiente utilizzato per sviluppare applicazioni per Maemo.
Infine verranno presentati due plugin per Eclipse: ESbox e PluThon. Il primo si interfaccia con Eclipse e Scratchbox, permettendo di sviluppare sia applicazione C/C++ che Python e di testarle all'interno dell'ambiente Scratchbox. Il secondo è un plugin specifico per Python e permette di eseguire e debuggare le applicazioni direttamente sul dispositivo.
Vagrant e Docker a confronto;scegliere ed iniziareDaniele Mondello
Pitch presentato al Linux Day 2015 a Palermo su Vagrant e docker per confrontarli, scegliere ed iniziare. Partendo dal concetto di virtualizzazione, proseguendo con l'analisi delle due soluzioni fino a dare cenni sull'installazione ed un primo utilizzo.
Livin' with Docker - dallo sviluppo alla produzionegiacomos
Presentiamo un caso di studio di un progetto web nato e cresciuto con Docker al centro della scena. Vedremo le soluzioni scelte durante tutto il percorso, partendo da docker-compose in locale, per arrivare a CoreOS e systemd in produzione, passando per la fase di continuous integration/build e il deploy.
Talk DockerOps 13-02-2016, Ferrara
Immaginiamo un modo diverso di concepire la struttura di un pacchetto software che ci consenta di spaziare tra affidabilità e scalabilità. Sulla costruzione ci affidiamo alle risorse infinite di un PublicCloud, di cui monitorare i costi infrastrutturali per evitare di scendere sotto il break even point nel rapporto Costi/Ricavi. Pensare il software come una nuvola di processi staccati che colloquiano tra loro, ci da maggiore flessibilità (la singola ape è sacrificabile e sostituibile nel contesto dello sciame), mentre il concetto di Alveare come concentrazione dei dati raccolti/elaborati, ci permette di semplificare e gestire meglio il problema CONSISTENZA. Avremo così agenti semplici e rimpiazzabili in modo automatico che TRASPORTANO dati dall’acquisizione allo storage (Alveare), in cui, altri moduli manipoleranno e gestiranno il Miele. Abbiamo trasformato il problema da: gestiamo pochi oggetti complessi (VM) in gestiamo tantissimi moduli semplici (Container), come li coordiniamo??? Kubernets è una possibile risposta.
Una user story non è completa finché non è nelle mani di chi la deve usare. Solo da lì inizia a produrre valore, sia esso economico o sia feedback. Che si tratti di master, preview o production, con l’automazione delle build si possono evitare operazioni ripetitive, complesse, risparmiare tempo, ottenere interessanti metriche sul codice, tutto al fine di arrivare a poter rilasciare ogni poche ore (o, se volete, ogni volta che la build è verde!). Farlo in modo frequente è possibile anche con Symfony2. Mettiamo in pratica con un esempio una delle 12 pratiche di Extreme Programming: continuous delivery e integration tra git, bash, Jenkins e strumenti deploy.
Esploriamo docker per scegliere tra un'approccio monolitico tramite le VM o un approccio modulare per una gestione più efficiente e leggera delle applicazioni in ambiente Linux.
Emiliano Vavassori e Paolo Asperti, soci del BgLUG, presentano il progetto Linux va a scuola che il BgLUG sta portanto avanti dal 2015 per portare Linux ed il software libero nelle scuole. Diversamente dalle preceneti slides, queste espongono il progetto da un punto di vista puramente tecnico. Sono stati spiegati i requisiti tecnici e descritte le tecnologie e le logiche implementative utilizzate per fornire la soluzione descritta al mattino. Tra questi, Ansible, PXE Boot, Edubuntu, Epoptes, Git e ovviamente la distribuzione server NethServer Linux della quale ci siamo innamorati per efficienza e semplicità di utilizzo.
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
My Master Degree in Computer Engineering Dissertation about delivering an open source extendible hybrid cloud solution for Platform-as-a-Service with Openshift, integrated in an Infrastructure-as-a-Service deployment with Openstack Grizzly RDO
Carlo Milanesi, nel Linux Day dedicato al coding, presenta una rassegna dei principali linguaggi di programmazione presenti e passati. Dopo aver elencato i 30 linguaggi di programmazione più usati in assoluto, ha esposto quali di essi sono più usati per scrivere software open-source. Inoltre, per ogni linguaggio, ha esposto per quali ambiti applicativi risultano preferibili, in base alle loro caratteristiche tecniche e commerciali.
Paolo Finardi e Fabio Fusili presentano il progetto "Linux va a scuola" del Bergamo Linux Users Group durante il Linux Day 2016.
Il progetto ha lo scopo di supportare le scuole che vogliono migrare i laboratori informatici dal software proprietario al software libero diventando parte attiva nella diffusione della cultura della condivisione.
Nella presentazione sono descritti gli obiettivi, i motivi per cui questa scelta è importante e l'evoluzione che il progetto sta avendo. Sono state, inoltre, elencate le funzionalità pratiche che contraddistinguono la soluzione che implementiamo nei laboratori delle scuole.
Daniele Barcella "Kowalski", al Linux Day 2016, ha spiegato come si gestisce un progetto open-source. I motivi per i quali condividere un progetto e quali strumenti utilizzare per sviluppo, versionamento, testing. Non manca una panoramica sulle principali licenze open-source.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Gerardo Di Iorio
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Andremo alla scoperta di Git (https://git-scm.com/), un source control che si ad
atta alle esigenze degli sviluppatori, ottimizeremo il codice passando per l'app
roccio del Continuous Integration ed in fine useremo Docker (https://www.docker.
com/) per deploy rapidi e scalabili.
Breve introduzione a GIT:
. Iniziare un nuovo progetto o clonarne uno esistente
. primi commit e comandi base
. esempi di utilizzo
Autore: Valerio Radice
tag line:
Tutorial GIT ITA italiano
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
Distribuzione delle sessioni in PHP in caso di load balancing su più serverGianluca Gimigliano
La distribuzione delle sessioni è un problema che riguarda la scalabilità dei siti web su più server, in particolare per PHP che di norma salva le sessioni su file system del singolo server.
In questo talk vedremo alcune strategie di risoluzione del problema (load balancing mirato, accentramento delle sessioni) e ci soffermeremo su una personale soluzione che prevede delle sessioni distribuite su più macchine contemporaneamente creando un’architettura a maglia attraverso l’uso di memcache
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsMirko Mancin
Corso frontale di 20 ore indirizzato a docenti di scuole superiori nel settore ICT. Il corso vuole essere una palestra (per questo CodingGym) di rafforzamento delle basi già esistenti e di supporto per corsi futuri. Queste slide sono rilasciate con la licenza Creative Commons e quindi potete scaricarle ed utilizzarle a vostro piacere. Ricordate però di CITARMI! :D
Immaginiamo un modo diverso di concepire la struttura di un pacchetto software che ci consenta di spaziare tra affidabilità e scalabilità. Sulla costruzione ci affidiamo alle risorse infinite di un PublicCloud, di cui monitorare i costi infrastrutturali per evitare di scendere sotto il break even point nel rapporto Costi/Ricavi. Pensare il software come una nuvola di processi staccati che colloquiano tra loro, ci da maggiore flessibilità (la singola ape è sacrificabile e sostituibile nel contesto dello sciame), mentre il concetto di Alveare come concentrazione dei dati raccolti/elaborati, ci permette di semplificare e gestire meglio il problema CONSISTENZA. Avremo così agenti semplici e rimpiazzabili in modo automatico che TRASPORTANO dati dall’acquisizione allo storage (Alveare), in cui, altri moduli manipoleranno e gestiranno il Miele. Abbiamo trasformato il problema da: gestiamo pochi oggetti complessi (VM) in gestiamo tantissimi moduli semplici (Container), come li coordiniamo??? Kubernets è una possibile risposta.
Una user story non è completa finché non è nelle mani di chi la deve usare. Solo da lì inizia a produrre valore, sia esso economico o sia feedback. Che si tratti di master, preview o production, con l’automazione delle build si possono evitare operazioni ripetitive, complesse, risparmiare tempo, ottenere interessanti metriche sul codice, tutto al fine di arrivare a poter rilasciare ogni poche ore (o, se volete, ogni volta che la build è verde!). Farlo in modo frequente è possibile anche con Symfony2. Mettiamo in pratica con un esempio una delle 12 pratiche di Extreme Programming: continuous delivery e integration tra git, bash, Jenkins e strumenti deploy.
Esploriamo docker per scegliere tra un'approccio monolitico tramite le VM o un approccio modulare per una gestione più efficiente e leggera delle applicazioni in ambiente Linux.
Emiliano Vavassori e Paolo Asperti, soci del BgLUG, presentano il progetto Linux va a scuola che il BgLUG sta portanto avanti dal 2015 per portare Linux ed il software libero nelle scuole. Diversamente dalle preceneti slides, queste espongono il progetto da un punto di vista puramente tecnico. Sono stati spiegati i requisiti tecnici e descritte le tecnologie e le logiche implementative utilizzate per fornire la soluzione descritta al mattino. Tra questi, Ansible, PXE Boot, Edubuntu, Epoptes, Git e ovviamente la distribuzione server NethServer Linux della quale ci siamo innamorati per efficienza e semplicità di utilizzo.
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
My Master Degree in Computer Engineering Dissertation about delivering an open source extendible hybrid cloud solution for Platform-as-a-Service with Openshift, integrated in an Infrastructure-as-a-Service deployment with Openstack Grizzly RDO
Carlo Milanesi, nel Linux Day dedicato al coding, presenta una rassegna dei principali linguaggi di programmazione presenti e passati. Dopo aver elencato i 30 linguaggi di programmazione più usati in assoluto, ha esposto quali di essi sono più usati per scrivere software open-source. Inoltre, per ogni linguaggio, ha esposto per quali ambiti applicativi risultano preferibili, in base alle loro caratteristiche tecniche e commerciali.
Paolo Finardi e Fabio Fusili presentano il progetto "Linux va a scuola" del Bergamo Linux Users Group durante il Linux Day 2016.
Il progetto ha lo scopo di supportare le scuole che vogliono migrare i laboratori informatici dal software proprietario al software libero diventando parte attiva nella diffusione della cultura della condivisione.
Nella presentazione sono descritti gli obiettivi, i motivi per cui questa scelta è importante e l'evoluzione che il progetto sta avendo. Sono state, inoltre, elencate le funzionalità pratiche che contraddistinguono la soluzione che implementiamo nei laboratori delle scuole.
Daniele Barcella "Kowalski", al Linux Day 2016, ha spiegato come si gestisce un progetto open-source. I motivi per i quali condividere un progetto e quali strumenti utilizzare per sviluppo, versionamento, testing. Non manca una panoramica sulle principali licenze open-source.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Gerardo Di Iorio
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Andremo alla scoperta di Git (https://git-scm.com/), un source control che si ad
atta alle esigenze degli sviluppatori, ottimizeremo il codice passando per l'app
roccio del Continuous Integration ed in fine useremo Docker (https://www.docker.
com/) per deploy rapidi e scalabili.
Breve introduzione a GIT:
. Iniziare un nuovo progetto o clonarne uno esistente
. primi commit e comandi base
. esempi di utilizzo
Autore: Valerio Radice
tag line:
Tutorial GIT ITA italiano
[drupalday2017] - DevOps: strumenti di automazione per Drupal8DrupalDay
Spesso durante lo sviluppo e la manutenzione di un progetto siamo costretti a svolgere attività ripetitive o noiose (dall’esecuzione di un task alla replicazione e aggiornamento del sistema). Per risolvere alcuni di questi problemi proveremo ad usare Zaratan, un comodo strumento basato su Docker per installare tutte le componenti necessarie al funzionamento di Drupal, e Robo, un task runner scritto in PHP in grado di eseguire sia comandi Drush che azioni sul filesystem, sul database, ecc...
di Luca Cracco
Distribuzione delle sessioni in PHP in caso di load balancing su più serverGianluca Gimigliano
La distribuzione delle sessioni è un problema che riguarda la scalabilità dei siti web su più server, in particolare per PHP che di norma salva le sessioni su file system del singolo server.
In questo talk vedremo alcune strategie di risoluzione del problema (load balancing mirato, accentramento delle sessioni) e ci soffermeremo su una personale soluzione che prevede delle sessioni distribuite su più macchine contemporaneamente creando un’architettura a maglia attraverso l’uso di memcache
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsMirko Mancin
Corso frontale di 20 ore indirizzato a docenti di scuole superiori nel settore ICT. Il corso vuole essere una palestra (per questo CodingGym) di rafforzamento delle basi già esistenti e di supporto per corsi futuri. Queste slide sono rilasciate con la licenza Creative Commons e quindi potete scaricarle ed utilizzarle a vostro piacere. Ricordate però di CITARMI! :D
How to do Test-Driven Development in C illustrated by solving a Recently Used List kata.
Similar slides can be found here http://www.olvemaudal.com/talks
Let's turn the table. Suppose your goal is to deliberately create buggy programs in C and C++ with serious security vulnerabilities that can be "easily" exploited. Then you need to know about things like stack smashing, shellcode, arc injection, return-oriented programming. You also need to know about annoying protection mechanisms such as address space layout randomization, stack canaries, data execution prevention, and more. These slides will teach you the basics of how to deliberately write insecure programs in C and C++.
A PDF version of the slides can be downloaded from my homepage: http://olvemaudal.com/talks
Here is a video recording of me presenting these slides at NDC 2014: http://vimeo.com/channels/ndc2014/97505677
Enjoy!
Irrespective of devices, C language is the best when it comes to Embedded Systems. This detailed course talks about various finer details of the language.
Sometimes you see code that is perfectly OK according to the definition of the language, but which is flawed because it breaks too many established idioms and conventions. On the other hand, a solid piece of code is something that looks like it is written by an experienced person who cares about professionalism in programming.
A presentation at Norwegian Developer Conference 2010
Embedded C programming based on 8051 microcontrollerGaurav Verma
This lecture note covers the embedded 'c' programming constructs based on 8051 microcontroller. Although the same concepts can be used for other advanced microcontrollers with some modifications.
This C tutorial covers every topic in C with the programming exercises. This is the most extensive tutorial on C you will get your hands on. I hope you will love the presentation. All the best. Happy learning.
Feedbacks are most welcome. Send your feedbacks to dwivedi.2512@gmail.com. You can download this document in PDF format from the link, http://www.slideshare.net/dwivedi2512/learning-c-an-extensive-guide-to-learn-the-c-language
Programming is hard. Programming correct C and C++ is particularly hard. Indeed, both in C and certainly in C++, it is uncommon to see a screenful containing only well defined and conforming code.Why do professional programmers write code like this? Because most programmers do not have a deep understanding of the language they are using.While they sometimes know that certain things are undefined or unspecified, they often do not know why it is so. In these slides we will study small code snippets in C and C++, and use them to discuss the fundamental building blocks, limitations and underlying design philosophies of these wonderful but dangerous programming languages.
This content has a CC license. Feel free to use it for whatever you want. You may download the original PDF file from: http://www.pvv.org/~oma/DeepC_slides_oct2012.pdf
Slide del decimo Meetup di Milano, che si è tenuto il 26 Gennaio dalle ore 10:30 alle ore 12:00 in formato virtuale.
Abbiamo parlato insieme a Davide Bonaciti di come ha realizzato un caso d'uso di automazione e CI/CD. Stefano Bernardini, Serena Galassi e Lorenzo Ornella, invece, ci parleranno di DataGraph e ci mostreranno una demo di implementazione per realizzare un'asta del fantacalcio 2.0.
Corso di Basi e Fondamenti di Programmazione in C++ Lezione 1Daniele Falamesca
Argomenti Trattati nel Corso:
Fondamenti
Costruttori del Linguaggio
Vettori
Record
Funzioni
Ricorsione
Puntatori
Strutture Dinamiche
Programmazione ad Oggetti
Nel Corso saranno presenti circa 60 Esercizi Svolti per aiutarvi a comprendere i concetti delle Lezioni
Una guida passo-passo per installare un laboratorio multimediale/di sviluppo didattico scolastico linux e windows (dual boot) nel minor tempo possibile e con le stesse funzionalità. Aggiornata con Italc2 e Ubuntu 12.04 LTS
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android è un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunità di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeDaniele Costarella
Un'introduzione all'attività svolta da Open Makers Italy a cura di Daniele Costarella e Salvatore Carotenuto: attività, articoli, progetti e workshop in cantiere. Ci caleremo poi nel mondo della stampa 3D: dal modello tridimensionale all'oggetto pronto all'uso. Saranno trattati i principi della stampa 3D, con dettagli sulle impostazioni e sui materiali di estrusione. Il talk di chiuderà con la presentazione di una mano robotica stampata controllata tramite Arduino da un guanto indossabile.
Relatori:
Daniele Costarella, Salvatore Carotenuto, Mauro D'Ambrosi, Marco D'Ambrosi, Donato D'Ambrosi
Development of a Wireless Sensors Network powered by Energy Harvesting techni...Daniele Costarella
Develer Workshop:
A workshop focused on the principles and benefits of applying the Energy Harvesting techniques on Wireless Sensor Networks. The contents come from my Better Embedded 2013 talk.
2. Linux Embedded per l’automazione
GNU/Linux, Google App Engine e Android
Daniele Costarella
Electronic Engineer, GDG Campania Co-Organizer, Open Makers Italy
Mobile Innovation Day Caserta | 16 maggio 2014, Caserta
3. Part 1: Linux Embedded
Vantaggi – Un esempio reale – Esempi di utilizzo
4. Cos’è?
Con Embedded Linux ci si riferisce a quell’insieme di distribuzioni
concepite per essere utilizzate su sistemi embedded.
[Wikipedia]
5. ● Riutilizzo dei componenti
● Capacità di riutilizzo dei componenti
● Molti componenti per il nostro sistema sono già disponibili e open-source
● Supporto hardware ai protocolli di rete, periferiche multimediali, librerie grafiche ecc.
● Focus sul prodotto finale
● Costo basso
● Il software libero può essere copiato su più dispositivi e senza alcun costo
● Strumenti di sviluppo per la maggior parte liberi
● Costo delle licenze software estremamente ridotto
● Incremento del budget per l’hardware
Vantaggi
6. ● Pieno controllo su tutto il software utilizzato
● Disponibilità di componenti di qualità elevatissima
● Semplicità nella fase di testing
● Supporto della community
● Entrare a far parte di una gigantesca community
Vantaggi
7. Scelta della board: BeagleBone Black
Un computer su singola scheda, progettato per mantenere bassi i costi di vendita, pur
offrendo prestazioni e connettività prossime a quelle di un laptop.
In grado di eseguire il boot di Linux in meno di 10 secondi. Uno strumento di sviluppo ideale
per hobbisti e sviluppatori.
8. ● GNU/Linux
● Filesystem
● Multitasking
● Supporto di rete
● Connettività
● Timekeeping
● Accesso remoto
● Dimensioni
● Community
Tutto in una scheda
9. BeagleBone Black: caratteristiche tecniche
Processore: AM335x 1GHz ARM® Cortex-A8
512MB DD3 RAM
2GB 8-bit eMMC on-board flash storage
Acceleratore grafico 3D
Connettività
USB client for power and communications
USB host
Ethernet
HDMI
2x46 pin headers
Compatibilità software
Ångström Linux
Android
Cloud9 IDE on Node.js w/ BoneScript Library
E altro ancora…
10. Operativi in pochi secondi
● Connessione tramite cavo USB
● Test della connessione
● Da browser: http://192.168.7.2
● Pagine introduttive su BeagleBone
● Tutto pronto per iniziare
11. Connessione tramite SSH
● Su Linux e Mac basta semplicemente lanciare un terminale e digitare il
seguente comando:
$ ssh 192.168.7.2 –l root
12. La libreria Adafruit_BBIO
Una volta eseguito l’accesso tramite SSH (su Angstrom Linux):
$ opkg update && opkg install python-pip python-setuptools python-smbus
$ pip install Adafruit_BBIO
Per verificare che l’installazione sia avvenuta con successo:
import Adafruit_BBIO.GPIO as GPIO; print GPIO
#you should see this or similar:
<module 'Adafruit_BBIO.GPIO' from '/usr/local/lib/python2.7/dist-packages/Adafruit_BBIO/GPIO.so'>
13. Utilizzo della libreria Adafruit_BBIO
Aprire una console Python e importare la libreria (per esempio GPIO)
Python 2.7.5 (default, Sep 2 2013, 05:24:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import Adafruit_BBIO.GPIO as GPIO
Accesso ai pin tramite pin “key” o nome
import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_10", GPIO.OUT)
GPIO.output("P8_10", GPIO.HIGH
GPIO.setup("P8_14", GPIO.IN)
if GPIO.input("P8_14"):
print("HIGH")
else:
print("LOW")
15. LED Blinking: scriviamo il codice
Creiamo un file eseguibile con un semplice programma per il lampeggio del LED
$ nano blink.py
Python
import Adafruit_BBIO.GPIO as GPIO
import time
GPIO.setup("P8_10", GPIO.OUT)
while True:
GPIO.output("P8_10", GPIO.HIGH)
time.sleep(0.5)
GPIO.output("P8_10", GPIO.LOW)
time.sleep(0.5)
19. Scritto in Python, è uno strumento molto flessibile per realizzare infrastrutture complesse e
performanti.
Caratteristiche
● Contiene server e debugger per lo sviluppo
● Richieste RESTful
● Supporta cookie di sicurezza (sessioni lato client)
● 100% WSGI 1.0 compatibile
● Documentazione estensiva
● Compatibilità con Google App Engine
● Estensioni disponibili per migliorare le caratteristiche desiderate
Flask
21. ● Project Directory/ - Contiene tutti i file della tua app
● app.py – Codice Python/Flask
● requirements.txt – Lista di tutte le dipendenze
● static/
● js/ - file javascript, per contenuti web interattivi
● css/ - file CSS, per offrire alla tua app un proprio stile
● img/ - immagini
● templates/ - directory contenente I template Flask
Struttura
22. BASH
Lista dei dispositivi connessi
$ curl -i http://localhost:5000/remote/api/v1.0/devices
{
"devices": [
{
"active": true,
"description": ”Temperatura rilevata in camera di Daniele",
"status": false,
"title": “Room Temperature",
"type": "Termometer",
"uri": "http://localhost:5000/remote/api/v1.0/devices/1",
"value": "20.1"
},
….
….
23. Esempio 1: accendere (e spegnere) un LED
GET
$ curl -i http://localhost:5000/remote/api/v1.0/devices/2
PUT (value: 0 | 1)
$ curl -i -H "Content-Type: application/json" -X PUT -d '{"value":1}'
http://localhost:5000/remote/api/v1.0/devices/2
BASH
24. Esempio 2: pilotare un termostato
GET
$ curl -i http://localhost:5000/remote/api/v1.0/devices/1
PUT (temp_on e temp_off)
$ curl -i -H "Content-Type: application/json" -X PUT -d '{"temp_on":1, "temp_off":10}'
http://localhost:5000/remote/api/v1.0/devices/term
BASH
25. Metodi implementati
Metodo HTTP Azione Esempio
GET Ottenere informazioni sulle risorse http://localhost:5000/remote/api/v1.0/devices
GET Ottenre informazioni su una risorsa
http://localhost:5000/remote/api/v1.0/devices/123
POST Aggiungere un nuovo dispositivo
http://localhost:5000/remote/api/v1.0/devices
(creare un nuovo dispositivo a partire dai dati presenti nella richiesta)
PUT
Aggiornare lo stato di un
parametro/dispositivo
http://localhost:5000/remote/api/v1.0/devices/123
(modificare #123 con i dati presenti nella richiesta)
DELETE Eliminare un dispositivo
http://localhost:5000/remote/api/v1.0/devices/123
(eliminare l’item #123)
26. Android
Un’App per i nostri test
● Semplicità d’uso
● Codice semplice e pulito
● Struttura modulare
● Ricezione automatica dei nuovi dispositivi
● Compatibile con tutte le versioni più
recenti di Android
27. Open Makers Day
16 giugno 2014 | Università Parthenope, Centro Direzionale di Napoli
Partecipa al Call For Makers su www.openmakersitaly.org
Scadenza: 30 maggio 2014