Caipyra 2017
O Caipyra, único evento de Python com quentão e paçoquinha, é um encontro organizado pela comunidade Python do interior de São Paulo, para pessoas interessadas em conhecer e se aprofundar nesta linguagem. Venham compartilhar suas experiências junto à nossa comunidade. O evento acontecerá em Ribeirão Preto, nos dias 24 e 25 de junho.
As palestras devem ter o tempo máximo de 40 minutos e podem abordar qualquer área dentro do universo Python (web, computação científica, desktop, educacional, ou até palestras não técnicas, contando cases ou relatos relacionados a linguagem) e principalmente, as palestras devem ser de todos os níveis, desde iniciante até avançado.
O encontro visa difundir tal plataforma entre universidades, empresas e instituições da sociedade civil, ao mesmo tempo focando em assuntos relacionados a Software Livre, estimulando assim a disseminação da cultura agregada ao tema e na divulgação e estímulo de desenvolvimento no interior do Brasil, começando por Ribeirão Preto, SP.
Propostas
A Arte da Linha de Comando com Python e Click
Apesar de criarmos interfaces gráficas bonitas com o Django e aplicativos incríveis com o Kivy, nós programadores sabemos que a maneira mais rápida de interagir com o sistema ainda é pelo teclado. Nessa palestra, vamos aprender a criar interfaces de linha de comando (CLI) organizadas e sem switch-case usando o Click.
Abandone o WYSIWYG com LaTeX e Python
Computadores != máquinas de escrever. Então, por que ainda estamos escrevendo textos manualmente? Neste Caipyra 2017, vamos deixar o passado no passado com uma boa dose de LaTeX e PythonTeX. Após uma breve introdução ao LaTeX, veremos como executar código Python dentro de um documento e usar o seu output no PDF final. As possibilidades são (virtualmente) infinitas: desde gerar tabelas e fórmulas automaticamente, até plotar gráficos e interagir com APIs.
A gente só procura o remédio quando está doente.
A ideia central dessa palestra é ser um compilado de algumas dicas práticas de gerência de tempo, organização antes que você surte.
Aplicações serverless
Serverless é um conceito de arquitetura onde sua aplicação é executada em um ambiente onde o servidor não é controlado por você, deixando os custos mais baixos, pois é cobrado por tempo de execução e não "tempo ligado" como acontace quando tem uma instancia de servidor.
Exemplo: Tem uma aplicação que é executada poucas vezes durante o dia. O valor de servidor para rodar esta aplicação fica caro pelo pouco processo que ela gasta. Podemos colocar essa aplicação para rodar na AWS Lambda.
Nessa talk falarei sobre alguns frameworks auxiliadores para fazermos deploys de aplicações na AWS Lambda e API Gateway.
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.
Palestra da Python Brasil 2016
Arquitetura de BigData na globo.com
Vamos ver como a globo.com processa 3 bilhões de eventos/dia, como extraimos informações valiosas e como pessoas não tecnicas acessam e manipulam esses dados.
Backend tentando fazer o trabalho de Frontend
Sou backend com pelo menos 3 anos de experiência em Python e Django. Agora, por conta da necessidade, estou tentando migrar para o mundo do Frontend. Vou contar como está sendo essa experiência.
Bancos de Dados Modernos: nossa graduação está ultrapassada?
Bancos NoSQL, Colunares, Schema-free... o que são essas aberrações e por que problemas modernos estão fazendo muita gente quebrar a cabeça e voltar a estudar. MongoDB, Redis, Amazon Redshift, Google Bigquery, Apache Kafka/Flink/Beam e como isso tudo junto se transforma em um megazord. Uma nova visão sobre bancos de dados está surgindo - patrocinada por gigantes como Google, Netflix, Twitter e Spotify - fazendo Kimball parecer ultrapassado, e deixando seu código cada vez mais valioso. E o mais legal: como Python está finalmente deixando linguagens tradicionais para trás usando recursos modernos para minerar bancos de mais de 8000 TBs com poucas linhas de código. O que você precisa saber para não ficar para trás?
Calculando recomendações usando Hadoop e mrjob
Nesta palestra vamos calcular recomendações simples (como a tradicional recomendação "Quem viu, também viu") criando execuções de map-reduce no Hadoop através da biblioteca mrjob.
Para isso irei falar sobre:
- O que é Hadoop e como funciona um job Map reduce?
- Calculando recomendações usando apenas "python puro"
- O que é MrJob
- Usando MrJob para calcular:
* Popularidade de produtos
* Quem viu, também viu
* Quem viu, também comprou
Coma seus vegetais
A ideia é fazer um bate papo sobre testes e explorar as ferramentas de BDD com Python.
- Entender o que é BDD e por que isso é diferente de TDD
- Vamos fazer alguns testes em live code mesmo
- Gerando documentação viva das funcionalidade em linguagem natural com gherkin
- Fazer testes funcionais e explorar seu sistema testando requisitos
Vamos usar básicamente o behave e tentar enteder seus outputs e seus hooks e como isso pode ajudar em um desenvolvimento mais testável e tentar entender um pouco mais a cultura de testes relacionados a comportamento.
Creative Programming
Creative Coding é um movimento artistico que mistura, matemática, física, programação em forma de belas experiências digitais que podem ser simples gráficos generativos ou até modernas instalações digitais que misturam hardwares como Ardunino, Kinect e outros vários tipos de sensores para, criar belas visualizações e sensações ao expectador.
Criando aplicações SaaS Multi Tenant com Django e PostgreSQL, economizando assim dinheiro e recursos computacionais
Nesta palestra veremos como criar uma aplicação para atender muitos clientes (tenants) com apenas uma aplicação rodando, utilizando a abordagem de dados semi compartilhados com PostgreSQL e schemas.
Falaremos um pouco também como escalar horizontalmente essa aplicação SaaS utilizando AWS Amazon.
Criando Bots para Slack em poucos minutos
Slack é hoje um dos clientes de chat mais utilizados no mundo hoje para times de desenvolvimento. Nessa palestra iremos demonstrar como é rápido e fácil criar um bot personalizado, usando python, para um time do Slack em poucos minutos.
Durante a palestra iremos implementar alguns comandos para o bot, como verificação do tempo, leitura de notícias, etc.
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!
Nesta palestra pretendo mostrar como 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.
Django Unchanneled
Channels mudam a forma como utilizamos Django: ao invés de somente receber e responder requisições – uma atrás da outra – agora temos acesso a WebSocket, long-poll HTTP e outras maravilhas da assincronia. Orientação a evento FTW.
Nessa talk vamos ver os conceitos requisições assíncronas, WebSockets e como implementá-las com Django Channels!
The D is silent.
Docker Pipeline - Orquestrando sua entrega continua com docker"
Aprenda a Montar uma PIpeline de Entrega Contínua com Custo Zero.
Nesta palestra faço um overview das ferramentas, e apresento um demo para entrega continua de aplicações Python, utilizando Docker, CircleCI, Git, Rancher Labs e qualquer proverdor de Cloud, ou até mesmo Bare Metal, criação automática de ambientes com service discovery, desde a escolha de branch até a criação automática de DNS para sua aplicação.
Vamos montar uma Pipeline de entrega contínua de forma rápida e fácil.
Em terra de Serverless quem usa Zappa é rei!
Serverless é um estilo de arquitetura onde não temos servidores*, lidando apenas com serviçoes de terceiros. Isso significa poder escalar infinitamente, com menos downtime e menor manutenção. Claro que essa não é a resposta para todos os nossos problemas, mas dependendo do caso, pode ser uma boa escolha.
Aliado a este conceito, temos o Zappa, uma ferramenta que torna extremamente fácil o deploy de aplicações Python WSGI no AWS Lambda.
Nessa talk vamos discutir sobre o conceito e aplicar a ferramenta, criando e deployando uma aplicação web Python com Zappa!
* Brinks: Serverless ainda é feito de servidores ;)
Git: Gerenciando versões em projeto open-source
A algum tempo estudo sobre como gerenciar versões em projetos distribuidos, e como isso acontece no mundo open-source, acabei encontrando um modelo de ramificação (branch) e um processo bem interessante.
Nessa palestra, vou aprensentar como esse modelo impacta na redução de bugs em sua versão estável, versionamento (CHANGELOG) e como trabalhar distribuido em projetos Git (open-source).
Nível: Iniciante ~ Intermediário
Requisitos: Minímo sobre Git
Palavras-chave: git, github, versionamento, open-source, issues, hotfix, release
Kivy: Python no celular e em vários outros lugares!
Kivy é um framework multiplataforma que permite fazer aplicações em Python com interfaces inovadoras para Linux, Windows, OS X, Android e iOS. E é um dos projetos em Python mais legais que tem, só que ainda é muito pouco utilizado. O objetivo dessa palestra é apresentar o Kivy, mostrar o que é possível fazer com ele e indicar o caminho pros primeiros passos.
Algumas perguntas que serão respondidas:
- Funciona mesmo no celular? A performance é decente? Não fica feio?
- Consigo acessar os recursos do celular?
- Tem algum projeto em produção pra gente ver? O povo usa mesmo?
- Exemplos! Cadê exemplos de projetos livres usando Kivy pra eu aprender?
Algumas observações que não perguntam, e por isso mesmo que vou falar:
- Kivy *NÃO* e só pra celular! (vc não precisa usar gtk ou qt pra botar uma interface visual no seu programa que roda no computador)
- A Kv Lang (linguagem de marcação do Kivy, usada para criar as interfaces) é muito boa
- Dá pra fazer jogo! \o/
KONG: Proxy Gateway com esteróides para aplicações orientadas a micro-serviços
Na atualidade um assunto que vem quebrando paradigmas (e algumas amizades haha) é a adoção de micro-services por grandes companhias. Indiferente da maneira como são aplicadas, essas arquiteturas passam por problemas frequentes: Monitoramento, Autenticação, Log e até mesmo segurança e controle de tráfico.
Modelos de concorrência e paralelismo com Python
A idéia é explicar brevemente o que é concorrência / paralelismo e depois entrar em detalhes sobre os principais modelos disponiveis no Python (não só com explicações teoricas, mas com demosntrações praticas).
Em outras palavras, nesse talk veremos as diferenças entre Threads, Processos e programação Async.
Plaintext Everything
Um relato detalhado sobre como usar arquivos de texto e Python para administrar vários dados e informações pessoais de maneira minimalista e eficiente. Um enasio de como aplicar os mesmos conceitos para administrar projetos de software de maneira similar ao ZenHub, mas usando arquivos de texto no próprio repositório.
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 no único evento de Python com quentão e paçoquinha! :)
Progressive web apps com service workers
Progressive Web Apps são experiências que combinam o melhor da Web e o melhor dos aplicativos. Eles são úteis para os usuários desde a primeira visita em uma guia de navegador sem exigir instalações. Progressive Web Apps precisam ser rápidos e instaláveis, o que significa que eles devem funcionar on-line, off-line ou em condições intermitentes e lentas. Para conseguir isso, precisamos armazenar em cache nosso shell de aplicativo usando service worker para que ele seja sempre disponibilizado de forma rápida e confiável.
PyLadies & Django Girls: do medo ao incentivo
Nessa palestra vou contar um pouquinho da minha trajetória no mundo da programação, na comunidade Python e como isso me incentivou a ajudar outras pessoas e a crescer profissionalmente.
Python + Raspberry PI para Aplicações IoT (Internet of Things)
IoT (Internet of Things), como o próprio nome diz, vem com a proposta de conectar coisas, desde a lâmpada do seu quarto até a velocidade do seu carro. Imagine controlar todos os seus dispositivos eletrônicos utilizados no dia a dia, com apenas um aplicativo instalado no seu celular ou computador. Que tal a máquina de café ligar automaticamente 15 minutos antes do seu despertador ou ao receber um Tweet ? Seria incrível, ou melhor, já é.
Nesta conversa poderemos discutir e entender um pouco mais sobre:
- O que Python tem a ver com isso ?
- Integrando sensores e APIs a dispositivos de saída (Monitores, Leds, Motores, Sons)
- Protocolos de Comunicação
- Como iniciar ? (Documentação, Projetos, Ferramentas.)
ReactiveX c/ RxSwift (Sim, Swift)
Uma breve introdução sobre ReactiveX com RxSwift e sobre como o conceito de Reactive programing pode otimizar sua produtividade e melhorar a qualidade do seu código.
restless: a simple library for the REST of us
Criar aplicações RESTful não precisa de bibliotecas grandes e cheias de camadas de abstração.
Esta palestra apresentará o Restless: uma solução leve, compatível com diversos frameworks (Django, Flask, Pyramid e Tornado) e facilmente extensível para criar serviços REST de uma forma Pythonica.
Nas palavras de seu criador: "all I really ever personally want are the RESTful verbs, JSON serialization & the ability of override behavior". Você tem a liberdade para fazer cada recurso se autenticar e se comportar da forma que sua aplicação precisa, enquanto o Restless garante que suas respostas, sejam elas sucessos ou erros, serão retornadas conforme manda o figurino.
Se você precisar de algo diferente, é fácil plugar uma solução alternativa para autenticação, serialização ou mesmo um framework novo!
Rode sua aplicação de maneira simples em qualquer lugar utilizando Docker
A ideia dessa palestra é mostrar como rodar a sua aplicação Python em um Docker do desenvolvimento até produção.
Vai ter live code! :)
SOFTWARE LIVRE PARA USO EM AMBIENTE ACADÊMICO: ANÁLISE COMPORTAMENTAL DE FILTROS ANALÓGICOS E DIGITAIS.
SOFTWARE LIVRE PARA USO EM AMBIENTE ACADÊMICO: ANÁLISE COMPORTAMENTAL DE FILTROS ANALÓGICOS E DIGITAIS.
O filterSky é um software acadêmico que visa proporcionar experiências cognitivas à alunos do nível superior que possuem disciplinas que envolvem a teoria de controle de processos. O software está sendo desenvolvido em PyQT como projeto de iniciação científica pela faculdade de ciência e tecnologia Área1.
Mais Informações: https://github.com/matheusns/FilterSky
Soluções comuns para problemas parecidos.
O objetivo dessa palestra é mostrar algumas receitas simples para a solução de problemas comuns que um programador enfrenta durante o dia a dia no trabalho, a proposta é explorar esses problemas e propor soluções baseadas na experiencia de outros programadores que passaram pelo mesmo problema. (Inspirado no livro Python Cookbook).
Uma introdução à Gradient Boosting Machines
A aplicação de modelos de aprendizado de máquina tem-se mostrado uma forma efetiva para obtenção de insights tanto para negócios quanto em pesquisas científicas. Está apresentação tem como motivação a apresentação dos fundamentos teóricos de um algoritmo amplamente utilizado pela comunidade (kaggle), o xgboost (Extreme gradient boosting machines).