quinta-feira, 23 de dezembro de 2010

Você já contribuiu com a Wikipédia em 2010?

A Wikipédia (ou, em inglês, Wikipedia) dispensa apresentações - se por acaso você está lendo o meu blog e não a conhece, algo está errado! ;-) Com certeza você já deve ter pesquisado algum termo no Google e a primeira resposta foi a página sobre esse termo na maior enciclopédia do mundo.

Wikipédia - A Enciclopédia Livre

A Wikipédia é gratuita e mantida de forma colaborativa, porém acredito que a maioria das pessoas não entende muito bem como esse "colaborativo" funciona. Sim, quando falo de colaboração estou falando em adição, tradução, modificação e atualização dos verbetes contidos na enciclopédia - e é só isso que as pessoas geralmente sabem. Porém a Wikipédia não consegue se manter online só por conta disso: alguém tem que pagar as contas! Para manter esse site online (que é um dos mais acessados do mundo), precisa-se de uma quantidade grande de servidores online e precisa-se de dinheiro para comprar, mantê-los ligados, conectados à Internet em alta velocidade e funcionando de forma adequada. Enfim, existe um gasto enorme para manter toda infraestrutura! E, pasme: tudo isso também é resolvido de forma colaborativa! Cada um contribui com o pouco que pode e, juntando todas as colaborações, conseguimos manter o projeto vivo.

Manter esse projeto através de doações é algo importante para os usuários, já que poderíamos ter problemas caso, por exemplo, resolvessem colocar propagandas para financiar o site - os verbetes poderiam começar a ser mais tendenciosos, os leitores poderiam se confundir etc. Nesse ano a Wikipédia precisou expandir sua infraestrutura, os gastos foram altos e infelizmente ainda não atingimos a meta de doações para o ano. O próprio fundador do projeto, Jimmy Wales (que trabalha voluntariamente para a instituição), faz um apelo, pedindo doações aos usuários. Você já doou?

Como não contribuo doando meu tempo (escrevendo verbetes) e utilizo bastante o site, resolvi contribuir doando dinheiro, então doei US$50.00. Existem opções para doar uma vez só ou mensalmente - em breve pretendo começar a doar mensalmente. As doações podem ser feitas via cartão de crédito ou PayPal. Faça agora sua doação e ajude um projeto que lhe ajuda!

segunda-feira, 20 de dezembro de 2010

Desconto de 50% no Curso de Arduino!

Em parceria com a Resvista Espírito Livre e em clima de Natal :-), farei um sorteio que dará ao ganhador 50% de desconto no Curso de Arduino. A revista, lançada por João Fernando C. Jr. em 2009, é publicada em formato digital (PDF) e tem foco em cultura livre e tecnologia.

Revista Espírito Livre

O sortudo que ganhar a promoção terá um ótimo presente de Natal: pagará apenas metade do valor do Curso e terá direito a tudo (kit completo, apostila, aulas etc.). O que você está esperando para se inscrever na promoção? Inscreva-se já!

terça-feira, 14 de dezembro de 2010

Palestra online sobre Arduino no Lab de Garagem

O Lab de Garagem, de início, era uma rede social onde hobbyistas trocavam informações sobre projetos homemade. No mês passado, o projeto se estendeu e conta agora também com um espaço em São Paulo para facilitar a vida de todos os hobbyistas - ou melhor, garagistas - que precisam de um local para desenvolver seus projetos. O espaço conta com bancadas, equipamentos, componentes eletrônicos e ferramentas para que os garagistas não tenham problemas com relação a infraestrutura na hora de desenvolver seus projetos, no melhor estilo do it yourself.

Lab de Garagem

Há duas semanas, o Marcelo Rodrigues, lá do Lab de Garagem, teve a iniciativa de criar uma série de palestras online (webminars) e me convidou para falar sobre o Arduino. As palestras estão sendo feitas utilizando o DimDim e são gratuitas - você só precisa de uma conexão banda larga à Internet para assistir! Então, todos estão convidados: Palestra sobre Arduino com Álvaro Justen hoje (terça-feira, 14/12/2010) às 20h na página do LdG no DimDim.

Se você está interessado em ouvir sobre algum outro tema ou tem conhecimento para falar de algo, sugira na página de palestras online no Lab de Garagem! E para a galera que gostou do Arduino e quer aprender mais, vejam o site do meu Curso de Arduino - acontecerá em janeiro, no Rio de Janeiro. :-)

segunda-feira, 13 de dezembro de 2010

Grokpodcast sobre Arduino

Há algumas semanas atrás, fui convidado por Carlos Brando e Rafael Rosa Fu para falar sobre o Arduino no Grokpodcast. Para quem não conhece, o Grokpodcast tem como objetivo falar sobre tecnologia, empreendedorismo, agilidade e assuntos correlacionados - o termo grokar vem de um livro de ficção científica.

Rafael Rosa Fu e Carlos Brando - criadores do Grokpodcast
Rafael Rosa Fu e Carlos Brando - criadores do Grokpodcast

Ao total, gravamos 3 episódios - e no futuro gravaremos outros ;-D - que foram publicados durante 3 semanas! Para quem ainda nunca ouviu falar sobre o Arduino, essa é uma ótima oportunidade de conhecer o projeto! Então, ouça já:

E para quem já ouviu falar do Curso de Arduino, saiu uma propaganda dele no Episódio 13 do Grokpodcast - Singularidade e Biologia Sintética.

Ficou interessado? Que tal fazer o Curso de Arduino, no Rio de Janeiro? Gostou do podcast? Comente! :-)

quinta-feira, 9 de dezembro de 2010

Controle do Super Nintendo SNES no Arduino

Fui convidado para palestrar sobre Arduino (pra variar... ;-) na Semana de Computação da UFF (de 8 a 11 de novembro de 2010) e, sempre que apresento a plataforma de hardware e software livres, gosto de demonstrar exemplos e um projeto - por exemplo: no FISL11 demonstrei o Turiquinhas, no Dev in Rio 2010 demonstrei o Semáforo DojoRio. Como o Turiquinhas ainda está na oficina (com o eixo quebrado), resolvi fazer um pequeno projeto prático para apresentar na Semana de Computação da UFF: como controlar servomotores utilizando um controle de SNES.

Controle do SNES (Super NIntendo Entertainment System)
Foto por armless

Apresentei esse projeto também na Latinoware 2010, em Foz do Iguaçu/PR (dentro da Itaipu Binacional) - que foi um evento sensacional! Para quem não teve a oportunidade de assistir, seguem os slides de minha palestra, que não mudaram muito de um evento para o outro:

Chega de enrolação - vamos agora então falar de como pegar os dados do controle de SNES com o Arduino! Inicialmente, para fazer a aquisição dos dados (saber quais botões estão pressionados no momento), tentei utilizar a biblioteca NESpad/SNESpad, porém não obtive sucesso - já havia tentado utilizá-la no FISL11, junto com o Fávio Amieiro, mas ela não funcionou, porém na época não pesquisei a fundo sobre o problema. Dessa vez resolvi pesquisar mais sobre, aprendi como um controle de SNES funciona internamente e verifiquei que a temporização da biblioteca não estavam corretos, daí postei uma issue no issue tracker do NESpad para que eles corrijam o problema, porém o autor disse que nos controles de SNES dele a temporização funcionava. Então decidi criar uma função (no melhor estido DIY :D) para fazer aquisição dos dados de acordo com a descrição que havia lido. Em breve darei mais uma olhada na biblioteca para verificar qual problema pode ter acontecido e tentar fazê-la funcionar para qualquer controle (pode ser que o controle que o autor da biblioteca tenha utilizado funcione de forma diferente do meu).

Antes de mostrar o código, vamos ver como o controle de SNES se comunica com o mundo externo: o conector possui 7 pinos, onde apenas 5 são realmente utilizados. Veja o esquema:

Pinagem do controle de SNES
Basicamente, internamente o controle do SNES tem um registrador de 16 bits cuja saída é serial (entrada possivelmente paralela). O que temos que fazer é dar um pulso no pino strobe e então pegar bit a bit (no total são 16) no pino data, dando um pulso entre cada bit no pino clock a cada 6 microsegundos (período = 12 microsegundos). Os pinos +5V e GND fornecem energia para o circuito interno do controle e os pinos N/C não são utilizados.

O que fiz então foi uma função que respeita a temporização e joga os 16 bits em uma variável do tipo unsigned int; a função demora em torno de 200 microsegundos para retornar esse inteiro (de 16 bits) - o detalhe é que o controle tem apenas 12 botões (cima, baixo, esquerda, direita, A, B, X, Y, select, start, L e R), então os 4 bits mais significativos do registrador de 16 bits não são utilizados (vêm sempre com o mesmo valor). Outro ponto importante é que o registrador é ativado em baixa (1 = botão não pressionado, 0 = botão pressionado), então no final da minha função eu inverto bit a bit dos valores lidos, para facilitar o uso dos dados. Além disso, defini algumas constantes que relaciona a posição do bit com cada botão do controle (exemplo: o botão B corresponde ao bit menos significativo). O código, que está disponível no meu BitBucket, ficou assim:

O código acima apenas lê os valores e controla dois servomotores e um alto falante, de acordo com os botões que foram pressionados. A cada loop, pego o estado dos botões com o comando:

 buttonsPressed = getSNESbuttons(CLOCK, STROBE, DATA); 
(os parâmetros da função são os números dos pinos onde o clock, strobe e data estão ligados) e para verificar, por exemplo, se o botão para cima foi apertado, faço um AND bit-a-bit com a constante relativa a esse botão:
if (buttonsPressed & SNES_UP) {
    //apertou botão para cima...
}
Segue a foto do projeto que apresentei nas palestras:

Arduino + controle de SNES + servomotores + alto falante - Foto por Tatiana Al-Chueyr na Latinoware 2010
Arduino + controle de SNES + servomotores + alto falante (foto por Tatiana Al-Chueyr, Latinoware 2010)

Sobre esse pequeno projeto e a palestra que ministrei na UFF: parece que a galera gostou - bastante gente da UFF entrou na lista ArduInRio. :-)

Ficou interessado? Gostou do artigo? Quer saber mais sobre o Arduino? Que tal fazer um Curso de Arduino no Rio de Janeiro? ;-) Caso tenha utilizado a função que criei (ela é software livre!) ou tenha qualquer dúvida, comente!

terça-feira, 7 de dezembro de 2010

Curso de Arduino no Rio de Janeiro

Após palestrar inúmeras vezes sobre Arduino e ouvir diversas vezes pessoas perguntando sobre um curso avançado, resolvi criar uma pesquisa para saber o que a galera estava interessada em aprender. Deixei a pesquisa rolar por algumas semanas para saber em que exatamente o pessoal estava interessado e então lancei o Curso de Arduino.

Curso de Arduino

Abri as inscrições na semana passada para a primeira turma, que acontecerá no Centro do Rio de Janeiro (próximo ao metrô, na Av. Rio Branco), em janeiro de 2011. O curso será dividido em 3 sábados (8, 15 e 29 de janeiro), totalizando 24 horas e será focado em atividades práticas. A inscrição custa R$899,00 por aluno e deve ser feita utilizando o PagSeguro, que permite parcelar em até 18x no cartão! Estou disponibilizando 20 vagas para essa primeira turma - e algumas já estão preenchidas.

Cada aluno, ao se inscrever, ganhará um Kit Arduino - um conjunto de componentes eletrônicos que estou montando (que inclui um Arduino) no valor de R$200,00! E o melhor: o kit não para de evoluir! Aos poucos, estou adicionando outros componentes que acho necessários para melhorar o aprendizado dos alunos (sem cobrar a mais por isso).

Kit Arduino do http://www.CursoDeArduino.com.br/

Além do kit, os alunos terão à disposição inúmeras ferramentas e outros utensílios para uso durante as atividades, como alicates dos mais diversos tipos, multímetros, ferros de solda, fios, placas etc. E como o curso terá duração de 8 horas por sábado, os alunos terão direito a coffee breaks também!

A divulgação do curso está sendo feita basicamente via boca-a-boca e através de algumas ferramentas via Internet (por este blog, Twitter, Facebook Advertising e Google Adwords). E, é claro, alguns amigos estão me ajudando nesse empreendimento, como:

Gostou? Inscreva-se já (vagas limitadas!), envie tweets, poste em seu blog ou simplesmente comente!

quinta-feira, 4 de novembro de 2010

Semana que vem tem Latinoware em Foz do Iguaçu!

De quarta a sexta-feira da semana que vem acontece a VII Conferência Latino-Americana de Software Livre a.k.a. Latinoware em Foz do Iguaçu, dentro da usina de Itaipu! Será a sétima edição de um dos maiores eventos de software livre da América Latina - eu vou e será minha primeira vez lá (grandes expectativas).

VII Conferência Latino-Americana de Software Livre

Os temas que serão discutidos durante o evento são os mais distintos: Python e agilidade (com meu amigo Ramiro Luz), curso de introdução a GNU/Linux e software livre, software livre na saúde, jogos, geração de empregos e renda com software livre (com meu amigo maddog) - até o criador dos pipes ("|") do Unix, Doug McIlroy, estará lá!

Ramiro Luz, da Associação Python brasil Jon 'maddog' Hall, diretor executivo da Linux International Doug MacIlroy, criados dos pipes do Unix
Algumas das personalidades do VII Latinoware

[ATUALIZADO] Além das mais variadas palestras que citei acima, palestrarei sobre o Arduino (pra variar ;-) - será na quarta-feira (10/11/2010), dentro da mesa sobre robótica, que acontece de 10 às 13h no espaço Venezuela (sala 7 - verde). Além da palestra, todo dia de evento teremos a IV Maratona de Robótica Livre e farei também uma oficina sobre Arduino (estarei na sala avançada), onde os participantes poderão colocar a mão na massa e aprender a brincar com a plataforma construindo projetos! E para os que quiserem aprender mais, em muito breve estarão abertas vagas para o meu Curso de Arduino (a primeira turma será no Rio de Janeiro, em janeiro)! Confira a grade completa do Latinoware!

Arduino Uno

Existem 28 caravanas partindo do Brasil inteiro! E você, vai no evento? Nos vemos lá!

quinta-feira, 28 de outubro de 2010

Semáforo do Coding Dojo Rio

No Arduino Hack and Beer que tivemos a presença internacional de Jon "maddog" Hall, na UFF, começamos a fazer o projeto do semáforo. Para quem não sabe, o projeto, baseado na ideia do processo de build do pessoal do GitHub, era a de integrar um semáforo ao dojotools (criado pelo Flávio Amieiro), para que tenhamos algum resultado "físico" sobre os testes (se estão passando, verde, senão, vermelho).

Semáforo do Coding Dojo Rio

Bernardo Fontes e eu começamos a fazer um experimento com um LED RGB; até que funcionou bem, porém era pequeno demais. Para o Arduino Hack n' Beer, Henrique Bastos comprou então um semáforo de verdade e começamos a brincadeira! Porém, por falta de componentes, não conseguimos fazer o projeto.

No dia 7 de outubro resolvemos faltar o Coding Dojo de Niterói (foi por uma boa causa!) para fazer o semáforo funcionar de vez. No sábado após, dia 9, fiz uma palestra sobre Arduino no Dev In Rio e o Bernardo acabou me ajudando a apresentar o semáforo. Desde então já apresentamos o projeto em vários lugares, inclusive no Coding Dojo que fizemos na PythonBrasil[6], em Curitiba! :-)

Basicamente, o software dojotools roda os testes quando o piloto salva o arquivo de testes durante o Coding Dojo, então o dojotools envia um comando via USB para o Arduino, indicando se os testes passaram ou não e o Arduino controla qual lâmpada do semáforo deve apagar ou acender (e esse é o ponto complexo da questão: controlar AC através de DC).

O interessante é que viramos uma noite fazendo o projeto! ;-) E quando acabamos, de manhã, fizemos o seguinte vídeo explicando o que fizemos:

Semáforo Coding DojoRio & ArduInRio from Álvaro Justen - Turicas on Vimeo.

Criei uma página bem simples com alguns detalhes (código, foto, vídeo) do projeto: Semáforo DojoRio. Ainda temos que alterar o circuito (que por enquanto está só com um acoplador óptico). E você, já participou de um Coding Dojo Rio com o semáforo? Hoje tem! \o/

E se você quer aprender mais sobre o Arduino, entre em:

CursoDeArduino.com.br

quarta-feira, 13 de outubro de 2010

SeTel 2010: IV Semana de Telecomunicações da UFF

Na semana que vem acontecerá a IV Semana de Telecomunicações da UFF, a SeTel 2010! O evento surgiu em 2007, partindo da iniciativa de alunos que participaram da Semana de Eletrônica e Computação da UFRJ (eu era um deles!) e viram que poderiam mudar o ambiente acadêmico, fazendo com que alunos pensassem fora da caixa, trazendo novidades diretamente do mercado.

O tema desse ano é desenvolvimento de software e as atividades abordam, em geral, software livre e desenvolvimento ágil. Desenvolvimento de software é algo que pode ser aplicado a todos os ramos das telecomunicações, e na SeTel 2010 convidamos palestrantes influentes da área para abordar os seguintes ramos: sistemas embarcados, microeletrônica, simulações computacionais, redes de computadores e uma palestra especial sobre empreendedorismo!

SeTel2010: IV Semana de Telecomunicações da UFF

As palestras abordarão esses temas com enfoque na linguagem Python, visto que muitos dos palestrantes a utilizam no dia-a-dia. Sendo assim, o evento também se configura como uma PythOnCampus. Além de Python, teremos Arduino e Coding Dojo!

Consulte o site da SeTel 2010 para mais detalhes. O que está esperando para fazer sua inscrição? As vagas são limitadas. Te vejo lá!

sábado, 9 de outubro de 2010

Curso de Arduino!

Devido ao grande interesse do pessoal que assiste às minhas palestras sobre Arduino, resolvi montar um curso, onde poderei ensinar melhor e mais profundamente sobre eletrônica, programação e a plataforma do projeto.

Porém, antes que eu modele o curso, quero saber a opinião de quem pretende fazê-lo! Para isso, criei uma pesquisa que está disponível em http://www.CursoDeArduino.com.br/. Preencha o formulário e divulgue para seus amigos!

Formulário

Após a pesquisa, estudarei os dados e abrirei uma turma para fazer um curso bastante prático. A ideia é que cada aluno, ao entrar, ganhe um kit contendo o Arduino e outros componentes essenciais para começar. Além disso, cada aluno receberá uma cópia da apostila, que será recheada de exemplos.

E enquanto o curso não começa, vou palestrando sobre Arduino em vários eventos! Hoje (daqui a pouco) estarei no Dev In Rio, daqui a algumas semanas, na PythonBrasil[6] e mês que vem estarei no Latinoware!

Dev in Rio
PythonBrasil[6]
Latinoware

Se interessou pelo curso? Então responda ao formulário! Caso possua dúvidas, entre em contato via email (alvarojusten arroba gmail ponto com) ou em comentários nesse post. :-)

quinta-feira, 30 de setembro de 2010

Palestra sobre Arduino na ECMC2010

Hoje (quinta-feira, 30 de setembro) palestrarei sobre o Arduino na Escola e Conferência em Modelagem Computacional, que acontecerá no Instituto de Ciências Exatas (ICEx), na UFF de Volta Redonda às 18h.

Arduino

O evento tem como um dos organizadores um velho amigo meu: o Doutor Thadeu Penna, professor do Instituto de Física da UFF (de Niterói); ele fez a gentileza de liberar a minha palestra ao público, ou seja, para assistí-la vocês não precisarão pagar inscrição! :-)

Logotipo do Instituto de Física da UFF

Acabei postando a chamada muito em cima da hora, desculpem-me - mas ainda dá tempo! E só para constar: estarei também no Dev in Rio e na PythonBrasil[6]!

segunda-feira, 27 de setembro de 2010

Almoço PythOnRio toda terça no DayTrade

Na terça-feira passada a galera da PythOnRio (grupo de programadores Python do estado do Rio) se reuniu para o almoço PythOnRio. O que é o almoço PythOnRio? Apenas um encontro (para almoçar, claro) do pessoal que participa ativamente da comunidade Python de nosso estado para revermos os amigos e trocarmos conhecimento sobre o que vier à cabeça.

Galera da PythOnRio no almoço
Galera da PythOnRio no almoço

Tudo começou no evento Linux in Rio, quando esqueci minha carteira e o Luiz Guilherme Aldabalde pagou meu almoço. Prometi a ele que pagaria a dívida em um almoço no centro do Rio. Prometido e cumprido: marquei com ele para almoçarmos na terça passada, e ele acabou chamando mais duas pessoas que programam em Python. Inocentemente resolvi anunciar na lista PythOnRio achando que mais um ou dois poderiam ir. Para minha surpresa, vários membros confirmaram e no final tivemos a presença de 15 pessoas! Nada mal para um anúncio com 15 horas de antecedência. ;)

No almoço rolou todo o tipo de conversa: de política a Arduino, de Python a Erlang, de eventos comunitários a eventos nacionais sobre software livre (e muito mais). Como o papo foi bom, resolvemos institucionalizar: almoço PythOnRio toda terça-feira às 12h30min no restaurante DayTrade (Rua do Ouvidor, 22 - Centro, Rio de Janeiro).

Galera da PythOnRio no almoço - agora de outro ângulo
Galera da PythOnRio no almoço - agora de outro ângulo (sim, as fotos foram editadas para que o Cláudio Berrondo, nosso fotógrafo, também aparecesse)

Então na próxima terça (28/09) estaremos lá novamente! E você, vai almoçar com a gente?

quarta-feira, 1 de setembro de 2010

Eventos e mais eventos sobre Arduino! \o/

Depois de ir a vários eventos sobre software livre no último mês (que ainda não tive a oportunidade de blogar sobre), participarei de mais 3 nessa semana - todos eles envolvendo Arduino. Vamos lá:

Semana de Eletrônica e Computação (UFRJ)

Participarei ministrando um workshop sobre o Arduino nessa quarta-feira (1 de setembro), às 13h. O evento terá outros tipos de atividades, inclusive uma palestra da Intelie (empresa onde trabalho) sobre Complex Event Processing (CEP).

A Semana de Eletrônica e Computação é um evento que tenho um carinho especial: foi quem inspirou a mim e a outros alunos da UFF a organizarmos a 1ª Semana de Telecomunicações da UFF. Veja a lista de todas as palestras da SE2010!

Arduino Hack and Beer (com maddog!)

Quinta-feira é dia de hackear com o Arduino, beber uma cerveja e conversar com o Jon "maddog" Hall em Niterói, na UFF. Isso mesmo: presença internacional do mundo do software livre, Arduino e cerveja juntos! \o/

maddog: hack and beer!

Dividiremos os participantes em 4 grupos e faremos projetos pequenos (porém funcionais); todo o código criado será disponibilizado usando licenças de software livre.

Infelizmente, por conta de infra-estrutura e gerenciamento das equipes, temos vagas limitadas (em torno de 20) - e elas estão bastante disputadas! Então, se você quer participar, envie agora um e-mail para mim confirmando sua presença (para alvarojusten [arroba] gmail [ponto] com). É cobrada uma taxa de R$15,00 de cada participante (pagar ao chegar no evento), a fim de cobrir as despesas.

Arduino e Coding Dojo no Linux in Rio

Sexta-feira é a vez da baixada fluminense: palestrarei sobre Arduino e Coding Dojo no evento Linux in Rio, que será realizado no Hotel Mont Blanc, em Duque de Caxias.

O Linux in Rio contará com a presença internacional do Jon "maddog" Hall, além de outros nomes importantes na área (inclusive do mundo Python!). Veja a lista completa de palestras do Linux in Rio.

Depois dessa semana ficarei mais tranquilo com relação aos eventos e pretendo postar mais aqui sobre o que rolou em todos (desde o FISL). :-)

Você vai em algum desses eventos? Qual? Te espero lá!

quarta-feira, 18 de agosto de 2010

Minhas apresentacões no CONSEGI

Estou em Brasília para o CONSEGI, o Congresso Internacional de Software Livre e Governo Eletrônico. O evento teve quase 5000 inscritos e hoje foi seu primeiro dia - vai até sexta.

CONSEGI 2010

Como era de se esperar, a galera do Rio de Janeiro está em peso aqui! São várias comunidades reunidas: PythOnRio, DojoRio, #horaextra, dentre outras. Está bombando! :-)

Um fato bastante interessante que vi acontecendo foi que o Governo fomentou a vinda de estudantes de escolas da região - esses estudantes já usam software livre em seus laboratórios, porém ainda não conhecem o ecossistema de software livre. Aqui eles estão conhecendo as comunidades, interagindo, aprendendo e apresentando suas experiências - hoje mesmo rolou um openspace em que Oscar Bacelar, eu e vários estudantes trocamos ideias sobre software livre, educação e sociedade. Os próximos dias prometem!

Amanhã palestrarei sobre Arduino na sala John von Neumann de 11h às 12h, depois pretendemos fazer um openspace onde a galera possa brincar e aprender mais sobre a plataforma. Mais a tarde, de 14h às 18h, darei uma oficina sobre web2py na sala BT-04. Na sexta-feira teremos um Coding Dojo às 12h na sala de desconferência!

Para mais detalhes sobre o que a galera do Rio vai aprontar aqui, veja o post que Jonh Edson fez no blog da PythOnRio. Se você não está por aqui, assita o CONSEGI ao vivo através do streaming do SERPRO. Porém, se você está na capital federal, vai palestrar ou pretende participar das atividades, comente!

terça-feira, 20 de julho de 2010

Eu vou ao FISL, e você?

Bah, ao final da tarde de hoje partirei para Porto Alegre/RS, pois amanhã começa a 11ª edição do FISL - Fórum Internacional de Software Livre. O evento se estenderá até sábado, formando a maior festa de software livre da América Latina! \o/

11° FISL - Fórum Internacional de Software Livre, de 21 a 24 de julho de 2010, em Porto Alegre/RS

A galera do Rio estará em peso lá, com muitas palestras! Tive 4 propostas aceitas e minha primeira palestra será amanhã às 9h. Veja a lista de minhas atividades:

Veja toda a grade do FISL11.

Além disso, tentarei organizar um Coding Dojo e um openspace sobre Arduino. Obviamente, levarei o Turiquinhas versão 2 (meu carrinho controlado por Wi-Fi, feito com Arduino). Também me encontrarei lá com o Jon "maddog" Hall, presidente da Linux International, para trocar ideias sobre hack and beer, Arduino e outras coisas mais.

Para quem não vai, resta acompanhar o evento pelo Twitter, assistir às palestras ao vivo pela TV Software Livre ou ouvir a Rádio Software Livre.

Acompanhe o FISL11 pelo Twitter Acompanhe o FISL11 pela TV Software Livre Acompanhe o FISL11 pela Rádio Software Livre

Você vai ao FISL11? Nos encontramos lá!

segunda-feira, 5 de julho de 2010

Artigo sobre web2py na revista TI Digital de julho

É com prazer que anuncio que um artigo meu sobre o web2py foi publicado na edição desse mês da revista TI Digital. A revista começou a circular a partir de quinta-feira passada (1º de julho) e possui meu artigo em três páginas.

Revista TI Digital de julho de 2010 com artigo de Álvaro Justen sobre web2py

Em toda edição da revista o pessoal da Arteccom disponibiliza alguns artigos da revista para download em seu site, e nesse mês o meu foi um deles! Veja a página da edição de julho da revista TI Digital para mais detalhes. Também recomendo a compra da mesma, que possui 75 páginas e vários artigos de pessoas importantes da área, abordando diversas outras tecnologias voltadas para Web; custa R$7,90 e você encontra nas melhores bancas. :-)

Quem ler o artigo até o final vai perceber que coloquei um bônus (gratuito! :-D) para que os leitores interessados aprendam melhor sobre o framework - e se você está bastante interessado e quer aprender ainda mais, veja meu artigo sobre o curso de web2py que ministrarei no Rio de Janeiro.

Espero que vocês gostem e que meu trabalho lhe seja útil! Eu já comprei a minha TI Digital de julho, e você? Leu? O que achou? Comente!

segunda-feira, 28 de junho de 2010

Curso de Python e web2py no Rio de Janeiro

Tempo Real Eventos Convidados pela Tempo Real Eventos, Bruno Cezar Rocha e eu ministraremos cursos sobre Python e web2py - eu ficarei responsável pelas turmas no Rio de Janeiro e ele pelas turmas em São Paulo.

A Linguagem - Python

Python - linguagem de promgração de altíssimo nível Python é uma linguagem de programação dinâmica de altíssimo nível, utilizada em larga escala por empresas como Google (que atualmente emprega o criador da linguagem), Dreamworks, Industrial Light & Magic, NASA, dentre muitas outras. No Brasil, é utilizada pela Locaweb, Globo.com, SERPRO, Interlegis (órgão vinculado ao Senado Federal), entre outras. Diversos softwares como GIMP, Inkscape e Blender utilizam Python para extensões e criação de plugins.

O Framework - web2py

web2py - framework para desenvolvimento de aplicações Web em Python O web2py é um framework para desenvolvimento Web escrito em Python, software livre e gratuito, que tem como um de seus principais objetivos agilidade e facilidade no desenvolvimento de aplicações Web seguras, baseadas em banco de dados.
Ele possibilita ao desenvolvedor pensar apenas na aplicação que está desenvolvendo (sem demandar configurações de linguagem e ferramentas), fazendo com que o desenvolvedor foque no problema que precisa resolver, e não em problemas relacionados à linguagem ou a alguma ferramenta. Possui integração com mais de 10 sistemas de banco de dados, e vários subssistemas, como: criação automática de formulários com validação, autenticação e autorização, gerador de códigos AJAX para melhor interação do usuário com a aplicação, upload seguro de arquivos, integração com vários padrões Web (XML, RSS etc.), dentre outros.

O Curso - Mão na Massa

Tutorial Mão na Massa - Tempo Real Eventos Os treinamentos acontecerão no estilo "tutorial mão na massa", onde cada aluno tem um computador para testar e treinar o que está sendo ensinado; o objetivo desses treinamentos é capacitação no desenvolvimento de aplicações Web utilizando Python e web2py a desenvolvedores que procuram uma ferramenta para desenvolvimento ágil, dinâmico, seguro e fácil de utilizar. O curso acontecerá em um sábado (assim que fecharmos a turma ou no máximo em 45 dias), o dia todo: de 9 às 17h. Caso exista interesse em treinamento in company, entre em contato comigo (alvaro [arroba] justen [ponto] eng [ponto] br).

O treinamento é dividido em dois módulos: Básico e Avançado. Para o módulo básico, é preciso ter conhecimento básico em HTML e lógica de programação (em qualquer linguagem) e para cursar o módulo avançado, é aconselhável que o interessado tenha participado do primeiro módulo, ou tenha conhecimentos equivalentes.

Os treinamentos possuirão apostila própria e durante eles será desenvolvida uma aplicação Web completa e funcional. Serão abordados vários temas com relação a desenvolvimento Web como MVC, sessões, autenticação e autorização, internacionalização, deploy, Google App Engine, dentre outros. Além disso, tudo será baseado em software livre: os computadores do laboratório terão Ubuntu 10.04.

O valor da inscrição em cada módulo é R$249,00 e, juntamente com o treinamento, cada aluno terá direito a:

  • Coffee Break (2)
  • Certificado de Participação em papel especial
  • Material Didático (apostila impressa, bloco de anotações e caneta)
Para mais informações e inscrições visite o site da Tempo Real Eventos:

Gostou da ementa dos cursos? Gostaria de que mais algum assunto fosse adicionado? Tem interesse em algum dos cursos? Comente!

quinta-feira, 24 de junho de 2010

Porque eu sou um amigo do GNOME

GNOME (que é um acrônimo para GNU Network Object Model Environment) é um projeto de software livre filiado ao projeto GNU que tem como finalidade oferecer um ambiente de trabalho composto inteiramente por software livre - dando ênfase em usabilidade, acessibilidade e internacionalização. Ele é utilizado no Ubuntu e em muitas outras distribuições.

Foresight Linux rodando GNOME 2.20 - screenshot da Wikipédia
Foresight Linux rodando GNOME 2.20 - screenshot da Wikipédia

Há alguns dias atrás fiz uma pequena doação de US$25 para a GNOME Foundation; as doações ajudam a manter e melhorar o projeto - eles costumam fazer hackfests, que são eventos em que os desenvolvedores se reúnem para, juntos, implementarem/melhorarem alguma determinada funcionalidade do projeto - ano passado tiveram 6, e o próximo será sobre acessibilidade. O dinheiro também serve para contratar pessoas e pagar as contas. Recebi um mousepad e alguns adesivos, juntamente com uma carta agradecendo a minha doação:

Meus mousepad e adesivos do GNOME
Meus mousepad e adesivos do GNOME

E você, o que está esperando para contribuir e deixar a próxima versão (GNOME 3.0) melhor? Vários projetos de software livre são gratuitos e em boa parte das vezes os desenvolvedores não recebem dinheiro (diretamente) para desenvolvê-los, são voluntários. Se cada um fizer sua contribuição, daremos infraestrutura melhor para que esses voluntários consigam fazer um software melhor para nós todos - e no final todos saem ganhando! Seja um amigo do GNOME!

quarta-feira, 2 de junho de 2010

Porque eu adoro o sistema de views do web2py

Vindo de mim, um elogio ao web2py pode parecer tendencioso, já que sou um dos desenvolvedores do framework. Porém uma coisa que me fascinou, mesmo antes de me tornar desenvolvedor, foi a implementação da camada de apresentação (views, do modelo MVC).

No web2py a camada de apresentação é parecida com código PHP: você utiliza a linguagem que precisar para apresentação do conteúdo (HTML, CSS, XML, JavaScript ou qualquer outra que desejar) e pode embutir código Python no meio. A grande sacada - que trás muita simplicidade e flexibilidade ao desenvolvedor - é exatamente o fato de podemos embutir código Python. Com isso, ganhamos inúmeras vantagens:

  • Você não precisa aprender a utilizar uma linguagem de templates nova: é Python - mesma linguagem em que você programa seus models e controllers!
  • Como o código da view pode ser transformado em um módulo Python, a execução da view fica muito mais rápida, pois o web2py a traduz para código Python puro e então o compila para bytecode;
  • Você não fica limitado a uma linguagem restrita (como são as linguagens criadas para a camada de apresentação) - você pode utilizar todo o poder que Python lhe proporciona sempre!
  • Você pode criar qualquer formato de saída para sua camada de apresentação, o que significa que não necessariamente a saída da sua view precisa ser escrita em alguma linguagem de marcação (HTML, XML etc.). Você pode, por exemplo, ter uma view que gera um arquivo JPEG, um texto em RTF, um documento em PDF, um arquivo em CSV e por aí vai;
  • A camada de apresentação está desacoplada das outras camadas, o que significa que uma única view pode servir a vários controllers ou um único controller pode ter como apresentação várias views diferentes em ocasiões diferentes.

Eu poderia citar vários outros exemplos (inclusive da ótima integração da camada de apresentação com as outras camadas do framework), mas as outras dicas ficarão diluídas nos próximos artigos. Porém, não poderia deixar esse artigo sem código. Como todo bom programador, vamos ao que interessa:

Exemplo 1 - View gerando HTML

Digamos que possuímos um sistema de inscrição em eventos e precisamos listar uma tabela com o nome do participante inscrito e assinalar se ele pagou ou não a inscrição. Dessa forma, possuímos um model (por exemplo, models/db.py) parecido com:

db.define_table('participante',
    Field('nome', 'string', length=250),
    # inclua outros campos aqui
    Field('pagou', 'boolean'),
)

Então precisamos de um controller que seleciona os nomes dos inscritos e o estado do pagamento. Vamos chamar esse controller de controllers/usuarios.py:

def tabela_de_pagamentos():
    inscritos = db().select(db.participante.nome, db.participante.pagou,
                            orderby=db.participante.nome)
    return {'nome_e_pagamento': inscritos}

Com isso, nossa view será executada em um ambiente onde a variável nome_e_pagamento existe e seu conteúdo é o que foi retornado pelo controller acima. Vamos então criar uma view que gera HTML para o controller acima. Coloque no arquivo views/usuarios/tabela_de_pagamentos.html:

{{if len(nome_e_pagamento) == 0:}}
Não temos usuários cadastrados! :-(
{{else:}}
<table>
  <tr>
    <td> Nome </td>
    <td> Pagou? </td>
  </tr>
{{
for usuario in nome_e_pagamento:
    if usuario.pagou:
        pagou = 'Sim'
    else:
        pagou = 'Não'
    pass
}}
  <tr>
    <td> {{=usuario.nome}} </td>
    <td> {{=pagou}} </td>
  </tr>
{{pass
pass}}

Tudo o que está entre {{...}} será executado como código Python. Além disso, o web2py inclui algumas novas palavras-chave para ajudar no processo de criação de views, são elas:

  • {{=expressão_Python}}: executa expressão_Python e imprime o resultado no local;
  • {{extend 'arquivo.html'}}: utiliza a view arquivo.html como base para essa view;
  • {{include}}: indica onde outras views que utilizam essa como base serão adicionadas.

Pode parecer estranho acima o uso da keyword pass. Elas estão lá por conta de uma definição no sistema de apresentação do web2py: por conta de espaços na camada de apresentação fazerem diferença, seria complicado em todos os casos o programador manter a endentação correta do código.
Para resolver esse problema o web2py então gera um novo código baseado em nossa view, ignorando a endentação que utilizamos - ele auto-endenta o código quando encontra if, for etc. Para voltar um nível, como a endentação na view é ignorada, precisamos utilizar a palavra reservada do Python pass. Note que essa palavra reservada faz parte da linguagem e sua função é apenas "passar" (não executa comando algum) - nesse caso ela serve como um sinal para o web2py voltar um nível na endentação.
Note que como a endentação é feita automaticamente, eu não precisaria ter endentado o código entre {{...}}. Porém nesse caso a endentação não atrapalha o código de retorno da minha view e por motivos de organização deixei o código endentado.

Para o exemplo acima, se acessarmos a URL http://localhost:8000/welcome/usuarios/tabela_de_pagamentos (ou http://localhost:8000/welcome/usuarios/tabela_de_pagamentos.html) teríamos como retorno a view acima processada, como nos dois exemplos abaixo, sem e com dados inseridos na tabela:

View do web2py mostrando tabela de pagamentos vazia
View do web2py mostrando tabela de pagamentos cheia

Nota: utilizei/modifiquei a aplicação welcome (que já vem com o web2py) para fazer esses exemplos.

Exemplo 2 - View gerando CSV

Para os mesmos model e controller acima poderíamos ter uma view que gera um arquivo CSV com os dados, em vez de HTML. Vamos então criar o arquivo views/usuarios/tabela_de_pagamentos.csv:

{{
import cStringIO
csv = cStringIO.StringIO()
nome_e_pagamento.export_to_csv_file(csv)
response.write(csv.getvalue())
csv.close()
}}

Não vou entrar em detalhes do código acima, mas para quem estranhou a presença do objeto response fica a explicação: o web2py, para aumentar a produtividade do desenvolvedor, leva a sério o conceito Don't Repeat Yourself e, por isso, ele mesmo importa automaticamente os objetos de sua API que precisamos utilizar (nesse caso, o objeto response).

Feito o código acima, ao entrarmos em http://localhost:8000/welcome/usuarios/tabela_de_pagamentos.csv será feito o download de um arquivo CSV. Abrindo, teremos:

Arquivo CSV gerado pela view do web2py sendo visto no OpenOffice.org

Como disse acima, poderíamos utilizar outras extensões nas views e gerar quaisquer tipos de arquivos que quisermos com código Python. Em uma aplicação que desenvolvi há alguns meses precisei criar views que gerassem PDF (para relatórios sob demanda) e tudo funcionou perfeitamente.
Espero que os exemplos acima tenham explicitado o poder e flexibilidade que esse sistema de apresentação possui. Dúvidas? Entre na lista brasileira de usuários web2py e perguntem-me lá!

quinta-feira, 27 de maio de 2010

PythOnCampus Madureira na Estácio

Como comentei no post anterior, semana passada estive na PythOnCampus do LNCC/IST, em Petrópolis. E a caravana não pára: nesse sábado teremos mais uma edição da PythOnCampus em Madureira, na Estácio.

Para quem não conhece, PythOnCampus é um evento itinerante onde a comunidade de desenvolvedores Python do estado do Rio de Janeiro (PythOnRio) se reúne para levar conhecimentos sobre a linguagem, software livre, metodologias ágeis e experiência de mercado para os alunos de um determinado campus universitário. As PythOnCampi geralmente possuem sessões de Coding Dojo, levadas pela galera do DojoRio e minicursos de Python e/ou ferramentas da linguagem.

Galeras da PythOnRio e DojoRio na PythOnCampus LNCC-IST
Galeras da PythOnRio e DojoRio na PythOnCampus LNCC-IST

Nesse sábado darei minha contribuição com a palestra Economizando tempo e dinheiro com frameworks Web, que acontecerá às 12h. Nela abordarei conceitos básicos de frameworks MVC, passarei por alguns exemplos de frameworks para desenvolvimento Web escritos em Python e, para finalizar, mostrarei um exemplo de aplicação Web com o web2py.

O que você está esperando? Se inscreva gratuitamente na PythOnCampus Madureira/Estácio - nos vemos lá!

segunda-feira, 24 de maio de 2010

Coding Dojo em Três Rios

No sábado passado fui a Petrópolis na PythOnCampus que aconteceu no LNCC, onde palestrei sobre software livre e Arduino. O evento foi sensacional - depois dele, de passagem comprada, fui para a rodoviária pegar ônibus para Três Rios, minha cidade natal.

Em Três Rios estavam me esperando a coordenadora do curso de Tecnologia em Sistemas de Computação do CEDERJ de Três Rios, Isabel Hortência, e alguns de seus alunos para a primeira sessão de Coding Dojo da cidade! Antes de começarmos, fiz uma pequena apresentação sobre Coding Dojo e Python. Não preciso nem comentar que o encontro foi sensacional.

Isabel Hortência e seus alunos do CEDERJ
Isabel Hortência e seus alunos do CEDERJ

Como utilizamos a linguagem Python, os alunos, obviamente, ficaram interessados em fazer uma PythOnCampus lá (vontade minha de alguns meses), então já marcamos - faremos no semestre que vem. O problema que resolvemos foi o clássico Fizz Buzz, problema simples porém perfeito para uma primeira sessão de Coding Dojo.

Alunos do CEDERJ Três Rios programando no Coding Dojo
Alunos do CEDERJ Três Rios programando no Coding Dojo

Apesar de a galera não ter registrado em papel a retrospectiva, todos comentaram o que acharam bom e o que podemos melhorar:

O que foi bom

  • Python é uma ótima linguagem;
  • Dojo é bom pra aprender a compartilhar o código com os outros;
  • Apesar de o problema ter sido bem simples, foi muito bom para mostrar a dinâmica e explicitar os problemas que podem acontecer quando se desenvolve software em equipe;
  • A experiência foi legal para relembrar alguns conceitos e exercitar lógica de programação;
  • Ninguém além de mim (Álvaro) sabia Python, porém a galera foi fazendo tudo naturalmente sem parenteses, sem "end if" etc. sem nem perguntar. Foi sensacional ver como a linguagem é intuitiva e como é fácil aprender a programar dessa forma.

O que podemos melhorar/Compromissos

  • Não conseguimos clonar a tela do datashow para o monitor, piloto e copiloto ficaram de lado para a plateia e tendo que olhar para o projetor, que ficou meio longe - temos que aprender a configurar o datashow corretamente;
  • Isabel não programou - da próxima sessão ela não escapa!;
  • Alguns precisaram sair cedo (antes mesmo de começarmos a programar) - as próximas sessões serão em um horário melhor para todos;
  • Ficamos programando durante pouco tempo - nas próximas sessões não teremos apresentação, então conseguiremos ficar mais tempo;
  • Não fizemos a retrospectiva "em papel" - fazer na próxima sessão.

Os alunos já se organizaram e farão outros encontros regularmente - sempre que estiver em Três Rios me juntarei a eles. :-) É importante ressaltar que tudo isso não teria acontecido e não daria prosseguimento se não fosse a professora Isabel Hortência, que está sempre incentivando os alunos a ir além e preparou a casa para a gente. E assim nasce mais um fork do DojoRio com o intuito de trocar conhecimento e aprender a programar direito. Missão cumprida!

quarta-feira, 21 de abril de 2010

Pequenas ações, grandes revoluções

"Small acts make great revolutions", já dizia Caike Souza - frase que, dentre outras coisas, deu origem ao Small Acts Manifesto. Esse tema tem a ver com a palestra sobre comunidades de software livre que ministrei no 15º EDTED Rio de Janeiro, onde cito o simples ato de Richard Stallman ter criado o Manifesto GNU que acabou desencadeando uma série de ações, projetos, eventos e muitas outras coisas que mudaram completamente a vida de muitas pessoas e instituiçoẽs (algumas existem só pelo fato de o Manifesto ter sido criado); as proporções são tão grandes que fica até difícil mensurar. O tema tem a ver também com a teoria do caos, mas isso fica para outro post. ;-)

Logo do Small Acts Manifesto

Um bom exemplo é a sequência de Arduino Hack Days que estão acontecendo: um encontro informal aqui em casa para falarmos sobre eletrônica, brincarmos com o Arduino e tomar cerveja. Apesar da simplicidade dos encontros, a repercursão foi muito boa:

Pequenas ações fazem toda a diferença e é isso que as galeras da PythOnRio/PythOnCampus, #horaextra, DojoRio e Forkin'Rio estão fazendo - e tem dado muito certo. Se você tem alguma ideia, apenas faça! Ou como diria o Small Acts Manifesto: Do it! - as simple as you can, just what is essential to pass it forward. E você, já fez sua pequena ação revolucionária de hoje?

domingo, 4 de abril de 2010

Como foi o Arduino Hack n' Beer RELOADED

Na última quinta-feira aconteceu o Arduino Hack n' Beer RELOADED. Foi o maior encontro de todos: começou às 19h de quinta-feira e foi até às 7h de sexta!

Além de ter sido o que mais durou, nesse encontro rolou mais gente (total de 10 pessoas) e mais cerveja. Compareceram:

  1. Álvaro Justen (eu)
  2. Ângelo
  3. Cláudio Berrondo
  4. Flávio Amieiro
  5. Gabriel
  6. Israel Teixeira
  7. KurtKraut
  8. Marcello Silva
  9. Mariana Bedran
  10. Rodrigo Pinto

Nesse encontro melhoramos um bug na função de tocar som no projeto que tínhamos feito no Arduino Hack n' Beer (sun)Day (projeto senha.pde: botão + display + buzzer), adicionamos uma funcionalidade que a Mariana Bedran sugeriu e depois partimos para um novo projeto - além, é claro, das conversas paralelas sobre redes e Internet, software livre, eletrônica e o que mais viesse à cabeça.

Esse novo projeto, carinhosamente apelidado de Turiquinhas pela galera do 2º Sprint PythOnCampus, é um robô que anda pra frente, trás e para os lados. Ficou sensacional! O projeto surgiu da junção de vários componentes que cada um levou (servo motores, rodinhas, buzzer, potenciômetro, protoboard, arduino etc.). Confira o vídeo:


Valeu Henrique Bastos pelo vídeo!

Dessa vez não tínhamos o Pedro Menezes pra tirar fotos, então tivemos poucas. Mas tivemos! Confira as fotos do Arduino Hack n' Beer RELOADED no Flickr! Valeu KurtKraut pelas fotos!

Além do vídeo e das fotos, postei os códigos de todos Arduino Hack n' Beer no BitBucket.

E para quem não foi, não se preocupe! Teremos mais eventos - e o melhor: ninguém menos que Jon maddog Hall me falou que estará no Rio em breve e tentará participar do próximo evento!

quarta-feira, 31 de março de 2010

Arduino Hack n' Beer Day RELOADED

Nessa quinta-feira teríamos Coding Dojo em Niterói, na UFF. Por conta do ponto facultativo não será possível utilizar a infra-estrutura da universidade. Então resolvi marcar mais um Arduino Hack Day! :-D

A ideia desse Arduino Hack n' Beer Day (RELOADED) é continuar o projeto que começamos no Arduino Hack n' Beer (sun)Day (que foi sensacional!). Iremos comer carne, beber cerveja e programar um pouco.

O encontro começará às 19h de amanhã (quinta-feira, 1 de abril de 2010) e acontecerá em minha casa (para quem não sabe como chegar, darei mais detalhes via email quando confirmar participação - leia abaixo).

Para quem veio domingo, basta confirmar presença via email, já que a galera de domingo comprou carne e sobrou - então usaremos amanhã.
Para quem não veio, é necessário:

  • Confirmar presença enviando email diretamente pra mim (alvaro arroba justen ponto eng ponto br). As vagas são limitadas!
  • Entender o que fizemos no Arduino Hack n' Beer (sun)Day (ver vídeo, fotos e entender o código);
  • Trazer cerveja.

Até lá! :-)

segunda-feira, 29 de março de 2010

Arduino Hack n' Beer (sun)Day foi sensacional!

Ontem tivemos o segundo Arduino Hack Day ou, mais precisamente, o Arduino Hack n' Beer (sun)Day - a variação no nome é por conta da cerveja e por ter sido em um domingo. ;-)

Arduino Duemilanove
Arduino Duemilanove

Estiveram presentes:

  1. Álvaro Justen - Turicas (eu)
  2. Pedro Menezes
  3. Oscar Bacelar
  4. Flávio Amieiro
  5. Mariana Bedran
  6. Bernardo Botelho
  7. Henrique Bastos

O objetivo do encontro, assim como do primeiro, é difundir e aprendermos mais sobre o Arduino. No primeiro Arduino Hack Day fizemos uma espécie de piano; nesse dei a ideia de reproduzirmos o sistema de aviso de senha que encontramos em restaurantes: basicamente, esse tipo de sistema necessita de um teclado para que o atendente entre com a senha, um visor para que a senha seja exibida e algum tipo de caixa de som para disparar um aviso sonoro quando uma senha for colocada; esse tipo de sistema é utilizado em várias redes de fastfood para avisar aos clientes quando o pedido fica pronto.

Antes de metermos a mão na massa fizemos um churrasco e teve cerveja. :-)

Churrasco no Arduino Hack n' Beer (sun)Day
Churrasco no Arduino Hack n' Beer (sun)Day

Depois de abastecidos seguimos as seguintes etapas:
  • Planejamento
    Comecei apresentando os componentes eletrônicos que tínhamos disponíveis:

    Então fizemos um brainstorm para listar todas ideias que os participantes tinham para esse projeto. Essas ideias passaram por um filtro para eliminar as impossíveis de serem implementadas (por falta de hardware, falta de tempo etc.); para finalizar o planejamento dividimos as tarefas em categorias, repassamos todas tarefas para verificar se nenhuma faltava e, dentro de cada categoria, priorizamos as tarefas mais importantes.

    Álvaro Justen escrevendo os post-its com as tarefas
    Álvaro Justen escrevendo os post-its com as tarefas

  • Execução
    Tendo as tarefas bem definidas, começamos então a executar o projeto. Tínhamos dois Arduinos disponíveis (meu e do Flávio Amieiro), então nos dividmos em duas equipes para paralelizarmos o processo e maximizar o aprendizado individual. Uma das equipes ficou focada em mostrar a senha no display e outra na entrada de dados (botão) e na parte sonora.

    Equipes implementando o projeto
    Equipes implementando o projeto
    Equipes implementando o projeto
    Equipes implementando o projeto

  • Integração Para finalizar o projeto, as duas equipes se uniram para integrar tanto o software quanto o hardware que criaram.

    Álvaro Justen unificando os componentes eletrônicos
    Álvaro Justen unificando os componentes eletrônicos

  • Final

    Para finalizar, fizemos um vídeo explicando o projeto e demonstrando o sistema criado; tem até making-of no final!

    Infelizmente não temos um esquema elétrico/eletrônico do circuito disponível, mas disponibilizamos o código-fonte no BitBucket - é software livre: baixe, aprenda, aprimore e envie de volta pra gente!

    hg clone https://turicas@bitbucket.org/turicas/arduino_hack_day/

E não pensem que paramos por aí. Depois dessa bagunça divertida, fomos pra casa do Bernardo Botelho estudar Python! Veja mais detalhes sobre o que rolou no grupo de estudos sobre Python do DojoRio.

Gostaria de agradecer a presença de todos, a ideia do Flávio Amieiro de nos encontrarmos ontem e ao Pedro Menezes pelas fotos e pelo vídeo!

Se você não foi e ficou com vontade, não deixe de ir no próximo! Acompanhe meu blog (siga-o via RSS) para mais novidades - como sobrou carne, teremos um outro encontro logo logo. ;-) Aproveite também para ver todas as fotos no Flickr do Pedro Menezes.