Skip to content

Silveira Neto Posts

SHA1 em Python

Calcular o SHA1 de uma string em Python é feito quase da mesma forma do calculo do md5 que eu já mostrei aqui antes.

A partir da versão do Python 2.5 a maneira correta de se fazer é assim:

import hashlib
print hashlib.sha1('Silveira').hexdigest()

Isso vai imprimir isto:

25e58a0147633e39c2a2fcceff9a13a181e672b9

Para fazer o calculo do MD5, também se usa a hashlib:

import hashlib
print hashlib.md5('Silveira').hexdigest()

Que vai nos dar o md5 da string ‘Silveira’:

43eb9e4547c642db6cd19713b5c1dff2

O módulo hashlib possui os contrutores md5(), sha1(), sha224(), sha256(), sha384(), e sha512(). Dependendo da implementação da OpenSSL que você tem instalada você poderá ganhar alguns outros construtores.

Maiores informações: documentação da hashlib

Usando o Google como Proxy

Eu estava procurando por “Ubuntu nis” no Google e recebo esse resultado:

Busca no Google por Ubuntu e NIS
Busca no Google por Ubuntu e NIS

Essa primeira ocorrência que apareceu no Google é um exemplo bem interessante. É um site que se propõe a tirar dúvidas de usuários através de consultores especializados. Porém se você visitar o site você não conseguira visualizar conteúdo algum, é necessário um registro para poder acessar o site por um período de teste, depois é necessário pagar. O que houve aí foi uma técnica de SEO, na verdade uma fraude. Esse site identifica quando o visitante é um robô do Google indexando páginas, nesse caso ele abre suas portas e mostra que belo site ele é, cheio de informações. Porém quando um usuário comum como eu e você, que foi levado ao site através do Google, vai fazer uma visita, ele mostra suas reais intenções.

Como utilizar o cache do google

Para esse site em específico a uma maneira fácil e prática de engana-lo. Basta usar o botão “Em Cache” que está logo abaixo do link no Google.

Página de cache do google

Isso vai te mostrar uma página exibida ao robô do Google, ou seja, a página boa. De uma certa forma, você está navegando usando um proxy já que você está recebendo uma página que foi requisitada por uma terceira pessoa. Mas isso é tudo muito estático. As coisas ficam realmente interessantes quando você pode fazer isso com um site qualquer, por exemplo um que está bloqueado para você na sua instituição ou no seu pais.

Você pode utilizar o serviço de tradução Google para repetir o processo (certamente qualquer outro tradutor funcionará). Quando eu peço para o Google traduzir de português para inglês site silveiraneto.net ele vai criar esta url:

http://www.google.com/translate?u=http%3A%2F%2Fwww.silveiraneto.net&langpair=pt%7Cen&hl=en&ie=UTF8

Quando você acessa essa url você já está utilizando um proxy, mas o conteúdo está sendo alterado. Para acessar o site e deixa-lo em português basta mexer um pouco na url, pedindo para ele traduzir de português para português:

http://www.google.com/translate?u=http%3A%2F%2Fwww.silveiraneto.net&langpair=pt%7Cen&hl=pt&ie=UTF8

Pronto, você está acessando o Blog do Silveira através de um proxy. 🙂

Generalizando, para acessar um site coloque assim:

http://www.google.com/translate?u=SITE&langpair=pt%7Cen&hl=pt&ie=UTF8

Função MD5 em Python

MD5, Message-Digest algorithm 5, é um algoritmo de hash de 128 bits, unidirecional. Ele é muito útil como método de verificação de integridade de arquivos, armazenamento de senhas, criptografia ou para hashing em geral. Eu utilizo ele com muita frequência.

Em Python você calcula o hash de uma string em duas linhas:

import md5
print md5.new('silveira').hexdigest()

O md5.new() retorna um objeto que cria md5. Ele é bem flexível e pode ser utilizado várias vezes. O hexdigest é a representação hexadecimal do md5, aquela que pode ser impressa.

Esse código imprime isso:

3df2175295d900d6f0c2f3a521d957cd

Que é o md5 de silveira.

Manipulando HTML com Python

Criar um parse de XML em Python é trivial, especialmente quando se trata de um documento HTML.

Nesse exemplo, criamos uma classe Parser que vai informar quando se abre ou fecha uma tag. Depois que criamos e instanciamos o Parser, alimentamos ele com o método feed com um documento HTML. Esse documento é pego através do urlopen do módulo urllib, que é um stream e portanto usamos o método read para leitura.

from HTMLParser import HTMLParser
from urllib import urlopen

class Parser(HTMLParser):
   def handle_starttag(self, tag, attrs):
      print "abre tag %s" % tag
   def handle_endtag(self, tag):
      print "fecha tag %s" % tag

url = 'http://www.silveiraneto.net'
Parser().feed( urlopen(url).read() )

Esse é um exemplo bem legal se você quiser brincar com mineração ou obtenção de dados.

Economia, Sociedade e Tecnologia

Análise do capítulo “Economia, sociedade e tecnologia: análise dos terrenos movediços” do livro “Tecnologia e inclusão social – A exclusão digital em debate” de Mark Warschauer. Disciplina Novas Tecnologias e Educação à Distância, profª Tânia Maria. Universidade Federal do Ceará.

Eu vou organizar o texto seguindo a mesma ordem do texto original, mas saltando eventualmente alguns tópicos que eu não achei tão interessante.

Esse meu texto fala de exclusão digital, Desigualdade Social, mas fala também da Dell, comunicação e um pouco da minha experiência com blogs.

Refazendo os Fogões

Por Marco Diego e Silveira Neto.

Atividade passada pelo Professor Riverson Rios na disciplina de Interface Homem Máquina. É sobre as interfaces de fogões de 4 e 6 bocas.

Este aqui é um fogão doméstico comum de 4 bocas:

Fogão Doméstico Comum de 4 bocas
Imagem retirada da Wikipédia. Endereço original.

Tanto este fogão quanto o fogão de 6 bocas possuem o mesmos problemas de desenho em sua interface com o usuário.

Bonequinho tentando usar o fogão


Problemas:

  • Posição: A interface está virada para a barriga do usuário e não para seus olhos. Esse ângulo de visão dificulta a observação do conteúdo da interface e faz com que o usuário tenha que se afastar ou se abaixar. Esse é um problema comum também em amplificadores de instrumentos musicais.
  • Confusão: Não há como saber qual válvula ativa qual boca. Não existe nenhuma relação padrão nos fogões. Em alguns fogões há um gráfico que determina esse caminho mas é comum as pessoas se confudirem.

Fogão Proposto

Não queremos alterar muito a estrutura já existente dos fogões. Nosso fogão proposto é esse:

Fogão proposto
Código-fonte: fogao_proposto.svg

As válvulas e as bocas tem as mesmas cores assim fica fácil de perceber e memorizar as posições. A válvula tem uma seta, pois geralmente não se sabe qual lado da válvula é o certo. Há também um desenho indicador que quanto mais para baixo menos quente e quanto mais para cima mais quente.

O painel foi virado em 45º possibilitando que o usuário possa usa-lo sem precisar se abaixar ou se inclinar ao mesmo tempo que pode acessar com as mãos o painel sem encostar nos cabos das panelas.

Refazendo um panfleto

A primeira atividade da disciplina de Interface Homem Máquina com o professor Riverson é melhor este panfleto:

Panfleto

Aqui está o resultado que eu e o Marco Diego fizemos:

Panfleto Modificado
Código-fonte: panfleto.svg

Tiramos bastante texto para deixar o panfleto visivelmente fácil de ler e assim atingir um público maior de leitores. Várias explicações foram substituídas por formatação de texto, como negritos e cores, sem perda as informações contidas.

A palavra aviso em vermelho é para ela ganhar um destaque, para chamar a atenção de todos que passarem pelo folheto, mas sem excessos para não ser confundido com propaganda. Em seguida o destinatário da mensagem, sem muito destaque. Laboratório de Programação recebeu um fundo azul para destacar de qual disciplina estamos tratando e em cada linha seguinte uma palavra chave seguido de uma informação precisa.

Achamos que uma boa maneira de mostrar a distribuição é mostrar uma tabela da distribuição da turma na semana letiva. Todas as células da tabela estão com os cantos arredondados deixando o desenho mais orgânico, o que segundo alguns deixa a imagem mais agradável para as pessoas.

Visita ao Barbra’s buffet

A Mafrense Assessoria em Eventos convidou a mim e outros membro da atual comissão de formatura da computação para uma festa no Barbra’s Buffet (formatura da turma de Fisioterapia da faculdade Christus).

Quando nós escolhemos qual seria buffet para a festa nós avaliamos algumas opções em Fortaleza e acabamos optando pelo Barbra’s Cambeba. Agora eu estou bem mais confiante que essa foi uma escolha acertada.

Esse é um post longo, com as fotos que eu tirei e com os detalhes do buffet que eu quero compartilhar com os demais formandos.

Post-its de graça no seu computador

Atendendo a promoção do efetividade.net, blog que eu visito e comento regularmente, estou participando dessa promoção (quem sabe até ganhando um brinquedinho) escrevendo este post sobre efetividade. Lá vai:

Quem usa post-its acaba sempre virando fã.

Apesar de achar o preço das folhinhas amarelas um pouco caro (eu vi um genérico chinês mas não testei ainda) um belo dia eu comprei um pacote de post-its coloridos para ver se me ajudavam no meu dia-a-dia.

Desktop post-it área de trabalho amarelo
Meu computador numa semana de poucos post-its.

Post-its são simplesmente pedacinhos de papel colorido (os clássicos são amarelos) com uma parte adesiva no verso. Certamente a maior união de simplicidade com originalidade na história das invenções.