PythonBrasil[11] - Tutoriais

Essa página apresenta a chamada de tutoriais que ocorrerá dias 7 e 8 de novembro de 2015, sendo etapa importante da décima primeira conferência Python Brasil.

Mas o que é um tutorial? É um treinamento que poder ter 2, 4 ou 8 horas de duração.

Eles ocorrerão na Fatec de São José dos Campos e terão entrada franca.

Se você deseja inscrever um tutorial, preencha a proposta abaixo e não esqueça de informar na descrição a duração de seu tutorial.


Este evento não aceita mais propostas.

Propostas

author photo

[2h, 4h ou 8h] - Docker e Python - Do 'mkdir' ao deploy

Com a popularização do Docker no último ano, muitas perguntas foram levantadas em relação a aplicação dele no dia-a-dia.


Vamos entender como o Docker pode benefícios para os times de desenvolvimento (Dev, Qa, DevOps, etc) e o que muda na arquitetura das suas aplicações, mostrando tudo isso na prática.


Descrição completa


O conteúdo ficou dividido em três partes


1 - Conceitos do Docker



Pretendo começar mostrando o que é o Docker, e qual a revolução que ele trouxe. Falarei um pouco sobre os conceitos básicos dele.
Depois disso, trarei as formas de estruturar os containers (Bloated vs Lean). Seguindo na linha de Lean containers, como isso pode influenciar a arquitetura do software.


2 - Docker e a Aplicação


A ideia é apresentar de forma prática, como compor um conjuntos de serviços utilizando Lean Containers. Utilizaremos as ferramentas oficiais do Docker para montar um ambiente de desenvolvimento.
- Criação de Dockerfile
- Uso do docker-compose
- Adição de novos serviços


3 - Indo para produção


E por final, algumas idéias de como rodar esses mesmos containers em produção (utilizando serviços como AWS e semelhantes).


 


PS: O Workshop pode ser feito em 2h, 4h ou 8h. O que mudará é a complexidade das práticas.


 

Use os botões abaixo para votar:

author photo

[2h-4h] Python na palma da mão

Imagine a cena: Você tem uma ideia genial e começa a desenvolver uma app com todo ânimo, escreve umas 1000 linhas de código, abre o emulador e vê escrito 'Hello World'. Pluga seu celular e... Boom! NullPointerException.



Vamos aprender a fazer apps mobile da maneira certa: em Python.


- Escreva a lógica da sua app livre de gambiarras

- Como fazer testes automáticos e fugir do 'Works on my machine'

- Debug is on the table: Identifique e corrija erros em seu código

- Dicas marotas de como melhorar a aparência do seu app sem ser um designer

 

Fácil, rápido, e sem complicações. Participe deste tutorial e descubra como!

Use os botões abaixo para votar:

author photo

[2h-4h] Utilizando uma API RESTful em Tornado para acesso a banco via SQLAlchemy

Utilizando uma API RESTful em Tornado para acesso a banco via SQLAlchemy


Você tem dados em um banco SQL e quer acessar de seu aplicativo mobile ?  Que tal disponibilizar esse acesso via API ?


Tornado


É um framework web em python e um biblioteca, asíncrona, de rede. Possibilita um contrução simples e rápida de uma API RESTful


SQLAlchemy


É um ORM (Object Relational Mapper), que mapeia as tabelas de bancos SQL e dá aos desenvolvedores o poder do SQL com a facilidade do python


 


Tópicos:


1 - Tornado e SQLAlchemy, o que são, quem utiliza, por que usar ?


2 - Criando uma API com o Tornado


3 - Mapeando um banco Postgres com SQLAlchemy


4 - Integrando tudo! O acesso leitura/escrita ao banco via API 

Use os botões abaixo para votar:

author photo

[4h] Capturando dados com Python

Capturando Dados com Python


O Problema


Dada a imensa quantidade de informação disponível na Web de forma distribuída e não padronizada, é comum a necessidade de capturar e converter/normalizar esses dados antes de começar o trabalho desejado em cima deles: análise e visualização. As etapas de captura e normalização tiram o foco do projeto de análise e visualização e podem ser bastante trabalhosas.


O objetivo desse tutorial é apresentar ferramentas para facilitar/automatizar ao máximo as etapas de captura e normalização de dados.


Captura de Dados


Essa é a etapa onde baixamos a informação desejada, mesmo que ainda esteja em um formato não amigável para fazer análise. Exploraremos o uso das seguintes bibliotecas:



Normalização de Dados


Após feita a captura precisamos normalizar os dados, colocando-os em formatos amigáveis à etapa de análise.


O processo de normalização tende a ser bastante trabalhoso e passível de inúmeros erros, dado que nem sempre os dados estão padronizados ou amigáveis à análise. Nessa etapa veremos o funcionamento da biblioteca rows (desenvolvida por Álvaro Justen) que visa automatizar ao máximo o parsing de formatos de dados tabulares (como CSV, HTML, XLS, dentre outros), bem como a extração para outros formatos.


 

Use os botões abaixo para votar:

author photo

[4h] Criando apis com o Django REST framework 3

Django REST framework, permite escrever apis REST de forma rápida e flexível, tirando proveito dos mais novos recursos e do ecosistema Django.

Web browseable API, OAuth1a/OAuth2, api de serialização, altamente customizável, ótima documentação são algumas das características do Django REST framework. Com todas essas funções, se tornou um dos principais frameworks REST da comunidade Django.


Tópicos:

1 - Serialização
2 - Requisições e respostas
3 - Classes baseadas em views
4 - Autenticação e permissões
5 - Relacionamentos e APIs com hiperlinks
6 - Viewsets e roteadores


 

Use os botões abaixo para votar:

author photo

[4h] De geradores com yield a co-rotinas com await: concorrência moderna em Python

Novidades como o acionamento de co-rotinas com `yield from` e os módulos `concurrent.futures` e `asyncio` representam um capítulo novo na evolução de Python, e são as melhores razões para migrar para Python 3. Esta palestra mostrará como essas ferramentas tornam a programação concorrente possível sem o gerenciamento manual de threads/locks e sem o inferno dos callbacks.

Também serão abordadas as novas sintaxes para programação assíncrona no Python 3.5, usando as palavras reservadas `async` e `await`.

Use os botões abaixo para votar:

author photo

[4h] Django, além do Hello World.

Tutorial elaborado para iniciantes em Python ou desenvolvedores interessados em aprender algo além da documentação do Django, que apesar de ser uma excelente documentação não consegue descrever todo poder que esse framework possui.


Além de relatar bons casos de uso, iremos do starter de uma aplicação até a concepção dessa em um ambiente de produção, entendendo como funciona o ambiente web Python e o famoso WSGI.


Entre os temas abordados nesse tutorial veremos, Class Based Views e as Generic Class Based Views, Django Admin, ORM (Querysets), Sites framework, Forms, Django templates.


 

Use os botões abaixo para votar:

author photo

[4h] Introdução à programação de jogos e à física de jogos com Python

FGAme é uma biblioteca para o desenvolvimento de jogos basados em física desenvolvido na Faculdade do Gama na UnB. Apesar de ainda não estar completamente madura, a biblioteca já implementa diversos recursos para o desenvolvimento de jogos simples e para a simulações de física. O foco é tornar o desenvolvimento de jogos em Python simples e acessível para não-programadores ou para programadores iniciantes. Os objetivos principais da FGAme são: tornar Python divertido para que crianças e jovens queiram se tornar futuros programadores e tornar a física em sala de aula divertida para que estes mesmos jovens também queiram se tornar futuros físicos e engenheiros ;)


Neste tutorial vamos aprender:


- a organizar objetos no mundo, definindo suas propriedades físicas e características de interação.


- a implementar funções de callback para os vários eventos de interesse num jogo: interação com o usuário, colisões, início do frame, etc.


- conceitos importantes de mecânica e da física de colisões que podem ser úteis em jogos.


- a utilizar classes para evitar uma macarronada de código.


No tutorial criaremos um jogo simples baseado em fisica usando menos de 100 linhas de código!


 

Use os botões abaixo para votar:

author photo

A detecção de anomalias trabalhando com dados em tempo real (4h)

Uma grande parte dos dados no mundo sāo séries temporais, em formato "streaming". Nestes dados, a detecçāo de anomalias oferece informação importante em situações criticas.
Por exemplo, em finanças, tecnologia da informação, saúde, energía.

Contudo, a detecção de anomalias em tempo real é um problema dificil.

Neste tutorial, vamos explorar bibliotecas de código aberto em Python para a detecção de anomalias usando dados em tempo real e vamos a comparar as vantagens de cada uma.

O tutorial é dividido em três partes: (i) Tipos de anomalias e algoritmos; (ii) Tipos de dados e criterios para definir uma anomalia; (iii) Alertas e visualizações.

Vamos praticar instalando as librarias usando dados de prova primeiro, e depois vamos usar dados reais do nosso sistema distribuido (somos um startup em San Francisco,
California).

A duração do tutorial é de 4 horas.

Use os botões abaixo para votar:

author photo

Capturando dados abertos sem dor de cabeça

Desde a criação de Lei de Acesso à Informação (LAI[1]) vários órgãos públicos estão disponibilizando dados que antes não tínhamos acesso, porém nem sempre os dados estão facilmente acessíveis: são públicos, mas estão disponíveis em formatos não próprios para fazer análises, muitas vezes contendo erros de formatação e falta de metadados. Quanto menos acessível um dado está, apesar de público, mais perto de um dado fechado ele está.
Nesse tutorial Turicas apresentará diversas bases de dados abertas com as quais já trabalhou, os problemas que enfrentou e técnicas/metodologias para facilitar o uso desses dados, para que você não perca tempo das próximas vezes. Também serão mostrados exemplos de resultados (e código!) desse trabalho de jornalismo de dados no projeto Gênero e Número[2], em que analisamos as questões de gênero no Brasil (e para isso precisamos acessar as mais distintas bases de dados públicas: algumas disponíveis apenas em tabelas HTML, outras em CSVs de gigabytes de tamanho ou mesmo em formatos não padronizados). Ao final, discutiremos como desenvolvedores podem colaborar entre si na utilização de dados abertos mais acessíveis, para evitar retrabalho de captura, limpeza e conversão de dados.


Nota: esse NÃO é um tutorial para iniciantes em Python!


[1]: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
[2]: http://generonumero.media/


 

Use os botões abaixo para votar:

author photo

Ciência de Dados & Python - Ferramentas essenciais para todo Data Scientist (4 horas)

O Python está a cada dia se consolidando como a principal tecnologia relacionada com o Big Data e a ciência de dados.


O objetivo deste tutorial é o de apresentar e fornecer os subsídios necessários a todos aqueles que estão interessados em iniciar estudos relacionados com análise de dados, Big Data e ciência de dados.


Objetivos


- A ciência de dados, paradigmas e perspectivas


- O Data Scientist 


- Análise de Dados


- Aprendizado de Máquina, conceitos e técnicas


- Utilizando o Python para análise de dados


- Python & Big Data (Visualização de dados - Matplotlib, Numpy e Pandas)


- Utilizando o Python para aprendizado de máquina (Scikit-Learn - técnicas supervisionadas relacionadas com regressões e classificações)






- Aprendizado não supervisionado


- Mapas auto organizados & k-means





Use os botões abaixo para votar:

author photo

@comunidade (2h)

Neste tutorial/open space vou compartilhar a resposta, longa, dada pela Jessica McKellar à seguinte pergunta: como dar continuidade a um grupo de usuários começado, como conseguir a constância das pessoas no grupo? Como fazer que o grupo não só diminua, mas cresça? Baseado na experiência dela no Boston Python Users Group (maior existente nos EUA), num jantar na Python Nordeste, ela desenhou um "road map"/pipeline, no verso do crachá, e deu uma explicação detalhada do esquema desenhado. Vamos fazer um open space e montar uma ficha de experiências para os PUGs e PyLadies recém criados e também para todo mundo que aprende Python e quer saber o que fazer depois. Fazer uma metaprogramação e criar um decorator @comunidade.


 

Use os botões abaixo para votar:

author photo

criando um microblog com flask (2h)

tutorial para iniciantes em python,


os interessados poderão conhecer este microframework, suas vantagens e desenvolver na pratica:


- como  configurar o ambiente


- renderizar templates


- debug


- acessar dados de requisições


- message flashing


- logging


- wsgi


- jinja


- deploy


Este tutorial também é interessante se você vem de outra linguagem e quer ter o primeiro contato com Python :-)


 

Use os botões abaixo para votar:

author photo

Desenvolvendo seu Primeiro “Data Product” com Python e Google Cloud Platform [4h]

O objetivo deste tutorial é dar as primeiras noções do que é um “Data Product” e como você pode utilizar Python, Google Cloud Platform e algumas ferramentas livres para produzir seu primeiro primeiro produto.


Para isso, iremos:



  • conhecer técnicas fundamentais de exploração que usamos para sumarizar dados. Normalmente estas técnicas são utilizadas para direcionar o desenvolvimento de modelos estatísticos mais complexos e também para explorar hipóteses que possam ser realmente respondidas pelos dados disponíveis;

  • discutiremos porque uma boa análise precisa ser reprodutível. A reprodutibilidade é fundamental para garantir que os resultados de um estudo possa ser validado independentemente. Como efeito colateral, impõe uma disciplina maior na execução de projetos de análise e um processo automatizado de trabalho;

  • conceituaremos o que constitui um “Data Product”, que é o resultado final de uma análise estatística. O foco estará na criação de um relatório dinâmico que automatiza o processo de análise, mas os conceitos podem ser extrapolados para muitas outras aplicações;


Durante o tutorial implantaremos um stack básico para análise de dados e exploraremos como podemos fazer uso de uma oferta de cloud pública para executar processamento e divulgar nossos resultados.


Público Alvo:



  • Programadores em busca de conhecimentos mais formais de estatística e análise de dados;

  • Analistas que trabalham com muitos dados e que gostariam de ter menos esforço braçal no seu dia a dia;

  • Gerentes que estejam refletindo se Data Science é só mais uma “buzzword” ou se podem gerar valor real para suas iniciativas;


Pré Requisitos:



  • Conhecimento básico de Python;

  • Conhecimento básico de Linux;

Use os botões abaixo para votar:

author photo

Do zero ao Deploy - Fazendo Deploy de aplicações Python (4h)

Sabe aquele momento em que o seu projeto está pronto para ser publicado na internet porém você não faz a mínima ideia de como fazer isso e ainda os exemplos das documentações não funcionam? Nesse tutorial vou mostrar como configurar aplicações dos principais frameworks Python em ambiente de produção.


Frameworks que serão abordados no tutorial:
- Bottle (bottlepy.org)
- Django (www.djangoproject.com)
- Falcon (falconframework.org)
- Flask (flask.pocoo.org)
- Tornado (www.tornadoweb.org)
- Web2py (www.web2py.com)
- Web.py (webpy.org)


Nesse tutorial veremos o que é WSGI e como configurar qualquer aplicação feita em um dos frameworks acima (teoricamente feita em qualquer framework) para rodar em um servidor remoto com as principais ferramentas que temos no mercado (Gunicorn, uWSGI e Supervisord). Você também aprenderá como executar tarefas automatizadas em servidores com o Fabric (www.fabfile.org).


 

Use os botões abaixo para votar:

author photo

Introdução a Kivy e Buildozer para Python Mobile [2hr]

Introdução a Kivy e Buildozer para Python Mobile


Uma apresentação prática de como iniciar o desenvolvimento mobile com Python, Buildozer e Kivy.


1) Instalando e configurando uma máquina virtual


2) Conhecendo o Buildozer


3) Conhecendo o Kivy


3.1) Visão geral


3.2) Widgets


3.3) Propriedades


3.4) Eventos


3.5) Canvas


4) Desenvolvimento de aplicativos básicos


4.1) O clássico TODO


4.2) Galeria de fotos


5) Integrando com Plyer e Pyjnius


5.1) Conhecendo estas ferramentas


5.2) Exemplos práticos de interação de código Python e nativo(como utilizar sensores do celular e rodar aplicativo em background)


 


Background:


Atualmente estou desenvolvendo o Kivy Designer, ferramenta que em breve(espero :P ) irá reunir uma gama de ferramentas Python open-source com a finalidade de facilitar e incentivar o desenvolvimento mobile com Python.

Use os botões abaixo para votar:

author photo

Introdução a Python e Desenvolvimento de Jogos

4h ou 8h


 


Um tutorial de aprofundamento do Python básico e conceitos de Orientação a Objetos, com ênfase em multimídia par ajogos 2D: desenhar na tela, arquivos de imagem, som, leitura do teclado em tempo real, etc...


O objetivo do tutorial é chegar a um jogo funcional no estilo clássico de  "shot'en up" - com uma nave ou personagem controlada pelo usuário e naves inimigas entrando em campo. 


Para chegar até o jogo, iniciaremos com um programa básico em Python, usando Pygame para poder desenhar na tela e ler o teclado, que será gradativamente refatorado até uma versão jogável, e os conceitos de isoamento em funções, refatoração para Orientação a Objetos serão introduzidos gradativamente a medida que forem necessários apra evolução do código. 


Serão dadas dicas de como criar jogos com a mesma estrutura e conceitos para Web, usando Canvas e HTML5 e um "transpiler" de Python para Javascript.


A idéia é que acrescentando os conceitos de O.O. na medida do necessário os particpantes adquiram um entendimento mais sólido sobre o uso desse paradigma de programação. Em paralelo, um bom entendimento sobre Python  e estruturas de dados (listas, dicionários, conjuntos)  as partes fundamentais de um jogo, familiaridade com criação artística para jogos 2D, e muita diversão também são parte do que será vivenciado nessa oficina.


Palavras chave: Python, Orientação a Objetos, Jogos, Jogos 2D, Pygame, 


 


 

Use os botões abaixo para votar:

author photo

Modelando seu Negócio com Software Livre (2h)

O software livre vem ganhando cada vez mais importância nas pequenas e grandes empresas, que percebem os benefícios da inovação aberta e colaborativa. O objetivo deste tutorial é mostrar como o software livre e a colaboração podem ser uma excelente estratégia de negócios. O tutorial se propõem a reunir programadores, designers e empreendedores digitais de todos os tipos para modelar um negócio baseado em software livre. Para tal, iremos utilizar a metodologia Lean Canvas. Queremos proporcionar aos participantes uma experiência significativa, divertida e colaborativa. Observação: será dado um enfoque especial para negócios em Python / Web.


Este tutorial faz parte do programa Startup Livre, com apoio da Associação Software Livre:


http://startuplibre.com/pt-br

Use os botões abaixo para votar:

author photo

Nas nuvens com python, scaling, Docker e Aws (1h30m~2h)

Quem deseja ter um deploy rápido, sem downtime e 100% automatizado utilizando a aws.


 


Neste tutorial, apresentarei:


* O que é: Aws, ElasticBeanstalk, Docker, scaling e deploy


* Como e quando utilizar o docker


* Como criar uma aplicação de desenvolvimento usando o docker


* Como criar pacotes para deploy com elasticbeanstalk, utilizando scaling, docker, ec2 e multi A-Z


* Como monitorar seu deploy

Use os botões abaixo para votar:

author photo

NES Hacks (2hs)

Neste tutorial, vamos fazer uso de Assembler/Lua e Python para demonstrar como os consoles de 8 Bits eram construidos nos anos 80 e como são hackeados hoje em dia.


Vou compartilhar o aprendizado que tive nos últimos anos e ajudar executar e construir demos. 


 


Situaćão Problema:


 - Como um console de videogame era feito nos anos 80?


 - Por onde comećar e como entender a vasta literatura disponível 


 - Como Python me ajuda?


 


Tópicos:


 - Aprender o funcionamento básico do 6502 com suas particularidades e registradores no NES


 - Entender o que são mappers e como eles expressão um tipo singular de programaćão.


 - Fazer interrućões de hardware no emulador utilizando Lua, primeiros passos para Hack e Debug


 - Hello World em Assembler utilizando Mapper #0


 - Finalmente Python, apresentado como apenas mais uma ferramenta a cerca do tema.


 


Objetivo:


 - Apresentar em detalhes o funcionamento do NES. Neste tutorial, Python não será vista como o epicentro do conteúdo, mas como uma ferramenta que permita alterar a sua forma.


 


-- PRESS START --


 


 

Use os botões abaixo para votar:

author photo

Programação científica com Python e SciPy (2h)

Neste tutorial você aprenderá a trabalhar com o pacote de expansão scipy, que possui várias ferramentas poderosas para manipulação de dados e resolução de problemas científicos.


Os tópicos abordados serão os seguintes:


* Configuração do ambiente


* Interpolação


* Estatística


* Ajuste de curvas


* Minimização


* Integração


* Solução de Equações Diferenciais Ordinárias


 


Acompanhe o autor também no www.programandociencia.com.

Use os botões abaixo para votar:

author photo

Python no QGIS

O tutorial irá abordar o uso de Python no programa de Geoprocessamento QGIS.


O QGIS (www.qgis.org) é o projeto que mais cresce na área de Desktop GIS livre, onde organismos internacionais tem patrocinado a construção de plugins para o QGIS, como exemplo o InaSafe (http://inasafe.org/).


O uso de Python no QGIS é intenso, podendo ser utilizado em várias partes do QGIS, como criação de plugins, novas expressões usadas  para seleção e população de dados, em macros de inicialização e fechamento do QGIS, em formulários para entrada de dados, em rotinas de processamento, até um console Python o QGIS, com Python no QGIS não tem limite para sua imaginação.


 


 


 

Use os botões abaixo para votar:

author photo

SRE Classroom: Non-Abstract Large System Design (4h ou 8h)


Verdadeiros sistemas de grande escala ainda são raros; em um mundo de outsourcing e cloud computing, são ainda mais raras as oportunidades para desenvolvedores projetarem esses grandes sistemas. É ainda mais difícil chegar a um design correto. A maioria das organizações não possui a experiência para construir um sistema assim, portanto terceiriza o design e planejamento. Se uma organização não possui essa experiência e conhecimento, também não conseguirá avaliar se a proposta de terceiros é apropriada ao problema e não dispendiosa.


Enquanto qualquer um pode se vestir bem, fazer uma apresentação convincente e chegar a um rascunho básico de um sistema distribuído de grande escala, aqueles que realmente conseguem completar o rascunho com detalhes são altamente estimados. Esse tutorial te ensinará a projetar sistemas como Imgur e Twitter, e depois estimar quanto hardware será necessário para garantir a entrega de seu SLA. Você aprenderá como requerimentos como requisições-por-segundo, confiabilidade distribuída e segurança de dados impactam os custos de implementação.


Esse tutorial é mais focado no design e arquitetura de sistemas do que em programação.


Público alvo:


DevOps, SREs, administradores e engenheiros de sistemas que possuem alguma familiaridade com sistemas distribuídos, hardware de servidores e programação, especialmente aqueles que gostariam de trabalhar com ou construir sistemas distribuídos de grande escala.


Para levar pra casa:




A habilidade de projetar sistemas distribuídos de grande escala, avaliar propostas de arquiteturas e explicar esses projetos a terceiros.


Tópicos incluem





  • Design patterns de sistemas distribuídos

  • Design não abstrato: traduzir um projeto e produzir um "bill of materials"

  • Projetando para falhas: como trabalhar com falhas de rack, rede e datacenters.


Forneceremos material de estudo de forma que mesmo participantes menos experientes possam aproveitar ao máximo.


Histórico


Essa classe já foi apresentada com sucesso nos escritórios do Google e em conferências como EuroPython, SRECon e LISA.


Durante o tutorial, os participantes receberão um problema para resolverem em grupos com base no material coberto e com ajuda dos apresentadores. Ao final, cada grupo apresentará suas soluções e discutiremos os desafios encontrados.


Duração


Podemos apresentar esse tutorial em 4 ou 8 horas. Em caso de 8 horas, serão incluídos os temas monitoramento e preparando para desastres.




Use os botões abaixo para votar:

author photo

Web scraping na nuvem (2h)

Scrapy é um framework para web scraping com baterias inclusas.


Neste tutorial (duração: 2h), você vai aprender a fazer um crawler com Scrapy do zero e fazer deploy no Scrapy Cloud (serviço da Scrapinghub, empresa por trás do Scrapy).


No decorrer do tutorial, vamos tratar de assuntos como politeness, lidando com Javascript & AJAX e dicas para extrações mais robustas a mudanças no leiaute.


Caso você já saiba usar o Scrapy, traga suas dúvidas e faremos uma sessão de perguntas e respostas. :)


Nota: se possível, traga notebook com lxml e Scrapy instalados.

Use os botões abaixo para votar: