Python Brasil [13] - Tutoriais
Este é o canal oficial para a chamada de submissões dos tutoriais da Python Brasil 13.
A Python Brasil será entre os dias 6 a 11 de outubro de 2017, na cidade de Belo Horizonte/MG, sendo que os tutoriais se concentrarão entre os dias 9 e 10.
Mas o que é um tutorial? É um treinamento que pode ter 2, 4 ou 6 horas de duração.
Descreva as seguintes informações sobre o tutotial na proposta:
- Duração em horas.
- Configurações de ambiente;
- Pré-requisitos.
Serão aceitos tutoriais em Português, Español, e English.
Dicas:
* Procure colocar uma descrição bem detalhada sobre o conteúdo de seu tutorial para que todos possam compreendê-lo.
* Analise os tutoriais já submetidos e também os de eventos anteriores. Isso pode te ajudar a definir um título e descrição de seu tutorial, e quem sabe você tenha algum insight sobre algum tema.
* Caso você possua mais de um tutorial que queira apresentar você pode enviar uma proposta para cada um deles. Não há limite de proposta de tutoriais por participante.
Observações:
* Para participar do evento o tutor precisa estar de acordo com o Código de Conduta. Você pode acessa-lo em github.com/pythonbrasil/codigo-de-conduta.
* Alguns dias após o encerramento das votações entraremos em contato com todas as pessoas que enviarem proposta de tutorias informando caso seu(s) tutoria(is) forem selecionados.
Site do evento:
Programação de eventos anteriores :
2016.pythonbrasil.org.br/#schedule
2015.pythonbrasil.org.br/#schedule
2014.pythonbrasil.org.br/schedule/index.html
Obs: Votação encerrada.
Proposals
APIs Inteligentes com API Star
API Star é um framework de APIs Web feito para Python 3. Esse framework tem chamado atenção da comunidade por conta de seu criador: Tom Christie, o mesmo que criou o Django REST Framework (DRF). Documentação interativa sincronizada com o código e um sistema de tipos correspondente ao JSON Schema são algumas das principais funcionalidades desse framework.
Nesse tutorial irei abordar os principais conceitos relacionados ao API Star: injeção de dependência por meio de função, mapeamento de tipos com JSON Schema, testes e mocks para a API. Todos esses conceitos serão abordados durante o processo de transformação de uma API de um todo list escrita em DRF para uma API Star.
Outline:
- Hello World
- Documentação Interativa
- Injeção de Dependências em Funções
- Sistema de Tipos
- Testes
- Mock
- API Realtime
Duração: 4h
Nível: Intermediário
Material necessário para o tutorial: computador com Python 3 e Git instalados
Aprenda Flask criando um CMS e suas extensões. What The Flask?
Este será um tutorial baseado na série de tutoriais "What the Flask?" que publiquei no Python Club bit.ly/whattheflask
A idéia é acompanhar os passos da criação do CMS de notícias e ir explicando os conceitos do Flask e suas extensões.
O conteúdo será baseado no tutorial mas terá muito mais exemplos e explicações além de dúvidas que podem ser sanadas durante o tutorial.
Usaremos Flask, dataset, MongoDB, FlaskAdmin, FlaskSecurity etc..
- Hello Flask: Introdução ao desenvolvimento web com Flask
- Flask patterns: Estruturando aplicações Flask
- Plug & Use: extensões essenciais para iniciar seu projeto.
- Magic(app): Criando Extensões para o Flask
- Run Flask Run: fazendo deploy
Duração: 6 a 8 horas (tenho disponível o sábado dia 09, pois meu voô de retorno é dia 10)
Idioma: Português (posso fazer em inglês se for preciso)
Infra: Levarei meu próprio laptop para ser ligado a uma entrada VGA para apresentar.
Os alunos devem usar computadores preferencialmente com Linux/Mac e Python 3.6
Conexão com internet necessária para instalar as dependencias (mas por garantia levarei um mirror do PyPI em um pen-drive com os pacotes usados no tutorial)
OBS: Só terei disponivel o dia 9 portanto posso ministrar apenas um dos tutoriais propostos
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/
Construindo uma aplicação de chat com Django Channels
Neste tutorial vamos apresentar os conceitos básicos de django-channels e como aplicá-los para fazer uma aplicação assíncrona de troca de mensagens estilo slack, onde os usuários serão notificados quando mencionados.
- Django Channels
- O que é?
- Channels muda o ciclo de request do Django?
- Como o Channels potencializa minha aplicação Django?
- Channels Concepts
- O que é um channel?
- Como usar
- Tipos de channels
- Grupos
- Instalação
- Desenvolvendo uma aplicação com Channels
- Chat estilo Slack
- Testing
- Deploying
- Channels escala?
- Como contribuir
Contribuindo com o ecossitema Python criando bibliotecas de qualidade
Este é um tutorial de 2 horas a 4 horas de duração, nele os participantes serão convidados a criar uma biblioteca Python do zero.
Explicarei os seguintes conceitos
- Como funciona o sitema de módulos e namespace do Python (PYTHONPATH)
- Como funciona o setuptools e quais são as opções e "tricks" mais importantes
- Como funciona o PyPI (suas vantagens e desvantagens)
- Criando uma biblioteca Python por onde começar?
- Qualidade do projeto e ferramentas que podem ajudar a garanti-la
- Gestão de versões, compatibilidade reversa e responsabilidades com a comunidade
- Cuidados com o PyPI
Durante o tutorial os partipantes vão poder colocar a mão na massa, criar o projeto, publicar no pypi (test environment)
OBS: Só terei disponivel o dia 9 portanto posso ministrar apenas um dos tutoriais propostos
Criando meu primeiro jogo com Python
Este tutorial tem a intenção de introduzir a pessoa no desenvolvimento de jogos com Python usando a game engine Pygame.
Neste tutorial será desenvolvido um space shooter simples com intuito de mostrar as principais características da biblioteca pygame e do desenvolvimento de jogos de forma geral.
Requisitos: conhecimentos básicos de Python.
Todos arquivos de midia usados durante o tutorial serão disponibilizados aos participantes.
Este tutorial pode ser facilmente adaptado para 4 ou 6 horas, dependendo da disponibilidade de horários.
Curso Básico de Python para Iniciantes
Vamos difundir e divulgar Python para quem não conhece Python! O conteúdo dará noções da linguagem, com exercícios mão-na-massa e para estudar em casa.
Python é para todos!
Por ser uma linguagem de programação de fácil aprendizado – permitindo, inclusive, ensinar lógica de programação ao mesmo tempo – qualquer pessoa desenvolve a capacidade de usá-la e proporciona uma segurança jamais vista em outra linguagem.
A ideia é, já no primeiro dia de tutoriais, convidar os iniciantes a conhecer o básico de Python.
Podemos divulgar nas universidades (cursos de ADS e de ciências em geral), no Catraca Livre de BH e junto à Prefeitura da cidade.
- Duração em horas
de 6 a 8 horas
- Configurações de ambiente
Existem três possibilidades, todas necessitam de projetor:
1. Laboratório com computadores em que possamos instalar o Python 3.4 (nessa configuração, poderemos atender a qualquer pessoa da comunidade, ainda que não possua um laptop para levar);
2. Sala comum com mesas e tomadas para que cada um leve seu próprio equipamento;
3. Mix: laboratório com computadores e também com cadeiras excedentes para receber quem levará o próprio equipamento.
- Pré-requisitos
Saber ligar o computador (e se não souber, a gente ensina!)
- Conteúdo do curso
• o que é algoritmo
• onde se usa Python
• instalação
• função print
• declaração de variáveis e seus tipos
• operadores
• strings
• listas e tuplas
• entrada de dados
• condicionais (if/else)
• contadores e acumuladores
• while
• for
• funções
Data Visualizations e Machine Learning com Python
Aprenda neste tutorial sobre como obter insights significantes para seus projetos de machine learning com a visualização de dados.
Programação:
1 - Introdução ao Machine Learning;
2 - Visualização de dados para aprimorar seus modelos de Machine Learning;
3 - Fazendo previsões com aprendizagem supervisionada;
4 - Criando segmentos de clientes com aprendizagem não supervisionada;
5 - Introdução a redes neurais artificiais;
6 - Aprofundando em visualização de dados;
7 - Introdução a aprendizagem por reforço ensinando um táxi a dirigir.
Pre Requisitos
Pyhon 2.7.3 / NumPy / Pandas / SciPy / PyGame / Jupyter Notebook / Matplotlib / Bokeh / Seaborn
Recomendo instalar o Anaconda 2 que já instala a maior parte das bibliotecas que iremos utilizar.
Deploy fácil e automático do seu projeto Django com Jenkins e Elastic Beanstalk
Neste começo de ano me deparei com o desafio de fazer deploy de um software Django no Elastic Beanstalk, que eu não conhecia ainda, e vou te dizer a solução ficou tão boa que resolvi compartilhar com vocês!
Neste tutorial vocẽ vai aprender a fazer deploy do Django (e qualquer oura aplicação wsgi na verdade) no ElasticBeanStalk com build e deploy automáticos e controle de versões de artefatos no jenkins
Desenvolvendo chatbots para o Facebook Messenger com Python e Django
O minicurso é destinado aos profissionais e estudantes que desejam obter conhecimento no desenvolvimento de chatbots para a plataforma Messenger do Facebook utilizando a linguagem Python e o framework Django. A idéia é a criação de um chatbot que seja uma espécie de recomendador musical, através da API do spotify o mesmo realizará recomendações de músicas, artistas e os mais variados gêneros músicais.
Usaremos: Python 3.6, Django, pipenv, requests e pytest para os testes.
1. Entendendo o Framework Django;
2. Preparando a infraestrutura do projeto;
3. Criando as primeiras interações do chabot;
4. Integrando com a API do spotify;
5. Deploy e considerações finais.
Duração: 4 horas.
Idioma: Português.
Infraestrutura: Levarei meu próprio laptop para ser ligado a uma entrada VGA para apresentar.
Os alunos devem usar computadores preferencialmente com Linux/Mac e Python 3.6
Conexão com internet necessária para instalar as dependencias.
Desenvolvimento de um Web Crawler com Python 3
Um crawler é um sistema que capaz de navegar em websites de forma sistêmica sendo capaz de recuperar e inserir informações em páginas da internet segundo a necessidade do usuário.
No tutorial será apresentado como criar um crawler que seja capaz de buscar informações em páginas da internet utilizando python 3 com a ferramenta Selenium que é capaz de recuperar as informações do website.
Além do conteúdo de desenvolvimento do crawler uma faixa de tempo do tutorial será destinada a dicas de como fazer a instação das bibliotecas e programas necessários para a execução do script.
Pré-requisitos: Conhecimentos básicos em Python;
Configuração do ambiente: Levarei o meu próprio notebook, sendo necessário apenas um data show com cabo hdmi ou um conversor hdmi para vga;
Duração: 2 horas;
Dockerizando suas aplicações Python
Vamos aprender nesse tutorial as maravilhas do Docker e como você pode aproveitar as vantagens dessa ferramenta para tornar o seu ambiente de desenvolvimento idêntico ao ambiente de produção sem grande esforço.
Estatistica para Devs
O campo de estatistica é imenso e cheio de formulas matematicas gigantes que quando traduzidas pra codigo ficam muito mais claras para nós devs.
O que veremos:
- Analise de dados
- Comparação de distribuições
- Percentis, formulas e afins
- Visualização de Dados
Introdução ao GIT (Escolinha do prof. Samuka)
Não sabe nada de Git ?
Tá começando agora ?
Simbora aprender ?
Nível: Iniciante
Nesse tutorial, nós vamos:-
- Aprender o básico sobre o GIT;
- Entender a diferença entre Git e Github;
- Se familiarizar com os comandos;
- Hospedar um site estático no Github Pages;
Duração: 4 horas
Configurações de ambiente: Possuir computador com Windows, Linux ou Mac e Git instalado, para executar as tarefas.
Pré-requisitos: Projetor para apresentação e internet para os participantes executarem os exemplos.
Introdução aos Módulos de Análise de Dados
Autoras: Leticia Portella e Jessica Temporal
Numpy, Pandas, Matplotlib... os módulos de análise de dados são inúmeros! E suas potencialidades também! Vamos mostrar como ler planilhas, separar dados, criar gráficos e fazer uma série de análises usando um pouquinho de cada método. O objetivo deste tutorial é ter uma ideia de por onde começar a analisar dados!
- Duração: 4h
- Configurações de ambiente: Python3, Pandas, Numpy, Scipy, Matplotlib, Jupyter Notebook (ou Anaconda que cobre todos os anteriores)
- Pré-requisitos: conhecimento mínimo da linguagem (loops, condicionais, variáveis, etc)
- Idioma: Português
Tópicos:
* Noções básicas do Jupyter Notebook
* Ler e trabalhar com planilhas csv
* Separação de dados
* Análises estatísticas básicas (média, moda, mediana, desvio padrão...)
* Trabalhando com dados inexistentes (substituição de dados, NaN, interpolação linear)
* Desenvolvimento de gráficos (histograma, análise no tempo, gráficos com dois eixos...)
Introdução à Raspagem de Dados
A internet possui muitos dados. A primeira forma de acessá-los automaticamente é através de uma API. Vocês irão aprender como acessar dados do INEP, sobre Educação ou calcular os gastos da Copa do Mundo. Acessar dados dos filmes do Star Wars e características de Pokemóns. E quando não há API? Podemos automatizar o acesso através da raspagem de dados. Se um jornalista precisa acessar todas as 380 súmulas do Campeonato Brasileiro de futebol ou fazer uma matéria com todos os 950 discursos da Dilma, raspagem de dados é a solução. Este tutorial foi dado no Curso Abril de Jornalismo e na Folha de São Paulo, e será dado na Unicamp, no LabJor, dia 16/08. Veja a matéria sobre os discursos da Dilma, feita por um ex-aluno do Python para Zumbis. Aqui estão todos os meus contatos.
Jupyter Notebook + Reveal Js + Github Pages: uma forma simples, dinâmica e elegante de fazer suas apresentações em Python [Iniciante]
Para essa proposta de tutorial, gostaria de apresentar o Jupyter Notebook: uma ferramenta que possui os mais variados usos, tornando assim as apresentações de palestras, eventos mais interativas e dinâmicas. Além disso, mostrar a integração dessa ferramenta com o Github Pages para um fácil deploy e compartilhamento das apresentações.
Conteúdo Programático:
* Conceitos e Definições Básicos do Jupyter Notebook : iniciar o jupyter notebook,atalhos, criar, deletar, alterar célular, alterar modo das células, uso de markdown, code, rawNBConvert, heading.
* Conversão utilizando o Nbconvert: html, pdf, laTEX.
* Modo interativo utilizando o RISE localmente.
* Deploy no Github: criação do repositório, estruturação do projeto, conversão do arquivo .ipynb da apresentação para .html e deploy para o Github.
* Dicas e referências para estudos futuros.
Duração: 4hrs
Nível : Iniciante - Intermediário
Configurações de ambiente :
* VirtualEnv, Jupyter Notebook e RISE e Python3+ instalados nas máquinas dos participantes.
* Usarei máquina própria para apresentação.
Linux para quem vem do Windows
Nível: iniciante ou total desconhecimento em Linux.
Duração: 6 horas.
Pré-requisitos para participar desse tutorial: usar Windows e querer aprender.
O que você deve trazer para participar do tutorial:
- Um notebook com Windows com pelo menos 4GB de memória RAM, espaço de 50 GB no HD e uma saída USB;
- Virtualbox (http://www.virtualbox.org) já instalado no seu Windows.
Infra-estrutura necessária:
- Conexão à internet para download de pacotes e interação com o Github;
- Preciso de um projetor com entrada DVI para ligar o notebook (macbook pro) nele.
É comum ouvirmos programadores Python dizerem que Linux ou MacOS é melhor do que Windows. Mas por quê eles dizem isso?
Praticamente todos os palestrantes usam computadores MacOS ou Linux nas apresentações. Praticamente todos os exemplos de código que vemos em blogs e projetos no github partem do pressuposto que o leitor/colaborador usa Linux ou MacOS. Por quê isso acontece?
O objetivo desse tutorial de 6 horas é ajudar a responder essas perguntas, dando ao programador que usa Windows uma visão bem prática e descomplicada do que é possível fazer com Linux no dia-a-dia.
Linux é o sucessor do Unix, um sistema operacional feito para programadores. Por isso vou mostrar ferramentas e técnicas de trabalho otimizadas para programadores. Algumas delas simplesmente são impossíveis de fazer no Windows.
Vamos abordar assuntos diversos, em módulos, como segue abaixo.
Parte 1: Linux puro
- Começando do zero absoluto com uma máquina virtual;
- Como perder o medo do Linux (navegar na internet, instalar um programa, editar um texto);
- Perder o medo da linha de comando (instalar programas, ver o conteúdo de arquivos, etc.);
- Ganhe tempo e poderes com a linha de comando (procurar arquivos, procurar conteúdo nos arquivos, procurar e substituir textos sem abrir um editor, encontrar diferenças nos arquivos, ver duplicados, classificar um arquivo, etc.);
- Os arquivos de configuração (os dotfiles: para que servem, uso recomendado, etc.);
- Permissões de arquivos (segurança, isolamento, etc.);
- pipes (entrada e saída padrão, composição de comandos, tratamento de texto, etc.);
- Automatizando com shell script bem simples.
Parte 2: O editor vim é simples, acredite
- Um editor modal;
- Edição simples com vim;
- O poder das macros;
- Plugins muito úteis.
Parte 3: git na linha de comandos
- Criar e clonar um repositório;
- Fazer commits;
- Consertar commits;
- Push e pull;
- Branches e merges;
- Tags.
Parte 4: Usando Python no Linux
- Várias versões de Python sob total controle com pyenv;
- Ambientes Python isolados com virtualenv;
- Abandonar o shell do Python e usar Jupyter Notebook com seus projetos Django.
Parte 5: Como colaborar com um projeto open source
- Fazer o sistema de associados da Associação Python Brasil funcionar em um ambiente Linux usando Virtualbox e Vagrant.
Machine Learning com Support Vector Machine (SVM)
Tutorial de Machine Learning com duração de 4 horas.
Conteúdos abordados:
- Processamento de Dados
- Aprendizagem Supervisionada e Não-Supervisionada
- Classificação de Padrões
Materiais utilizados:
- Opencv, Scikit-Learn, Scipy, Numpy e Matplotlib
Mineração de processos: usando dados não estruturados com apoio do Pyhton
Atualmente, para manter a competitividade, as empresas precisam manter a qualidade, diminuir erros e tempo nas tarefas. Logo, é importante gerenciar as atividades e tarefas executadas nas organizações. Diante do montante de informações não estruturadas, fica complexo estruturar os dados, seja para descobrir um processo ou validar se o processo está sendo seguido.
Para minerar eventos de dados não estruturados, vamos usar o apoio da bilbioteca do python scikits.learn, para minerar log de eventos não estruturados de grupos de whatsapp e descobrir o processo nele existente. Usando a ferramente free de modelagem de processos PROM.
Nivel : Iniciante
O que iremos abordar?
- Breve definição sobre o uso da bilbioteca do python scikits.learn na área de mineração de texto.
- Abordaremos as etapas necessáarias para estruturar um texto não estruturado.
-Discutiremos se outras ferramentas de apoio são necessárias?
-Definição de processos
-Ferramentas de modelagem de processos
-Definição de mineração de processos
-Ferramentas e algoritmos disponíveis
-Descoberta, checagem de conformidade e melhoramento.
- Discutir caso real de um processo de atendimento (Mostrar modelo descoberto na mineração x molode mapeado)
- Conclusão
Odoo - Open Source ERP - Como instalar e desenvolver aplicações empresariais
O que é o Odoo ? É um framework de código aberto utilizado para se desenvolver aplicações empresariais
Baseado em PostgreSQL e distribuído em LGPL v3, o Odoo é escrito em Python, Javascript e XML.
Características:
MVC & arquitetura modular;
Multiplos motores de relatório;
Engine Workflow;
ORM;
Webservices: XML-RPC, JSON-RPC.
Modelos extensíveis, visões e relatórios;
Diversas formas de se visualizar os dados:
- Calendário;
- Kanban;
- Gráficos;
- Cubo;
- Mapas;
Tópicos:
- Desenvolvendo seu primeiro modulo;
Pré requisitos:
- linux debian based ou virtual box;
- python 2.7;
Duração:
- 4 horas;
Programação funcional com Haskell, uma linguagem puramente funcional
Se você acredita nessa história de que Python é uma linguagem funcional, você não sabe de nada inocente. :)
Nos últimos tempos várias linguagens estão adotando características funcionais como Java, Swift e JavaScript e para aprender sobre programação funcional fui atrás de uma linguagem que tem várias semelhanças com Python chamada Haskell.
Haskell é uma linguagem puramente funcional que te desafia a pensar de uma maneira diferente da maioria das linguagens que você já utilizou.
Que saber sobre os principais conceitos de programação funcional?
Conhecer uma linguagem puramente funcional?
Saber de onde surgiram as list comprehensions de Python?
Deixe seu voto aqui e compartilhe para que outras pessoas façam o mesmo. Te vejo na Python Brasil em BH! o/
Python para iniciantes (Escolinha do prof. Samuka)
Sabe nada de desenvolvimento ?
Tá chegando agora ?
Tá afim de aprender um tiquim desse "trem bão" chamado Python ?
Nesse tutorial vou explicar tintim por tintim do básicão em uma aula animada. E vou dar um exemplo de como pentelhar seus amigos no Facebook com inúmeras mensagens com Python!
- Duração: 4 horas
- Configurações de ambiente: Possuir computador com Windows, Linux ou Mac e Python 3.6 instalado, para executar as tarefas.
- Pré-requisitos: Projetor para apresentação e internet para os participantes executarem os exemplos.
[Python Web] Desenvolva sua Rest API complexa em apenas 1 dia.
Neste tutorial, pretendo mostrar de forma rápida e simples, como construir APIs que manipulam até 40 tabelas de um banco de dados, em apenas 1 dia. Utilizando o Python como linguagem de programação e os frameworks Flask, e Flask-Restless.
Test Driven Design
Testes: os primeiros passos
Você tem aquela frustração de ouvir falar tanto em testes e não saber por onde começar?
Pois é disso que se trata!
Começar a programa com Testes e do ZERO, com vários exercícios práticos, sem complicações!
Público: Iniciante
Duração: 3 horas
Where's the Server?
Serverless. A nova hype cool buzzword arquitetura que está mudando a maneira de desenvolver e deployar código em um mundo onde o gerenciamento de servidores é última – ou nenhuma – preocupação. Aqui, estaremos explorando esse novo mundo efêmero e orientado totalmente à eventos, onde todo o ciclo de vida de um servidor acontece num piscar de olhos.
Neste tutorial iremos entender como uma aplicação Python se encaixa nesse contexto, desde sua concepção até estar pronta para produção!
Duração de horas: cerca de 4 horinhas.
Configuração de ambiente: Python 3.6, PostgreSQL e uma conta na Amazon AWS. Todo o conteúdo inicial será disponibilizado em um repositório no GitHub.
Pré-requisitos: Conhecimentos básicos de Python. Um pouquinho de Django ajuda também :D
Juntos responderemos a pergunta que não quer se calar. Where's the server?