Perfil

cuducos @cuducos


Sobre mim

Sociologist, geek, bread baker, and sports fan.

Propostas

[30min] Mocks: testando só o que tem que ser testado

Palestra em formato live coding cobrindo em 30min:


* mocks fantásticos e onde habitam
* explorando os métodos e propriedades dos mocks
* escrevendo testes com unittest & mock

[30min] Por debaixo dos panos da tecnologia da Serenata de Amor

A Operação Serenata de Amor está utilizando ciência de dados (e muito Python!) para fazer as informações que a Lei de Acesso à Informação tornou públicas mais úteis e relevantes para os cidadãos. Essa palestra é uma introdução à arquitetura tecnológica do projeto, explicando como as coisas funcionam e quebrando o gelo para novos contribuidores se sentirem em casa.

EDD: Error-driven Development (ou Programação Guiada Pelos Erros)

Quem aqui nunca se assustou ao, no meio de uma sessão de programação, dar de cara com aquela mensagem de erro enorme? Quem nunca teve um mini-surto ao ver um monte de letrinha na tela quando o que esperava era ver uma aplicação funcionando lindamente? Apesar de o Python não ser exatamente uma referência em mensagem de erros, suas mensagens de erro (as nativas, ao menos) costumam ser bem claras e apontar na direção da melhoria/correção do código.


Essa palestra foca em qualquer pessoa que se assuste com mensagens de erro – seja novata ou mais experiente. Ela explica tudo que temos que saber para entender tim-tim por tim-tim as mensagens de erro do Python. Vamos encarar de frente esse monstro que traz pânico a muitos iniciantes. Encará-lo e desmitificar cada detalhe dele. Afinal, apesar de estarmos em um contexto de erro, o que está na tela ainda é uma mensagem que pode (e deve) ser compreendida por nós, os destinatários dela.


Com isso ao invés de mini-surtos ao lermos uma dessas mensagens, a ideia é que elas nos guiem a programar mais e melhor!

Elm: chega de dor de cabeça com o frontend

Esse tutorial será uma introdução ao Elm e também à integração do Elm com frameworks web em Python (utilizando o webassets e o webassets-elm). Partindo de uma aplicação web RESTful básica em Flask ou Django, o tutorial vai responder a perguntas como:


» Por quê uma solução reativa?


» Por quê Elm (e não qualquer outra solução em JavaScript)?


» Como escrever meu primeiro app em Elm?


» Como é o ambiente de desenvolvimento em Elm?


» Como escrever testes em Elm?


» Como integrar Elm com webassets, Flask e Django?


» Como integrar Elm com um app RESTful?


Público: todos que já desenvolvem ou tem interesse em desenvolver aplicativos para web (conhecimento mínimo de Flask ou Django ajuda, mas não é essencial)


Duração: 2 ou 4h

Geradores e yields fazendo tua vida — e a da tua memória — mais leve

Palestra em forma de _live coding_ cobrindo os seguintes tópicos em 30min:


* Na prática, para quê servem geradores?
* E como eles funcionam?
* Mas e esse yield?
* Bônus, gerenciadores de contexto!

Porquê Elm: chega de dor de cabeça com front-end, chega de JavaScript

Uma introdução ao Elm integrado em back-end Python (Flask ou Django).


Palestra com exemplos práticos de uso: matar a cobra, e mostrar o pau e a cobra e responder perguntas como:


* Por que uma solução reativa?
* Por que Elm (e não qualquer outra solução em JavaScript)?
* Como escrever o primeiro app em Elm?
* Como é o ambiente de desenvolvimento em Elm?
* Quais as vantagens de usar Elm?
* Como usar Elm com backend em Python?


As *promessas* da linguagem como *no runtime exceptions* e *friendly error messages* serão sentidas na pele — e não apenas conversa fiada.

Problemas que o Elm resolve só com o compilador, sem nada mais

O Elm surgiu para oferecer um ambiente robusto de desenvolvimento para frontend. Sua arquitetura inspirou o Redux, amplamente adotado pela comunidade JavaScript. Mas o Elm por si só é uma linguagem muito poderosa: tanto a tipagem quanto o próprio compilador já nos levam a resolver inúmeros problemas que poderiam passar despercebidos em outras linguagens. Essa palestra mostrará exemplos didáticos de códigos falhos que poderiam ser colocados em produção em outra linguagem, mas que nunca aconteceria se a aplicação fosse em Elm.

Serenata de Amor: Robôs lutando contra a corrupção no Brasil

A Operação Serenata de Amor nasceu de uma combinação de necessidades de muitas pessoas: de ver machine learning aplicado para melhorar nossas vidas, de aprender em quem devemos votar e de fazer algo a respeito do problema de corrupção que afeta o mundo inteiro.


Estamos construindo uma inteligência artificial capaz de analisar contas públicas e de dizer, com confiança, a possibilidade de cada nota ser ilegal. É assim que pensamos esse robô.


Tudo que estamos construindo está sendo feito com código aberto desde o início, onde você, como tantos outros já fazem, pode contribuir ativamente com a construção do projeto. 


No sprint podemos contibrutir com várias partes do projeto, seja com data science, seja com desenvolvimento:


• coleta de dados
• análise
• otimização
• front e backend da API de consulta de dados
• etc.


Se isso ainda não te convenceu, vai ter brinde! Camiseta do Caipyra para quem resolver alguma issue com a hashtag do evento.


Mais informações:


Site do projeto: http://serenata.datasciencebr.com
Repositório do projeto: https://github.com/datasciencebr/serenata-de-amor
Repositório da API: https://github.com/datasciencebr/jarbas

Tecnologia cívica: o que importa são as perguntas

O Brasil é um país que tem muitos dados abertos – nossa Lei de Acesso à Informação é referência mundial. Mas isso, por si só, não dá a força necessária para projetos de tecnologia cívica gerar impacto. Essa palestra traz a sociologia e a filosofia para discutir quais elementos de projetos de tecnologia aumentam o potencial de impacto social e de engajamento de projetos de tecnologia cívica. O foco tem que ser não apenas em dar roupagem nova aos dados abertos, mas em usá-los para fazer (e responder) perguntas sobre como o governo tem cuidado da sociedade.

Tecnologia cívica: o que importa são as perguntas!

O Brasil é um país que tem muitos dados abertos – nossa Lei de Acesso à Informação é referência mundial. Mas isso, por si só, não dá a força necessária para projetos de tecnologia cívica gerar impacto. Essa palestra traz a sociologia e a filosofia para discutir quais elementos de projetos de tecnologia aumentam o potencial de impacto social e de engajamento de projetos de tecnologia cívica. O foco tem que ser não apenas em dar roupagem nova aos dados abertos, mas em usá-los para fazer (e responder) perguntas sobre como o governo tem cuidado da sociedade.

Vamos mockar tudo! Usando mocks para fazer testes melhores e mais rápidos

O módulo unittest.mock é nativo no Python 3 e com ele podemos escrever testes mais precisos e mais velozes. A palestra será um live coding para ensinar como testar apenas o código da aplicação, sem depender de fatores como: externalidades (sistema de arquivo, banco de dados, servidores web etc.),  pacotes de terceiros (não precisamos testar o que o Django já testou e implementou, por exemplo) ou código nativo (não precisamos testar o que já está no core do Python). Ainda deixaremos nossos códigos mais rápidos refinando a granularidade dos testes, não testando (por efeito cascata) as funções da aplicação mais de uma vez.