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 dallacquisizione 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 lautomazione 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 (dallesecuzione 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 unarchitettura a maglia attraverso luso 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 dallacquisizione 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 lautomazione 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 (dallesecuzione 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 unarchitettura a maglia attraverso luso 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
The document discusses various tools that are part of the GNU toolchain used for embedded software development. It provides descriptions of common tools used with the GNU Compiler Collection (GCC) such as ar, autoconf, as, gdb, ld, libtool, make, nm, objcopy, objdump, ranlib, readelf, size, strings and strip. It also covers topics like the preprocessor, compiler options, anonymous unions, arrays of zero length, and using attributes with GCC.
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!
The document introduces some basic C++ idioms, rules, guidelines and best practices. The author notes that some items are based on their personal style preferences and the styles of groups they work with. The intention is to use the presentation to spark discussion, as it includes some controversial issues. Readers are encouraged to provide criticism of the example code presented.
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.
This document provides 50 interview questions on C programming language organized into 5 chapters: Variables & Control Flow, Operators, Constants & Structures, Functions, Pointers, and Programs. It aims to help both freshers and experienced programmers quickly brush up on basic C concepts commonly asked during job interviews at top companies. Each question is accompanied by a detailed answer along with code examples where applicable. Feedback is welcomed to be sent to the publisher.
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 c++ programming fundamentals masterHossam Hassan
?
This document provides an overview of embedded C/C++ programming fundamentals. It discusses what embedded systems and microcontrollers are. It also discusses typical development tools and processes like compilers, linkers, and debugging. Several programming languages are discussed at different levels like machine code, assembly language, and high-level languages like C/C++. C/C++ are recommended for embedded programming due to efficiency and ability to access I/O while assembly is used for speed-critical code. The document also outlines basic C/C++ programming concepts like program structure with directives, declarations, and statements.
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
ݺߣ 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
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
The document summarizes the development of an energy harvesting wireless sensor node powered by piezoelectric, thermoelectric, and solar techniques. It describes the design of a demo board with energy harvesting capabilities including an RF communication module and temperature sensor. The node is intended to operate with low power consumption in sleep mode and integrate energy from multiple ambient sources to power wireless transmission of sensor data for long-term remote monitoring applications.
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.
Development of a wireless sensor network powered by energy harvesting techniquesDaniele Costarella
?
The document discusses the development of a wireless sensor network powered by energy harvesting techniques. It describes how energy harvesting captures and converts energy from the environment into usable electrical energy. This can power wireless sensor nodes and potentially provide infinite lifetime by replacing batteries. The document outlines various energy sources like solar, thermal, and piezoelectric. It also discusses the design of energy harvesting wireless sensor nodes, including power management circuits, energy storage, sensing, wireless communication, and prototyping challenges. Data analysis of sensor readings and energy levels are demonstrated.
2. Linux Embedded per lautomazione
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 C Un esempio reale C Esempi di utilizzo
4. Cos?
Con Embedded Linux ci si riferisce a quellinsieme 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 lhardware
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 Cl root
12. La libreria Adafruit_BBIO
Una volta eseguito laccesso tramite SSH (su Angstrom Linux):
$ opkg update && opkg install python-pip python-setuptools python-smbus
$ pip install Adafruit_BBIO
Per verificare che linstallazione 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 C Codice Python/Flask
requirements.txt C 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 litem #123)
26. Android
UnApp per i nostri test
Semplicit duso
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