SlideShare uma empresa Scribd logo
apresenta
CoDIng dOjo
coM arduINO
coding dojo
* Treino coletivo de programação
* Divertido e eficaz para:
 * Treinar boas práticas (Ex. TDD)
 * Aprender novas linguagens ou APIs
 * Integrar novos membros ao time
randorI: treIno lIvRe
* Duplas se sucedem resolvendo o
problema usando TDD e baby steps
* Uma dupla: piloto e co-piloto
 * Piloto opera o teclado
 * Co-piloto ajuda na solução
* Após 5 minutos, piloto volta
para a platéia; co-piloto vira
piloto; voluntário da platéia
é o novo co-piloto
tdd =
test-driven design
* Escrever testes *antes* de
implementar qualquer nova
funcionalidade
* Enquanto o teste não passa, a
platéia não pode se manifestar
(exceto a pedido dos pilotos)
* Quando o teste passa, pessoas
da platéia podem sugerir o
próximo passo
tdd com hardware?
* É complicado automatizar
testes com hardware
* No DOJO COM ARDUINO fazemos
testes manuais e observamos os
resultados
* Mas cada teste tem que ser
documentado *antes* de
implementar o próximo passo
babY steps
* Para avançar com segurança e
constância, cada passo deve ser
bem simples
 * Resista à tentação de
 resolver o problema todo de
 uma vez só, ou partir direto
 para abstração e generalização
* Não tenha medo de sugerir
passos bem pequenos e triviais
exemplO:
   Primeiro teste
* Piscar o led do pino 13
 * Para verificar a conexão
 USB e funcionamento básico do
 Arduino e do circuito sob
 teste
O probleMa de hoje

* Fazer uma animação simples
acendendo e apagando
sequencialmente os leds do
perímetro do display de 7
segmentos, com a velocidade
controlada pelo potenciômetro
Mão na massA!

* Voluntários?
 * Se não houver voluntários,
 o RANDORI pode ser terminado
 prematuramente!
venhaM nos vIsITAR eM São Paulo,
     todos são bem-vindos!




     http://garoa.net.br

Mais conteúdo relacionado

Mais procurados

Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
Josenaldo de Oliveira Matos Filho
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
Leonardo Fernandes
 
Introdução ao Spider CPM (4)
Introdução ao Spider CPM (4)Introdução ao Spider CPM (4)
Introdução ao Spider CPM (4)
Peter Mello
 
AI, UI & UX do amor - parte 1
AI, UI & UX do amor - parte 1AI, UI & UX do amor - parte 1
AI, UI & UX do amor - parte 1
Bianca Trancoso
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
Luciano Ramalho
 
Test-Driven Development com Ruby on Rails
Test-Driven Development com Ruby on RailsTest-Driven Development com Ruby on Rails
Test-Driven Development com Ruby on Rails
Rodrigo Manhães
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
Marcio de Jesus
 
Testes - Pra quê - 2013
Testes - Pra quê - 2013Testes - Pra quê - 2013
Testes - Pra quê - 2013
rodrigodealer
 
Automatizando testes em 4 passos
Automatizando testes em 4 passosAutomatizando testes em 4 passos
Automatizando testes em 4 passos
Hélio Medeiros
 
Open shot
Open shotOpen shot
Femug #9 iniciando com testes em node js!
Femug #9   iniciando com testes em node js!Femug #9   iniciando com testes em node js!
Femug #9 iniciando com testes em node js!
Leandro Nishijima
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
Gabriel Vinicios Silva Maganha
 
Protocolo experiência e-lab boyle-mariotte
Protocolo experiência e-lab boyle-mariotteProtocolo experiência e-lab boyle-mariotte
Protocolo experiência e-lab boyle-mariotte
Ministry of Education
 
Recortando vídeos no a tube catcher
Recortando vídeos no a tube catcherRecortando vídeos no a tube catcher
Recortando vídeos no a tube catcher
Mariangela Santos
 
Test Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concretoTest Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concreto
Hélio Medeiros
 
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteComo Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
Tchelinux
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
Josenaldo de Oliveira Matos Filho
 
Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem prática
Elias Nogueira
 
Refatorar! Porque ninguém gosta de código que cheira mal
Refatorar! Porque ninguém gosta de código que cheira malRefatorar! Porque ninguém gosta de código que cheira mal
Refatorar! Porque ninguém gosta de código que cheira mal
Andrei Tognolo
 
Java reativo
Java reativoJava reativo
Java reativo
Rafael Souza
 

Mais procurados (20)

Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
 
Introdução ao Spider CPM (4)
Introdução ao Spider CPM (4)Introdução ao Spider CPM (4)
Introdução ao Spider CPM (4)
 
AI, UI & UX do amor - parte 1
AI, UI & UX do amor - parte 1AI, UI & UX do amor - parte 1
AI, UI & UX do amor - parte 1
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
Test-Driven Development com Ruby on Rails
Test-Driven Development com Ruby on RailsTest-Driven Development com Ruby on Rails
Test-Driven Development com Ruby on Rails
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Testes - Pra quê - 2013
Testes - Pra quê - 2013Testes - Pra quê - 2013
Testes - Pra quê - 2013
 
Automatizando testes em 4 passos
Automatizando testes em 4 passosAutomatizando testes em 4 passos
Automatizando testes em 4 passos
 
Open shot
Open shotOpen shot
Open shot
 
Femug #9 iniciando com testes em node js!
Femug #9   iniciando com testes em node js!Femug #9   iniciando com testes em node js!
Femug #9 iniciando com testes em node js!
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Protocolo experiência e-lab boyle-mariotte
Protocolo experiência e-lab boyle-mariotteProtocolo experiência e-lab boyle-mariotte
Protocolo experiência e-lab boyle-mariotte
 
Recortando vídeos no a tube catcher
Recortando vídeos no a tube catcherRecortando vídeos no a tube catcher
Recortando vídeos no a tube catcher
 
Test Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concretoTest Driven Development - Em busca de feedback util e concreto
Test Driven Development - Em busca de feedback util e concreto
 
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteComo Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
 
Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem prática
 
Refatorar! Porque ninguém gosta de código que cheira mal
Refatorar! Porque ninguém gosta de código que cheira malRefatorar! Porque ninguém gosta de código que cheira mal
Refatorar! Porque ninguém gosta de código que cheira mal
 
Java reativo
Java reativoJava reativo
Java reativo
 

Destaque

Cp game design
Cp game designCp game design
Cp game design
Campus Party Brasil
 
Apresentação Hero Live Studio
Apresentação Hero Live StudioApresentação Hero Live Studio
Apresentação Hero Live Studio
herolive
 
As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013
As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013
As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013
Universidade Federal da Bahia
 
Arduino Hack Day Corumbá
Arduino Hack Day CorumbáArduino Hack Day Corumbá
Arduino Hack Day Corumbá
Samuel Cavalcante
 
Processos criativos de game design
Processos criativos de game designProcessos criativos de game design
Processos criativos de game design
Leonardo Bonfim Silva Reis
 
DDR
DDRDDR
Domótica: Controle dispositivos via comando de voz com arduino
Domótica: Controle dispositivos via comando de voz com arduinoDomótica: Controle dispositivos via comando de voz com arduino
Domótica: Controle dispositivos via comando de voz com arduino
Desiree Santos
 
Robotica para-humanos
Robotica para-humanosRobotica para-humanos
Robotica para-humanos
Jefferson Moreira
 
Domótica Aplicabilidade e Sistemas de Automação Residencial
Domótica  Aplicabilidade e Sistemas de Automação ResidencialDomótica  Aplicabilidade e Sistemas de Automação Residencial
Domótica Aplicabilidade e Sistemas de Automação Residencial
Aldais Almeida
 
OZI Mercado de Animação 3D
OZI Mercado de Animação 3DOZI Mercado de Animação 3D
OZI Mercado de Animação 3D
OZI Escola de Audiovisual
 
Domotica - projeto comando de voz com arduino
Domotica - projeto comando de voz com arduinoDomotica - projeto comando de voz com arduino
Domotica - projeto comando de voz com arduino
Desiree Santos
 
Introduçao ao Arduino e Domótica - Latinoware 2012
Introduçao ao Arduino e Domótica - Latinoware 2012Introduçao ao Arduino e Domótica - Latinoware 2012
Introduçao ao Arduino e Domótica - Latinoware 2012
Desiree Santos
 
Game Design além do "Joguinho": cultura e diversão na era do digital
Game Design além do "Joguinho": cultura e diversão na era do digitalGame Design além do "Joguinho": cultura e diversão na era do digital
Game Design além do "Joguinho": cultura e diversão na era do digital
Roger Tavares
 
Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]
Davi Kawasaki
 
Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]
Davi Kawasaki
 
Pesquisa - Animação 3D
Pesquisa - Animação 3DPesquisa - Animação 3D
Pesquisa - Animação 3D
Joao Costa
 
Historia da Animação Digital
Historia da Animação DigitalHistoria da Animação Digital
Historia da Animação Digital
Dra. Camila Hamdan
 
Animação - Processo Criativo
Animação - Processo CriativoAnimação - Processo Criativo
Animação - Processo Criativo
DAC UFS
 
A Arte da Animação: História da Animação e Técnicas de Animação
A Arte da Animação: História da Animação e Técnicas de AnimaçãoA Arte da Animação: História da Animação e Técnicas de Animação
A Arte da Animação: História da Animação e Técnicas de Animação
Ana Beatriz Cargnin
 

Destaque (20)

Cp game design
Cp game designCp game design
Cp game design
 
Apresentação Hero Live Studio
Apresentação Hero Live StudioApresentação Hero Live Studio
Apresentação Hero Live Studio
 
As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013
As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013
As tecnologias Motion tracking e Mocap: Poeticas e Ciberneticas, UnB 2013
 
Arduino Hack Day Corumbá
Arduino Hack Day CorumbáArduino Hack Day Corumbá
Arduino Hack Day Corumbá
 
Processos criativos de game design
Processos criativos de game designProcessos criativos de game design
Processos criativos de game design
 
DDR
DDRDDR
DDR
 
Domótica: Controle dispositivos via comando de voz com arduino
Domótica: Controle dispositivos via comando de voz com arduinoDomótica: Controle dispositivos via comando de voz com arduino
Domótica: Controle dispositivos via comando de voz com arduino
 
Robotica para-humanos
Robotica para-humanosRobotica para-humanos
Robotica para-humanos
 
Domótica Aplicabilidade e Sistemas de Automação Residencial
Domótica  Aplicabilidade e Sistemas de Automação ResidencialDomótica  Aplicabilidade e Sistemas de Automação Residencial
Domótica Aplicabilidade e Sistemas de Automação Residencial
 
OZI Mercado de Animação 3D
OZI Mercado de Animação 3DOZI Mercado de Animação 3D
OZI Mercado de Animação 3D
 
Domotica - projeto comando de voz com arduino
Domotica - projeto comando de voz com arduinoDomotica - projeto comando de voz com arduino
Domotica - projeto comando de voz com arduino
 
Introduçao ao Arduino e Domótica - Latinoware 2012
Introduçao ao Arduino e Domótica - Latinoware 2012Introduçao ao Arduino e Domótica - Latinoware 2012
Introduçao ao Arduino e Domótica - Latinoware 2012
 
Game Design além do "Joguinho": cultura e diversão na era do digital
Game Design além do "Joguinho": cultura e diversão na era do digitalGame Design além do "Joguinho": cultura e diversão na era do digital
Game Design além do "Joguinho": cultura e diversão na era do digital
 
Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [PÔSTER]
 
Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]
Aplicação de mapas mentais durante o brainstorm de um jogo digital [SICITE 2012]
 
Pesquisa - Animação 3D
Pesquisa - Animação 3DPesquisa - Animação 3D
Pesquisa - Animação 3D
 
Historia da Animação Digital
Historia da Animação DigitalHistoria da Animação Digital
Historia da Animação Digital
 
Animação - Processo Criativo
Animação - Processo CriativoAnimação - Processo Criativo
Animação - Processo Criativo
 
A Arte da Animação: História da Animação e Técnicas de Animação
A Arte da Animação: História da Animação e Técnicas de AnimaçãoA Arte da Animação: História da Animação e Técnicas de Animação
A Arte da Animação: História da Animação e Técnicas de Animação
 
Blender manual
Blender manualBlender manual
Blender manual
 

Semelhante a Dojo com Arduino

Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
thiagodp
 
Dojo abril
Dojo abrilDojo abril
Apresentando o Arduino - UESPI
Apresentando o Arduino - UESPIApresentando o Arduino - UESPI
Apresentando o Arduino - UESPI
Geraldo A Sarmento Nt
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
Luciano Ramalho
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria ter
Átilla Silva Barros
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
Camilo Lopes
 
Debugging node
Debugging nodeDebugging node
Debugging node
Jeniffer Nolasco
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
Rodrigo Bueno Santa Maria, BS, MBA
 
Sistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o ArduinoSistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o Arduino
Suzana Viana Mota
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
Dionatan default
 
Desenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitDesenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com Junit
Adolfo Neto
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
Dorneles Treméa
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
André Phillip Bertoletti
 
Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / Instruções
Pablo Bender
 
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoCoding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programando
Mauricio Matsuda
 
Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?
Maurício Aniche
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
Ramon Ribeiro Rabello
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
Comunidade Tá safo!
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
Jeferson Calazans
 
Projetor proinfo nte_taguatinga
Projetor proinfo nte_taguatingaProjetor proinfo nte_taguatinga
Projetor proinfo nte_taguatinga
Ediberto de Souza
 

Semelhante a Dojo com Arduino (20)

Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
Dojo abril
Dojo abrilDojo abril
Dojo abril
 
Apresentando o Arduino - UESPI
Apresentando o Arduino - UESPIApresentando o Arduino - UESPI
Apresentando o Arduino - UESPI
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria ter
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
 
Debugging node
Debugging nodeDebugging node
Debugging node
 
Minicurso de Arduino Básico
Minicurso de Arduino BásicoMinicurso de Arduino Básico
Minicurso de Arduino Básico
 
Sistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o ArduinoSistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o Arduino
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Desenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitDesenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com Junit
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
 
Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
Coding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / InstruçõesCoding Dojo - Apresentação / Instruções
Coding Dojo - Apresentação / Instruções
 
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoCoding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programando
 
Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
#safaDojo com Android
#safaDojo com Android#safaDojo com Android
#safaDojo com Android
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Projetor proinfo nte_taguatinga
Projetor proinfo nte_taguatingaProjetor proinfo nte_taguatinga
Projetor proinfo nte_taguatinga
 

Mais de Luciano Ramalho

Wiki-wiki S/A
Wiki-wiki S/AWiki-wiki S/A
Wiki-wiki S/A
Luciano Ramalho
 
Mongodb: agregação
Mongodb: agregaçãoMongodb: agregação
Mongodb: agregação
Luciano Ramalho
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
Luciano Ramalho
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
Luciano Ramalho
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
Luciano Ramalho
 
Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritores
Luciano Ramalho
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
Luciano Ramalho
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
Luciano Ramalho
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
Luciano Ramalho
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em Python
Luciano Ramalho
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
Luciano Ramalho
 
Open Library no Mongodb
Open Library no MongodbOpen Library no Mongodb
Open Library no Mongodb
Luciano Ramalho
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011
Luciano Ramalho
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
Luciano Ramalho
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaque
Luciano Ramalho
 
Modelos ricos
Modelos ricosModelos ricos
Modelos ricos
Luciano Ramalho
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
Luciano Ramalho
 
Ensinando OO com Python
Ensinando OO com PythonEnsinando OO com Python
Ensinando OO com Python
Luciano Ramalho
 
Alex Martelli's Python Design Patterns
Alex Martelli's Python Design PatternsAlex Martelli's Python Design Patterns
Alex Martelli's Python Design Patterns
Luciano Ramalho
 
Dspace em 5 minutos
Dspace em 5 minutosDspace em 5 minutos
Dspace em 5 minutos
Luciano Ramalho
 

Mais de Luciano Ramalho (20)

Wiki-wiki S/A
Wiki-wiki S/AWiki-wiki S/A
Wiki-wiki S/A
 
Mongodb: agregação
Mongodb: agregaçãoMongodb: agregação
Mongodb: agregação
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritores
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em Python
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Open Library no Mongodb
Open Library no MongodbOpen Library no Mongodb
Open Library no Mongodb
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaque
 
Modelos ricos
Modelos ricosModelos ricos
Modelos ricos
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Ensinando OO com Python
Ensinando OO com PythonEnsinando OO com Python
Ensinando OO com Python
 
Alex Martelli's Python Design Patterns
Alex Martelli's Python Design PatternsAlex Martelli's Python Design Patterns
Alex Martelli's Python Design Patterns
 
Dspace em 5 minutos
Dspace em 5 minutosDspace em 5 minutos
Dspace em 5 minutos
 

Dojo com Arduino

  • 3. coding dojo * Treino coletivo de programação * Divertido e eficaz para: * Treinar boas práticas (Ex. TDD) * Aprender novas linguagens ou APIs * Integrar novos membros ao time
  • 4. randorI: treIno lIvRe * Duplas se sucedem resolvendo o problema usando TDD e baby steps * Uma dupla: piloto e co-piloto * Piloto opera o teclado * Co-piloto ajuda na solução * Após 5 minutos, piloto volta para a platéia; co-piloto vira piloto; voluntário da platéia é o novo co-piloto
  • 5. tdd = test-driven design * Escrever testes *antes* de implementar qualquer nova funcionalidade * Enquanto o teste não passa, a platéia não pode se manifestar (exceto a pedido dos pilotos) * Quando o teste passa, pessoas da platéia podem sugerir o próximo passo
  • 6. tdd com hardware? * É complicado automatizar testes com hardware * No DOJO COM ARDUINO fazemos testes manuais e observamos os resultados * Mas cada teste tem que ser documentado *antes* de implementar o próximo passo
  • 7. babY steps * Para avançar com segurança e constância, cada passo deve ser bem simples * Resista à tentação de resolver o problema todo de uma vez só, ou partir direto para abstração e generalização * Não tenha medo de sugerir passos bem pequenos e triviais
  • 8. exemplO: Primeiro teste * Piscar o led do pino 13 * Para verificar a conexão USB e funcionamento básico do Arduino e do circuito sob teste
  • 9. O probleMa de hoje * Fazer uma animação simples acendendo e apagando sequencialmente os leds do perímetro do display de 7 segmentos, com a velocidade controlada pelo potenciômetro
  • 10. Mão na massA! * Voluntários? * Se não houver voluntários, o RANDORI pode ser terminado prematuramente!
  • 11. venhaM nos vIsITAR eM São Paulo, todos são bem-vindos! http://garoa.net.br