yanYan Orestes

Desenvolvedor Python apaixonado por educação e segurança.
Explicit is better than implicit.
Twitter: @yanorestes
Email: yan.orestes@alura.com.br

Todos os artigos por yan

 

Quais as diferenças entre o TCP e o UDP?

Recentemente, eu estive trabalhando em uma aplicação de bate-papo online, para treinar minhas habilidades de programação. Para testá-la, enviei o programa para um amigo para tentarmos conversar através dele. Quando começamos a conversar, logo notei que havia algo de muito estranho – as mensagens do meu amigo não faziam muito sentido. Não só isso, mas
Continuar lendo…  

Como escolher uma licença para seu projeto

Há algum tempo, desenvolvi um projeto em Python de gerador de dados aleatórios de um cidadão brasileiro, chamado cidadaobr. O intuito do projeto era que outros desenvolvedores pudessem usar para testes de aplicações, como em simulações de cadastros de clientes de algum serviço, por exemplo. Para compartilhar com a comunidade, coloquei o código em um
Continuar lendo…  

Conhecendo o GNU Screen

Recentemente, estive trabalhando em uma aplicação de agenda de contatos usando o Django, da qual já fiz o deploy em um servidor remoto que eu aluguei. Aparentemente, tudo estava certo, o site funcionava bem. Assim, fechei minha conexão SSH com o servidor, recarreguei a página aberta no meu navegador local e olha o que apareceu:
Continuar lendo…  

Criando um executável a partir de um programa Python

Recentemente, andei trabalhando em um simples projeto em Python para cálculo de IMC. Meu código simplesmente pega o input de altura e peso do usuário e imprime o IMC com a fórmula Peso / Altura²: peso = float(input(‘Digite seu peso (kg): ‘)) altura = float(input(‘Digite sua altura (m): ‘)) imc = peso / (altura *
Continuar lendo…  

Trabalhando com precisão em números decimais no Python

Estou trabalhando em uma aplicação em Python para controle de gastos e ganhos da empresa onde trabalho. A princípio, é simples, só guardo os valores em variáveis para depois passá-los para um banco de dados próprio. No mês de julho, tivemos 5 vendas de R$ 99.91 e compramos 3 equipamentos de R$ 110.10: ganhos_julho =
Continuar lendo…  

Fazendo o deploy de uma aplicação Django

Recentemente, desenvolvi um simples projeto de agenda de contatos utilizando o framework Django, e resolvi compartilhar pela Internet. É uma aplicação web, então o ideal seria que fosse possível acessá-la como acessamos qualquer outro site, digitando seu endereço em um navegador qualquer, em um computador qualquer. Assim, me preparei – aluguei um VPS com Linux
Continuar lendo…  

Entendendo (e evitando) o phishing

Recentemente, recebi um email estranho, supostamente da equipe de suporte do Paypal. Como sempre, abri o email no celular. O email dizia que o endereço de entrega principal da minha conta havia sido alterado para um na África do Sul! Obviamente, fiquei espantado. Minha primeira reação foi a mais intuitiva – achei que minha conta
Continuar lendo…  

Lidando com erros e exceções no Python

Aqui na empresa, temos um programa em cada computador que registra, em um arquivo, as datas e os horários em que o computador foi ligado. Recentemente, alteramos todo o registro de datas no padrão brasileiro (DD/MM/AAAA HH:mm) para o padrão ANSI (AAAA-MM-DD HH:mm:SS). Essa conversão de padrão foi feita utilizando geradores no Python. Entretanto, começamos
Continuar lendo…  

Como publicar seu código Python no PyPI

Recentemente, estive trabalhando em um projeto de conversor de temperatura, de Celsius para Fahrenheit, para desenvolvimento de alguns programas com viés científico. Lembrei da fórmula de conversão que me ensinaram na época de escola, na qual, sendo F a temperatura em Fahrenheit e C a temperatura em Celsius, tínhamos F = 1,8C + 32 e
Continuar lendo…  

Trabalhando com o dicionário no Python

Estou programando um sistema de agenda de contatos telefônicos em Python. Para isso, preciso armazenar os números dos contatos. A princípio, podemos pensar em usar uma lista: telefones = [‘1234-5678’, ‘9999-9999’, ‘8765-4321’, ‘8877-7788’] Tudo bem, temos os números de telefone armazenados. Mas… qual o sentido de termos uma lista de números soltos? De quem é
Continuar lendo…  

O que significa if __name__ == ‘__main__’ no Python?

Achei um programa em Python na internet com várias funções relacionadas a dados e taxas de moedas, que podem me ajudar no meu projeto pessoal de criar um conversor de moedas. Baixei, então, o arquivo info_moedas.py, para utilizá-lo em meu projeto, especialmente uma função que pega a taxa atual de conversão entre duas moedas (get_taxa_conversao()).
Continuar lendo…  

Conhecendo as tuplas no Python

Estou trabalhando em uma aplicação de mapeamento que se baseia em coordenadas geográficas para localizar endereços. Mas como posso armazenar estas coordenadas? Uma ideia é termos uma variável para latitude e uma para longitude, mais ou menos dessa forma: latitude = -23.588254 longitude = -46.632477 Por enquanto tudo bem. Mas quero trabalhar com rotas e
Continuar lendo…  

Como fazer uma cópia de uma lista no Python

Eu e meus amigos do clube de livros criamos um sistema em Python para organizar que livros cada um de nós tem. Cada um tem sua própria lista, na qual os livros são divididos por categoria (no meu caso, SQL, PHP e Front-end). Cada categoria também é uma lista: livros_yan = [[‘Banco MySQL’], [‘Certificação PHP’,
Continuar lendo…  

Qual a diferença entre == e is no Python?

Fiz um programa em Python para ser iniciado sempre que meu computador liga. O programa pega o nome de usuário de quem está usando e retorna uma mensagem de boas vindas. Caso o usuário seja eu mesmo, que sou o administrador do computador, quero que a mensagem seja diferente. Decidi implementar utilizando um operador que
Continuar lendo…  

Conhecendo as assignment expressions – PEP 572 aceita!

Estou trabalhando em um programa Python para conversão de valores monetários de Real para Dólar que usa uma API externa que encontrei na Internet. Através de requisições GET com os parâmetros de valor, a API nos devolve o valor convertido. Se integrando ao Python, temos uma função converte_real_para_dolar() que toma como parâmetro o valor em
Continuar lendo…  

Como criar uma boa senha

Esses dias, decidi criar uma conta em uma rede social que meus amigos gostam. Entretanto, logo quando digitei a senha que eu queria, uma mensagem de erro apareceu na tela falando que minha senha era muito fraca. Pelo visto senha não ia funcionar, mesmo. Lembrei daquelas regrinhas que todos já ouvimos em algum momento, sobre
Continuar lendo…  

Como comparar objetos no Python?

Tenho um sistema em Python que armazena os filmes que eu tenho em uma lista, para organização, com uma função que pega todos os filmes e retorna uma lista com eles: class Filme(): def __init__(self, titulo, diretor): self.titulo = titulo self.diretor = diretor def __str__(self): return self.titulo + ‘ – ‘ + self.diretor def pega_todos_os_filmes():
Continuar lendo…  

O que são iteradores no Python?

Onde eu trabalho, todos os links acessados por qualquer computador da empresa são armazenados em um mesmo arquivo de registro na rede, o acessos.log, para maior controle do que os funcionários andam acessando durante o horário de trabalho. O log está organizado desta forma: https://alura.com.br http://instagram.com https://blog.alura.com.br http://google.com https://gmail.com … Uma vez por semana, checamos
Continuar lendo…  

Operações básicas com listas no Python

Uma professora de matemática elaborou uma técnica de avaliação diferente, em uma tentativa de aumentar a interação entre os alunos – para a próxima prova, a nota de todos seria a mesma, equivalente à média de todas as notas. Todo esse processo seria feito por um sistema automático em Python. As notas dos alunos da
Continuar lendo…  

Formatação de moeda e internacionalização com Python

Sou programador de uma loja online brasileira e, recentemente, decidimos implementar a venda de produtos para Portugal, com o intuito de aumentar nossa clientela. Para isso, precisamos converter os preços de Real para Euro. Temos uma função já implementada para realizar a conversão, que toma como parâmetro o valor em Real como float e retorna
Continuar lendo…  

A diferença das funções input() e raw_input() no Python

Tenho um sistema escrito em Python, para o terminal, que precisa das credenciais de login do usuário para funcionar: usuario = input(‘Insira seu login: ‘) print(‘Olá, ‘ + usuario) Quando rodo no meu computador, digito meu login e recebo em resposta: Insira seu login: yanorestes Olá, yanorestes Exatamente o que eu tinha digitado, capturado pela
Continuar lendo…  

Lidando com datas e horários no Python

Uma empresa me contratou para implementar o sistema de pontos deles, controlando quando um funcionário chega e sai. O sistema deve exibir a data e a hora a cada registro, como confirmação para o funcionário. Usando o tipo date Conhecemos o módulo datetime da biblioteca nativa do Python, então até sabemos pegar a data atual
Continuar lendo…