Python Brasil[12] - Apresentações

Este é canal oficial para submissões de palestras para a Python Brasil 12.

A Python Brasil Será entre os dias 13 a 18 de outubro de 2016, na cidade de Florianópolis/SC, sendo que as apresentações se concentrarão entre os dias 15 e 17 de outubro no Centro de Convenções Centro Sul.

As palestras devem ter o tempo máximo de 40 minutos e podem abordar qualquer área dentro do universo da linguagem Python. Caso tenha interesse em palestrar, mas está com dúvidas, nos mande um e-mail em eventos@python.org.br que tentaremos ajudar.

Se possível oriente a categoria da sua palestra, com uma marcação como "[Web]", assim podemos filtrar da melhor maneira possível. Seguem dicas de categorias [Iniciantes, Web, Python Científico, Carreira, Embarcados, DevOps, Desktop, Mobile, Comunidade]. Podem colocar outras categorias que não foram listadas aqui.

Serão aceitas palestras em Español e English :)

Critérios de escolha de palestras:

* Número de palestras do mesmo assunto (maior diversidade de assunto)

* Número de palestras por palestrantes (maior diversidade de palestrantes)

* Palestrantes locais (incentivar Python na região de Florianópolis)

* Número de votos

* Palestrantes novos


Este evento não aceita mais propostas.

Propostas

author photo

1 ano trabalhando como Dev Django depois de 5 anos como Dev Java [Comunidade, Carreira]

Vou compartilhar as experiências que tive nesses últimos meses como Dev Django na Kiwi.com - Brno, República Tcheca. Desde o primeiro contato com Django no Django Girls São José dos Campos (Python Brasil 2015) até a talk na EuroPython 2016 em BIlbao. Vou compartilhar as boas experiências além dos maiores desafios de estar trabalhando em outro país.


- Participante do Django Girls São José dos Campos (Novembro, 2015)


- Treinadora do Django Girls Rio de Janeiro (Março, 2016)


- Treinadora do Django Girls Budapest (Março, 2016)


- Participante do DjangoCon (Março, 2016)


- Palestrante da EuroPython (Julho, 2016)


- Organizadora do Django Girls Brno (Outubro, 2016)

Use os botões abaixo para votar:

author photo

2 PaaS, 4 estágios: Usando docker, dokku e OpenShift para Continuous Delivery de Microserviços Python na Nexxera [DevOps]

Heroku e outras PaaS baseadas em CloudFoundry utilizam Buildpacks. OpenShift, por outro lado, utiliza Source2Image e suporta docker. Na Nexxera, para isolar o desenvolvimento em si da tecnologia de Cloud e PaaS, utilizamos 2 PaaS em 4 estágios: DEV, INTEGRATED, QA e PRODUCTION os quais seguem um pipeline de deploy alimentado pelo GitLab. Utilizamos dokku para DEV e INTEGRATED e OpenShift para QA e PRODUCTION. Para garantir que o mesmo bundle seja promovido em toda a esteira, utilizamos imagens docker como mecanismo base, sem que os desenvolvedores tenham que se envolver nos detalhes de Dockerfiles. Nessa apresentação detalharemos nossa arquitetura para ficarmos agnósticos de PaaS e com a produtividade de ambientes tipo Heroku, compartilhando dicas e lições aprendidas.

Use os botões abaixo para votar:

author photo

500 Dias de Open Source

A verdade é que muita gente tem medo ou receio de começar a contribuir por não saber como começar ou não se achar bom o suficiente para levantar alguma contribuição. A ideia é mostrar como ser fácil contribuir e como qualquer pessoa pode fazer isso. A palestra irá abordar de maneira divertida e informativa o desenvolvimento voltado para o open source. Apresentando os pontos positivos e negativos de contribuir 500 dias seguidos em projetos de código aberto. O objetivo final é motivar e mostrar como é fácil contribuir em projetos abertos.

Use os botões abaixo para votar:

author photo

A arte de roubar (idéias) dos frameworks ricos e entregar para a sociedade (PyPI)

"roubando" idéias legais do Django e do Flask e transformando em libs genéricas para uso em qualquer framework pt1.


A minha idéia é mostrar como eu extrai 3 idéias muito legais do Django e uma do Flask transformando em libs Python independentes para serem usadas em qualquer projeto python sem depender de framework especifico e falar como esse exercicio pode ser interessante do ponto de vista do desenvolvedor e também do ponto de vista da "socialização" do ecossistema. 


1. Python Manage (shell interativo e comandos)


O django possui o gerenciador de comandos conhecido como manage.py, eu extrai essa idéia em uma lib chamada manage e com ela é possivel ter o shell interativo com objetos auto-importados e comandos personalizados de forma bem flexivel além de muitas possibilidades a serem implantadas (com sua ajuda). Quero mostrar como funciona no Django, como fiz para transformar em uma lib generica e como voce pode usar em qualquer projeto Python.


2. Dynaconf (configurações dinamicas)


Além do django.conf.settings que é até bastante flexivel (apesar dos seus problemas de acoplamento) a comunidade Django sempre teve boas libs para desacolpar settings, juntando todas essas idéias eu criei o Dynaconf que faz com que seja fácil ter configurações dinamicas e flexiveis em qualquer projeto Python.


3 (bonus) import_string (imports dinamicos)


Seguindo a mesma idéia eu dessa vez fui roubar um modulo utils do werkzeug (flask) e dei uma otimizada e transformei em uma lib chamada import_string, também quero mostrar como funciona.


A idéia é dar uma palestra mostrando como é útil extrair boas idéias de frameworks e transformar em libs que todos possam usar! e também mostrar como fiz e o que as libs podem fazer por você!

Use os botões abaixo para votar:

author photo

A inevitável ruptura da comunidade

No entorno da linguagem Python e do seu ecossistema o elemento fundamental que viabiliza tudo são pessoas. Pessoas únicas e diversas em todos os aspectos.


É através da livre interação dessas pessoas que o universo Python se manifesta criando esse emaranhado fascinante que conhecemos.


Comumente nos referimos à essas pessoas usando genericamente a palavra "comunidade".


Com o crescimento da comunidade se manifesta uma tendência de “grupificação” que a solidifica e tende a inviabilizar a dinâmica de rede que a originou.


Nesta palestra eu desejo compartilhar algumas reflexões fruto da minha vivência no ecossistema Python ao redor do mundo para promover a conversa sobre uma releitura do conceito de comunidade para continuarmos fomentando espaços abertos.

Use os botões abaixo para votar:

author photo

A Little Talk about Semaphores (ou padrões de sincronização em programação concorrente)

Cada vez mais nós programadores escrevemos software concorrente, mas nem sempre usamos a melhor solução. Baseado no livro The Little book about semaphores, a palestra vai mostrar o que é programação concorrente e quais são as melhores soluções para cada tipo de problema, desde o mais simples até mais complexos.

Use os botões abaixo para votar:

author photo

API First e BDD aplicados a um servidor REST em Python - Um Caso Real [WEB]

Behavior-Driven-Development foca em valor agregado para o usuário final mas é preciso que o software tenha uma separação em camadas de forma correta. A metodologia API-First usada no desenvolvimento do Eclipse entre outros pode ser combinada com BDD de forma a produzir soluções modulares e fáceis de manter e evoluir. Essa apresentação detalha um case real de como um servidor REST em Python para um aplicativo Mobile foi desenvolvido seguindo essa metodologia.


Os slides podem ser encontrados em http://www.slideshare.net/MarcioMarchini/bddnamoroon


 

Use os botões abaixo para votar:

author photo

APIs escalaveis, simples e com boa documentação usando Flask e SwaggerUI

O Swagger UI se transformou em uma espécie de padrão para documentação de APIs REST


Eu criei uma extensão para o Flask chamada flasgger http://github.com/rochacbruno/flasgger que automatiza boa parte do trabalho de documentar e apresentar a API em forma de UI navegavel!


Pretendo mostrar boas praticas para criação de APIs simples usando Flask puro! e como usar o flasgger para criar um playground/documentação para sua API

Use os botões abaixo para votar:

author photo

Aplicando DDD de forma incremental em um projeto Django no mundo real

Na indústria de software, a expectativa de vida de ideias, metodologias e técnicas é extremamente curta. No entanto, após mais de 10 anos, DDD (Domain Driven Design) continua crescendo. Originalmente com suas raízes no paradigma orientado a objeto, o DDD é hoje apresentado e disseminado em outros paradigmas como o funcional, programação reativa, entre outros. O DDD também é aplicado em diferente estilos de arquitetura como o hexagonal e o CQRS (Command Query Responsibility Segregation).


Nesta palestra vamos falar como o uso de DDD pode beneficiar na construção de sistemas não triviais, a partir de um caso de sucesso vivenciado na ThoughtWorks. Neste projeto, a introdução do DDD, de forma gradual, transformou uma base de código com problemas típicos de times iniciantes em Python e Django - tais como excesso de lógica de negócio nas views, consultas ineficientes ao banco de dados, entre outros - em um sistema com uma arquitetura e design adequado às necessidades de um negócio com regras complexas. A aplicação desta abordagem juntamente com a aproximação do time de desenvolvimento técnico e de negócio foi fundamental para estabelecer uma relação de confiança e viabilizar a entrega de um software de qualidade.


Baseado na experiência de mais de um ano de projeto, ainda em andamento, vamos falar de forma prática e com exemplos que podem ser aplicados aos seus projetos sobre:


- Desenvolvimento ágil;


- Como evoluir sistemas de forma consistente e segura;


- Adoção de novas técnicas em times de desenvolvimento;


- Benefícios e dificuldades encontradas;


 

Use os botões abaixo para votar:

author photo

Aprenda a criar mapas dinâmicos e cheios de firulas com Flask GoogleMaps

Em 2014 eu participei como mentor do Google Developer Bus e precisava apresentar uma palestra sobre Python utilizando tecnologias do Google.


Durante a madrugada da vespera eu preparei a palestra mostrando como criar extensoes para o Flask e ai saiu o Flask-GoogleMaps que encapsula a API do GoogleMaps em templates Jinja e helpers do Flask


O projeto ganhou uma boa adoção da comunidade Flask e hoje conta com a colaboração de muita gente da comunidade brasileira e internacional.


O FlaskGooglemaps é uma extensão oficial registrada no MetaFlask e foi usada para criar o PokemonGO Maps!


Pretendo mostrar como é fácil criar apps que dependam de mapas (como Uber, AirBnb etc..) usando o Flask e o Google Maps


 


https://github.com/rochacbruno/Flask-GoogleMaps

Use os botões abaixo para votar:

author photo

Aprendi Python, e agora?

Uma das maiores dúvidas que encontro com os leitores do Programe em Python e com os alunos do Python From Scratch é: Certo eu aprendi Python, ma e agora, pra que lado eu continuo?


A resposta não é fácil, e o caminho varia para cada pessoa, mas nesta palestra pretendo mostrar alguns caminhos para onde a pessoa pode seguir e dicas de libs importantes para se estudar em cada área, assim como algumas libs importantes para desenvolvedores de todas as áreas.

Use os botões abaixo para votar:

author photo

Aprimorando as habilidades de debugging e troubleshooting

No instante que um software encontra o mundo real, bugs começam a aparecer e fazer parte da vida de todos os envolvidos.


Quanto mais software cresce e se espalha pelo mundo, mais pessoas passam mais tempo tentando fazer eles funcionarem da maneira correta. Não é difícil imaginar um futuro em que os programadores passem mais tempo consertando problemas do que criando novos projetos.


Nessa palestra, falarei sobre como aprimorar nossas habilidades em encontrar e resolver bugs, mostrar algumas ideias e ferramentas que me tornaram um debugger melhor e que podem ajudar você também.


Temas incluem técnicas (shotgun, rubberduck, método científico), ferramentas (print, debugger, strace, google), deployment, testes e também saúde mental (lidando com bugs frustrantes).

Use os botões abaixo para votar:

author photo

A Programação Funcional em Python, de forma simples


Se você já usou lambda, maps ou comprehensions em Python, você já esta usando aspectos da programação funcional. Vamos explicar de forma simples o que é programação funcional, quais são as construções funcionais existentes em Python e como podemos usá-las para melhorar nosso código e prevenir bugs. Vamos  também descomplicar conceitos como Side Effects, imutabilidade, código declarativo, e expressions.



 Tópicos a serem abordados:


1) Introdução a programação Funcional:


- Paradigma Funcional X Imperativo


- Mutação X Imutabilidade


- Expressions X Statments


- First-Class and High-Order functions


2) Construções Funcionias em Python:


- Lambda


- Map, Filter, Reduce


- Compreehensions


- Partial, Comp, Operators


3) Modulos:


- Functools


- Itertools

Use os botões abaixo para votar:

author photo

Automatizando a infraestrutura e disponibilizando aplicações web python com Ansible [Web, DevOps]

Ansible é uma ferramenta de automatização de tarefas de infraestruta escrita em python. Com ele é possível configurar, orquestrar e instrumentar servidores para disponibilizar e manter suas aplicações desde o ambiente de desenvolvimento até produção.


Nesta apresentação irei mostrar como é simples utilizar o Ansible usando uma app Django como exemplo, fazer uma comparação com outras ferramentas do mercado como Chef e Puppet e compartilhar casos reais da minha experiência com desenvolvimento de aplicações python na Globo.com e meus projetos pessoais.

Use os botões abaixo para votar:

author photo

BDD com Python, facilite a vida de todos! [Teste]

Nessa palestra pretendo mostrar como são utilizadas TDD e BDD em projetos Python/Django de uma forma simples para aqueles ainda não familiarizado com as técnicas de desenvilvimento utilizando testes.

A apresentação será feita com exemplos práticos, mostrando o uso de TDD, e depois as vantagens em utilizar BDD com Python/Django.

 

Compartilhando um pouco da minha experiência com exemplos simples, serão expostos os conceitos e vantagens técnicas e não técnicas da utilização de BDD no desenvilvimento de seu projeto, facilitando a comunicação entre chefe e programadores.

 

Tópicos que serão debatidos:

* Problemas reais na construção de um software

* Exemplo báscio de um CRUD com Django

* Técnicas de TDD (usando a lib FactoryBoy)

* Vantagens e desvantagens do TDD

* Técnicas do BDD (usando a lib Splinter/Selenium)

* Vantagens e desvantagens do BDD

 

 

Já existe um exboço da apresentação no link: http://slides.com/daniellbastos/bdd 

Mas a apresentação será atualiza para o evento, focando no público do evento, muito diferente de uma semana acadêmica (do IFRS/POA).

Use os botões abaixo para votar:

author photo

big data disruptiva com python

trabalhar com enormes massas de dados dos mais variados tipos, é um desafio que vem sendo vencido dia a dia com python.


A palestra abordará:


- investigação e operacionalização dos seus dados;


- conceitos de computação distribuida com python:


- hackeando fonte de dados;


- estatistica e matematica para iniciantes


 

Use os botões abaixo para votar:

author photo

Big Data e Python como cidadão de primeira classe para Sistemas Distribuídos

Bibliotecas e ferramentas como numpy, Scikit, Pandas e Jupyter fizerem de Python um dos melhores eco sistemas para Data Science. Mas mesmo tendo caído nas graças dos Data Scientists, Python ainda não é efetivamente utilizada para processamento de dados em larga escala (Big Data). A maioria das ferramentas de processamento de dados, em especial as ferramentas para "Stream Processing", são escritas em Java. Nos casos onde existe algum suporte, Python é cidadão de segunda classe, sempre atrás em features ou performance.


Podemos fazer com que Python se torne uma excelente opção não apenas para os Data Scientists mas também para os Data Engineerings, que precisam prototipar e modelar pipelines complexos para Big Data. Nessa palestra entenderemos porquê Python ainda não preencheu essa lacuna, quais são os desafios técnicos e possíveis soluções para que Python seja uma linguagem de primeira classe para processamento de dados em larga escala e consequentemente para sistemas distribuídos.


Vamos investigar os seguintes tópicos e tecnologias: Stream Processing, Performance, Comunicação Distribuída e Actor Model, IO Assíncrono, Containers e Orquestração, Erlang e Elixir, Java/Scala, Netty e Akka.

Use os botões abaixo para votar:

author photo

[Carreira ] Programação transcultural

Programação é cultural. Sim, por ser produzido por um indivíduo com cultura (seja qual for), o código é permeado pela cultura de quem o escreve. E isso vai além da escrever python pythonicamente.


Entender como compreensão de cultura, mind-set ou forma de pensar fazem parte da nossa vivência também ao escrever, revisar, analisar, implementar e refatorar códigos.


Tópicos:


- Você sabe mesmo o que é cultura?
- Espera um pouco! Transcultural? É de comer?
- Tem certeza que não é um tópico para outra conferência?
- O que eu ganho com isso? Ou melhor, isso pode me prejudicar?
- Of course, my horse
- Código, processos e cultura
- Isso nunca me aconteceu antes
- Mas você não sabe onde eu trabalho
- Continue nadando...


 


 

Use os botões abaixo para votar:

author photo

Coerência de cache de granuraridade fina, usando django-signals

Fazendo o uso do cache do nginx, podemos ter melhoria de desempenho de APIs restful e conteúdos de 1000X ou mais. Mas como ter controle do que está no cache e se este conteúdo é coerente com o que está no backend?


Com sistemas de cache utilizando nginx ou varnish, geralmente são baseados em tempo (valid 10 min., 24h, ...) mas muitas vezes ao fazer modificações em models do django, seria muito bom que este cache fosse invalidado no momento da modificação (post_save, post_delete, pre_save, etc).



O django-cache-coherence foi criado para atender esta necessidade. Para cada requisição em uma url requisitada e está configurada para fazer cache, os dados da requisição são salvos em um banco e registrado um signal para fazer a limpeza deste cache (PURGE). Assim que houver uma chamada do signal registrado, é feito uma consulta neste banco de requisições cacheadas, e disparado as limpezas, invalidando o cache somente da informação modificada, deixando integro o restante ndo cache.



Para ativar este tipo de funcionalidade no nginx é utilizado o módulo [ngx_cache_purge](https://github.com/FRiCKLE/ngx_cache_purge/)


Vou mostrar a configuração do nginx e como fazer inclusive cache de APIs, com e sem autenticação. Mostrando como garantir e entrega com cache de informações sensiveis de usuários.



Para a validação de verificação do funcionamento são feitos testes de integração com testes unitários e containers docker.


 

Use os botões abaixo para votar:

author photo

Como a Globosat utiliza Python para distribuição de conteúdo

Com um acervo de mais de 80.000 mídias, é necessário que todas as informações estejam em ordem. Além disso, o trabalho de aproximadamente 10 editores de conteúdo precisa ser atualizado com o menor atraso possível. Nesta palestra, contarei sobre as soluções para processamento paralelo utilizado na Globosat, passando também pela infraestrutura das API's dos aplicativos Telecine Play e Globosat Play.

Use os botões abaixo para votar:

author photo

Como criar extensões para o Jupyter Notebook

Jupyter Notebook é uma aplicação que permite criar documentos com códigos interativos, visualizações e markdowns explicativos.


Devido a sua facilidade e capacidade de visualização de resultados, o Jupyter tem sido utilizado em desenvolvimento explorativo, prototipagem, ensino, processamento de dados, simulações numéricas, etc.


No processo comum de criação de notebooks, muitas pessoas restringem seus códigos a apenas Python e visualizações fornecidas por bibliotecas como matplotlib ou visualizações textuais padrões.


Entretanto, o Jupyter permite muito mais do que isso por meio de extensões e métodos especiais de visualização.


Nesta apresentação, pretendo explicar:
- como registrar e carregar extensões IPython no Jupyter
- como criar cell magics para modificar o comportamento de células, permitindo executar SQL, e até mesmo transformar o código Python em testes unitários
- como criar line magics para chamar funções corriqueiras sem muitos imports
- como definir métodos de exibição para visualizar grafos do graphviz (png/svg) ou grafos da d3 (html/js)
- e algumas gambiarras em javascript para alterar a célula selecionada, indicar se testes estão passando, alterar syntax highlighting para células.

Use os botões abaixo para votar:

author photo

Como deixar a lógica do sistema na mão do cliente e de forma visual usando diagramas de ações (exemplos no Odoo)

No desenvolvimento de sistemas, especialmente para empresas, o código acaba cheio de IFs que evaluam expressões hardcoded para enfrentar situações específicas que não foram documentadas ou informadas nas especificações ao inicio do projeto. Isso faz com que seu sistema seja muito mais difícil de manter e acabe cheio de gambiarras.

Misturando programação funcional, eventos, diagramas e padrões de software, achamos um modo de deixar todas essas exceções na mão do cliente. Inclusive conseguimos que o cliente mesmo altere a interface web da aplicação para adicionar botões para lançar as ações por ele programadas, ou até que programe tarefas cron recurrentes para executar determinadas ações definidas por ele mesmo.

Hoje ele consegue fazer sozinho, e de forma visual num diagrama, coisas do tipo:

- Quero um botão que apareça só quando o valor total da fatura for maior que R$ 1000,00 e que, quando pulsado, gere um relatório PDF com essas informações aqui e envie por email para o cliente usando esse modelo aqui
- Quando o usuário alterar a data de visita, mas só no caso do cliente X, estabelece a data de finalização pa