SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
BACKEND DO IOT
ARDUINO
ESP8266
RASPBERRY PI
FALCON
RETHINKDB
SOBRE MIM
AFONSO COUTINHO
PROGRAMADOR

PROFESSOR
/AFONSOCOUTINHO
FACEBOOK
AFONSO@WOLKSEN.COM
EMAIL
PORQUE BACKEND DA
INTERNET DAS
COISAS?
PRECISAMOS ENTENDER O QUE NOS
ESPERA…
▸ Em 2020> quase todas as coisas vão tá conectadas
na internet.
▸ Cada vez mais existe mais dispositivos consumindo
e alimentando nossos sistemas corporativos.
COMO FUNCIONA HOJE EM
DIA O DESENVOLVIMENTO
BACKEND?
SISTEMAS EMPRESARIAIS
▸ Software para servidores potentes, datacenters, etc.
▸ Desenvolvimento em uma plataforma unificada.
▸ Programação com alto nível de abstração.
SISTEMAS EMBARCADOS
▸ Software para dispositivos de várias configurações.
▸ Desenvolvimento para plataformas diferentes.
▸ Programação de baixo nível de abstração
AÍ ENTRA O INCRÍVEL MUNDO DOS
SISTEMAS IOT
PRA UNIFICAR TODOS!
ENTRETANTO…
PRECISAMOS DE GENTE DOMINANDO
O BACKEND DESSE NOVO MUNDO!
IoT
AGORA, COMO
SER UM?
ISSO "NÓIS"
ENTENDE!
IOT É BASICAMENTE UM
SISTEMA DE MENSAGENS
COM:
▸ Mensagens assíncronas
▸ Mensagens pequenas
▸ Bastante mensagens
ISSO "NÓIS"
ENTENDE TB!
DESENVOLVIMENTO
IOT FICA FÁCIL
COM AS PRÁTICAS
DE DEVOPS!
UIA! "NÓIS"
TAMBÉM!
IOT AMA
LINUX!
IOT
+
POR QUÊ
NÃO?
MAS, EXISTE UM LADO
NEGRO…
É COMUM USAR VÁRIOS PROTOCOLOS PRA
UMA ÚNICA SOLUÇÃO…
IPv4/IPv6, RPL, EPC, uCode, IPv6,
URIs, Wifi, Bluetooth, ZigBee,
NFC, Physical Web, mDNS, UPnP,
MQTT, CoAP, AMQP, Websocket,
XMPP, DDS, REST, SOAP…
TER CONECTIVIDADE ESTÁVEL É UM LUXO…
PLANEJAR O SISTEMA SEMPRE PENSANDO O
PIOR É NECESSÁRIO!
…AS VEZES NEM ENERGIA!
PLANEJAR O SISTEMA SEMPRE PENSANDO O
PIOR É NECESSÁRIO! V2
PRECISAMOS PAGAR PRA USAR ALGUNS
SERVIÇOS, COMO CELULAR, WIFI, ETC…
PARECE ÓBVIO MAS POUCOS LEMBRAM DISSO!
É PRECISO SOBREVIVER NAS CONDIÇÕES
ADVERSAS DO AMBIENTE DE PRODUÇÃO
CHUVA, CALOR, FRIO, VENTO, VIBRAÇÃO, GPS
SEM SINAL…
NECESSIDADE DE SER TUDO REMOTO
DEPLOY REMOTO, ATUALIZAÇÃO REMOTA,
MONITORAMENTO REMOTO, ETC…
HARDWARE
BACKEND DO IOT
ARDUINO
▸ Open-Hardware
▸ Linguagem própria
▸ Plug'n'play
▸ Comunidade madura
▸ Paixão mundial
▸ Fácil de aprender
▸ Coringa pra prototipar
MODELOS
SHIELDS
MÓDULOS
MONTE O SEU EM CASA
BACKEND DO IOT
RASPBERRY PI
▸ Open-Hardware(quase)
▸ Mini PC
▸ Ótimo para multimídia
▸ Comunidade madura
▸ GPIOs via software
▸ Barato
▸ Serve pra produção
PIBOY
MAGIC MIRROR
HACK FTW
CARPUTER
BANANA PI
C.H.I.P
WIFI + BLE
PI ZERO
WIFI + BLE CUSTOM SHIELDS
RECEPTOR IR
8GB INTERNO
4GB INTERNO
5 USD
9 USD
35 USD
BACKEND DO IOT
ESP8266
▸ Open-Hardware
▸ Usa pouca energia
▸ WiFi
▸ Comunidade madura
▸ Pequeno
▸ Barato
▸ Ótimo pra produção
CHATO DE PROGRAMAR
NODEMCU
WEMOS
MICRO SHIELDS
RTL8710
ARM CORTEX-M3
ESP8285
WEARABLES
ESP32
BLUETOOTH 4.2 DUAL CORE
SOFTWARE
BACKEND DO IOT
FALCON
▸ Focado para microservices
▸ Minimalista
▸ Rápido, Leve e Flexível
▸ Simples
▸ Fácil
▸ Roda em qualquer WSGI server
▸ Focado pra arquitetura REST
▸ 20% mais rápido se tiver Cython
▸ Suporta muito bem Unicode
▸ Intuitivo
▸ Suporta Python 2.6~2.7 e 3.3~3.5
▸ Compatível com PyPy e Jython
https://falconframework.org/
Falcon Framework
$ pip install falcon
Guia Rápido!
Falcon Framework
# oi.py
import falcon
class Hello(object):
def on_get(self, req, resp):
resp.status = falcon.HTTP_200
resp.body = ('nHello World! '
‘n…de cima! HUE.')
app = falcon.API()
oi = Hello()
app.add_route('/oi', oi)
Guia Rápido!
Falcon Framework
$ pip install gunicorn
$ gunicorn oi:app
Guia Rápido!
Falcon Framework
$ curl localhost:8000/oi
Guia Rápido!
BACKEND DO IOT
RETHINKDB
▸ Open-Source
▸ Rethink Query Language(ReQL)
▸ Escalável
▸ Fácil de Instalar e Usar
▸ Feito em C++ na unha
▸ Admin Dashboard é legal
▸ Sob licença AGPL v3
BACKEND DO IOT
CLIENT DRIVERS OFICIAIS
▸ Ruby
▸ Python
▸ Javascript/NodeJS
▸ Java
CLIENT DRIVERS MANTIDOS PELA COMUNIDADE
▸ C++
▸ C#
▸ R, etc..
BEM
DOCUMENTADOS
MAIS OU MENOS
DOCUMENTADOS
r.table('chat').orderBy('last_update').changes()
.changes()
r.http('https://api.github.com/repos/afonso/impressao3d/commits')
r.http
RethinkDB Query Language
ReQL
r.table('users').run(conn)
r.table(‘users').pluck('last_name').run(conn)
r.table(‘users').pluck('last_name').distinct().run(conn)
r.table('users').pluck('last_name').distinct().count().run(conn)
Chainable
RethinkDB Query Language
ReQL
query = r.table('users').pluck('last_name').distinct()
query.run(conn)
Execução Server-side
RethinkDB Query Language
ReQL
r.table('users').filter(lambda user: user['age'] > 30).run(conn)
# ou sem lambda
r.table('users').filter(r.row['age'] > 30).run(conn)
Query avançada
RethinkDB Query Language
ReQL
#matematica
(r.expr(2) + 2 / 2).run(conn)
#condicional
(r.expr(2) > 3).run(conn)
Divertido
RethinkDB Query Language
ReQL
r.table_create('fib').run(conn)
r.table('fib').insert([{'id': 0, 'value': 0}, {'id': 1, 'value': 1}]).run(conn)
r.expr([2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).for_each(lambda x:
r.table('fib').insert({'id': x,
'value': (r.table('fib').order_by('id').nth(x - 1)['value'] +
r.table('fib').order_by('id').nth(x - 2)['value'])
})).run(conn)
r.table('fib').order_by('id')['value'].run(conn)
Divertido #fibonacci
BACKEND DO IOT
COMENTÁRIOS SOBRE O RETHINKDB
▸ É preciso criar o banco e as tabelas manualmente
▸ Não existe o .stats() como no mongodb.
▸ Prioriza consistência em vez de velocidade
▸ Não tem muito suporte pra rodar em Windows
▸ NASA tá usando pra integração de dados
▸ A empresa que criou e estava por trás do projeto faliu
▸ Agora o projeto é mantido 100% pela comunidade
CASES
HACKED
VENDING MACHINE
CASES
HACKED VENDING MACHINE
ESP8266
INTERNET
ARDUINO
MOTORES
CHUTE SENSOR
TELEGRAM API
CHAT BOT
USUÁRIO
Celular
Vending Machine
ESTRUTURA
CASES
HACKED VENDING MACHINE
PONTOS
CEGOS
CASES
PONTOS CEGOS
SD CARD
PARSING & UPLOAD
ARDUINO
LEDS
SENSORES
TELEGRAM API
CHAT BOT
USUÁRIO
Celular
Capacete
ESTRUTURA
BOTÃO
GPS
RETHINKDB
OPEN STREET MAPS
CASES
PONTOS CEGOS
PLUVI.ON
CASES
PLUVI.ON
ESTRUTURA
ESP8266
TEMPERATURA
HUMIDADE
TELEGRAM API
CHAT BOT
USUÁRIO
Celular
Pluviometro
CHUVA
RETHINKDB
FALCON
Consumo da API Rest
MAPS APPS
SITES
CASES
PLUVI.ON
TELEGRAM?
BOT DOMINATION!!!
TELEGRAM BOTS
THE BOTFATHER


SÓ FALAR COM @BOTFATHER
E SEGUIR AS INSTRUÇÕES
TELEGRAM BOTS
CONSUMINDO A API
PHP PYTHON JAVA
C#
RUBY
GO
LUA
NODEJS
HASKELL
JAVA
TELEGRAMBOTS
TELEGRAM.BOT
TELEGRAMBOT
TBOTAPI
LUA-TELEGRAM-BOT
TELEGRAM-NODE-BOT
HASKELL-TELEGRAM-API
TELEGRAMBOTS
TWX.BOTAPI
TELEPOT
TELEGRAM BOT SERVICE
HELLOBOT
SIMPLE POLL BOT
BOT API PHP SDK
TÁ TUDO NO GITHUB!
/AFONSOCOUTINHO
FACEBOOK
AFONSO@WOLKSEN.COM
EMAIL
FIM!

Weitere ähnliche Inhalte

Andere mochten auch

Comunicação estética e cultura - Conceitos de estética
Comunicação estética e cultura - Conceitos de estéticaComunicação estética e cultura - Conceitos de estética
Comunicação estética e cultura - Conceitos de estéticaBruno Santos
 
Programador (front|back) end moderno, por Leonardo Hackin
Programador (front|back) end moderno, por Leonardo HackinProgramador (front|back) end moderno, por Leonardo Hackin
Programador (front|back) end moderno, por Leonardo HackiniMasters
 
Exercícios - hibridização
Exercícios -  hibridizaçãoExercícios -  hibridização
Exercícios - hibridizaçãoIsabella Silva
 
Introduction to iot and arduino uno r3
Introduction to iot and arduino uno r3Introduction to iot and arduino uno r3
Introduction to iot and arduino uno r3Saurav Chaudhary
 
Hibridização de orbitais atômicos
Hibridização de orbitais atômicosHibridização de orbitais atômicos
Hibridização de orbitais atômicosKaroline Leite Cunha
 
SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010
SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010
SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010Renata Tibiriçá
 
10 Dicas de SEO para Bombar o seu Blog
10 Dicas de SEO para Bombar o seu Blog10 Dicas de SEO para Bombar o seu Blog
10 Dicas de SEO para Bombar o seu BlogFabio Ricotta
 
ニフティクラウド Mobile backendとio tの良い関係
ニフティクラウド Mobile backendとio tの良い関係ニフティクラウド Mobile backendとio tの良い関係
ニフティクラウド Mobile backendとio tの良い関係ニフクラ mobile backend
 
Teoria dos orbitais moleculares
Teoria dos orbitais molecularesTeoria dos orbitais moleculares
Teoria dos orbitais molecularesAlex Junior
 
Internet of Things: Its Applications Future and Problems
Internet of Things: Its Applications Future and ProblemsInternet of Things: Its Applications Future and Problems
Internet of Things: Its Applications Future and ProblemsRiten Debnath
 
A Complete IoT Backend Infrastructure in FIWARE
A Complete IoT Backend Infrastructure in FIWAREA Complete IoT Backend Infrastructure in FIWARE
A Complete IoT Backend Infrastructure in FIWAREFIWARE
 
Leitura, interpretação e produção de texto
Leitura, interpretação e produção de textoLeitura, interpretação e produção de texto
Leitura, interpretação e produção de textoRaquel Pereira
 
Building IoT with Arduino Day One
Building IoT with Arduino Day One Building IoT with Arduino Day One
Building IoT with Arduino Day One Anthony Faustine
 
The Internet of Things - Software is eating the world, Industry, and everythi...
The Internet of Things - Software is eating the world, Industry, and everythi...The Internet of Things - Software is eating the world, Industry, and everythi...
The Internet of Things - Software is eating the world, Industry, and everythi...Martin Spindler
 
Hist ria e_termodin_mica
Hist ria e_termodin_micaHist ria e_termodin_mica
Hist ria e_termodin_micaIsabella Silva
 
Mobile adhoc network
Mobile adhoc networkMobile adhoc network
Mobile adhoc networkSubiya Nadar
 
GetShift - IoT Devices Done Right.
GetShift - IoT Devices Done Right.GetShift - IoT Devices Done Right.
GetShift - IoT Devices Done Right.Sean Greenhalgh
 
Android Control Hardware and Arduino IoT ( 22 Aug 15 )
Android Control Hardware and Arduino IoT ( 22 Aug 15 )Android Control Hardware and Arduino IoT ( 22 Aug 15 )
Android Control Hardware and Arduino IoT ( 22 Aug 15 )Adun Nanthakaew
 

Andere mochten auch (20)

Comunicação estética e cultura - Conceitos de estética
Comunicação estética e cultura - Conceitos de estéticaComunicação estética e cultura - Conceitos de estética
Comunicação estética e cultura - Conceitos de estética
 
Programador (front|back) end moderno, por Leonardo Hackin
Programador (front|back) end moderno, por Leonardo HackinProgramador (front|back) end moderno, por Leonardo Hackin
Programador (front|back) end moderno, por Leonardo Hackin
 
Exercícios - hibridização
Exercícios -  hibridizaçãoExercícios -  hibridização
Exercícios - hibridização
 
Introduction to iot and arduino uno r3
Introduction to iot and arduino uno r3Introduction to iot and arduino uno r3
Introduction to iot and arduino uno r3
 
Hibridização de orbitais atômicos
Hibridização de orbitais atômicosHibridização de orbitais atômicos
Hibridização de orbitais atômicos
 
SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010
SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010
SEO + UX: Otimizando as buscas e a experiência do usuário - FMDS SEOCamp 2010
 
10 Dicas de SEO para Bombar o seu Blog
10 Dicas de SEO para Bombar o seu Blog10 Dicas de SEO para Bombar o seu Blog
10 Dicas de SEO para Bombar o seu Blog
 
ニフティクラウド Mobile backendとio tの良い関係
ニフティクラウド Mobile backendとio tの良い関係ニフティクラウド Mobile backendとio tの良い関係
ニフティクラウド Mobile backendとio tの良い関係
 
Teoria dos orbitais moleculares
Teoria dos orbitais molecularesTeoria dos orbitais moleculares
Teoria dos orbitais moleculares
 
Future Internet of Things
Future Internet of ThingsFuture Internet of Things
Future Internet of Things
 
Internet of Things: Its Applications Future and Problems
Internet of Things: Its Applications Future and ProblemsInternet of Things: Its Applications Future and Problems
Internet of Things: Its Applications Future and Problems
 
IoT with Arduino
IoT with ArduinoIoT with Arduino
IoT with Arduino
 
A Complete IoT Backend Infrastructure in FIWARE
A Complete IoT Backend Infrastructure in FIWAREA Complete IoT Backend Infrastructure in FIWARE
A Complete IoT Backend Infrastructure in FIWARE
 
Leitura, interpretação e produção de texto
Leitura, interpretação e produção de textoLeitura, interpretação e produção de texto
Leitura, interpretação e produção de texto
 
Building IoT with Arduino Day One
Building IoT with Arduino Day One Building IoT with Arduino Day One
Building IoT with Arduino Day One
 
The Internet of Things - Software is eating the world, Industry, and everythi...
The Internet of Things - Software is eating the world, Industry, and everythi...The Internet of Things - Software is eating the world, Industry, and everythi...
The Internet of Things - Software is eating the world, Industry, and everythi...
 
Hist ria e_termodin_mica
Hist ria e_termodin_micaHist ria e_termodin_mica
Hist ria e_termodin_mica
 
Mobile adhoc network
Mobile adhoc networkMobile adhoc network
Mobile adhoc network
 
GetShift - IoT Devices Done Right.
GetShift - IoT Devices Done Right.GetShift - IoT Devices Done Right.
GetShift - IoT Devices Done Right.
 
Android Control Hardware and Arduino IoT ( 22 Aug 15 )
Android Control Hardware and Arduino IoT ( 22 Aug 15 )Android Control Hardware and Arduino IoT ( 22 Aug 15 )
Android Control Hardware and Arduino IoT ( 22 Aug 15 )
 

Ähnlich wie Backend do Iot com rethinkdb e python

Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)Wellington Silva
 
Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)Wellington Silva
 
Você não deveria escrever uma API para isso
Você não deveria escrever uma API para issoVocê não deveria escrever uma API para isso
Você não deveria escrever uma API para issoJunior Conte
 
O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)Wellington Silva
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Wellington Silva
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasMarco Antonio Maciel
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudAlvaro Viebrantz
 
Software Livre, O Caminho do Futuro
Software Livre, O Caminho do FuturoSoftware Livre, O Caminho do Futuro
Software Livre, O Caminho do Futuroterramel
 
Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)muldy
 
Funtoo escla
Funtoo esclaFuntoo escla
Funtoo esclaDaniel
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
KNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o BrasilKNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o BrasilTiago Barros
 
Software Livre, o caminho do futuro
Software Livre, o caminho do futuroSoftware Livre, o caminho do futuro
Software Livre, o caminho do futuroterramel
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e MonitorizaçãoSAPO Sessions
 
Casos De Sucesso De Software Livre Ap
Casos De Sucesso De Software Livre ApCasos De Sucesso De Software Livre Ap
Casos De Sucesso De Software Livre ApArthur
 

Ähnlich wie Backend do Iot com rethinkdb e python (20)

Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)Afinal, o que é Docker? (Meetup Laravel #12)
Afinal, o que é Docker? (Meetup Laravel #12)
 
Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)Afinal, o que é Docker? (Webinar Umbler)
Afinal, o que é Docker? (Webinar Umbler)
 
Você não deveria escrever uma API para isso
Você não deveria escrever uma API para issoVocê não deveria escrever uma API para isso
Você não deveria escrever uma API para isso
 
O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)O que é o Docker afinal? (Workshop Novatec)
O que é o Docker afinal? (Workshop Novatec)
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Phonegap
PhonegapPhonegap
Phonegap
 
Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)
 
Cygwin
CygwinCygwin
Cygwin
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das Coisas
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google Cloud
 
Software Livre, O Caminho do Futuro
Software Livre, O Caminho do FuturoSoftware Livre, O Caminho do Futuro
Software Livre, O Caminho do Futuro
 
Raspberry Pi + Python
Raspberry Pi + PythonRaspberry Pi + Python
Raspberry Pi + Python
 
Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)
 
Funtoo escla
Funtoo esclaFuntoo escla
Funtoo escla
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
KNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o BrasilKNoT - Uma plataforma de IoT interoperável para o Brasil
KNoT - Uma plataforma de IoT interoperável para o Brasil
 
Software Livre, o caminho do futuro
Software Livre, o caminho do futuroSoftware Livre, o caminho do futuro
Software Livre, o caminho do futuro
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e Monitorização
 
Casos De Sucesso De Software Livre Ap
Casos De Sucesso De Software Livre ApCasos De Sucesso De Software Livre Ap
Casos De Sucesso De Software Livre Ap
 
Python e suas aplicações
Python e suas aplicaçõesPython e suas aplicações
Python e suas aplicações
 

Backend do Iot com rethinkdb e python