Assisti esse curta-metragem e recomendo, conta um pouco da história do mítico atacante do Íbis, Mauro Shampoo.

Show!
Mauro Shampoo – Jogador, Cabeleireiro e Homem.
Diretor: Leonardo Cunha Lima, Paulo Henrique Fontenelle
Ano: 2005
Duração: 20 min
Link: http://www.portacurtas.com.br/filme.asp?cod=4544
Filed under: dica | Deixe um comentário
Tags:Mauro Shampoo, curta-metragem, íbis
Sikuli
Essa semana estava lendo a Linux Magazine e vi uma matéria sobre um programa bem interessante, acho que o título da matéria era “Script Gráfico”. Essa matéria refere-se a um programa chamado Project Sikuli que ainda está versão beta. Pelo pouco que li é um projeto de pesquisa do MIT Computer Science and Artificial Intelligence Laboratory (CSAIL)
Bem, acho que o título da matéria da LM fala tudo, usando o Sikuli é possível automatizar tarefas utilizando screenshots. Algo que chamou a atenção também é que o Sikuli usa Jython ![]()
No site do projeto há um vídeo de demostração – usando o MacOS -
mas o uso dele é bastante simples, se você precisa que seu script clique em algum local, basta escrever click e especificar com screenshot o local. Aconselho dá uma olhada na documentação do projeto.
Bem, acho que é isso é tudo bem intuitivo. Get Started !
PS.: Eu precisei instalar a biblioteca libcvaux2.1, mas talvez você tenha que instalar o java 6 caso não tenha instalado.
Rodrigo Lira
Filed under: dica, Python | Deixe um comentário
Tags:Jython, Python, Sikuli
Resumo do Período
Esse período foi bastante corrido, mau postei devido a falta de tempo. Foi projeto de Banco de Dados, de Organização de Computadores, Circuitos Digitais Sequenciais, Redes de Computadores entre outros. Ah também tive meu primeiro artigo aceito – A Novel Restoration Algorithm Based on Optical Signal to Noise Ratio for Transparent Optical Network, SBrT 2011.
Abaixo seguem algumas imagens que disso tudo…

Filed under: Faculdade, Programação, Projetos, Python | Deixe um comentário
Tags:Chrome, pibic, Programação, Python, Redes, SBRT11
Depois que conheci o bot do Google Talk Guru, fiquei curioso em saber como eram feitos esses bots. A princípio pensei que fosse alguma API do Google, até porque o google tem api para tudo, mas acabei descobrindo o IMified.

O IMified, como o próprio site explica, é uma plataforma escalável para criação e hospedagem de bots para IM, através de sua API é possível criar bots para Twitter, Google Talk, AIM, MSN e outros IMs. Bem, por enquanto vou parar por aqui mas nos próximos posts vou fazer um passo a passo para criar um bot para o Gtalk utilizando Python, Google App Engine e o IMified.
Filed under: Programação, Projetos, Python | 2 Comentários
Tags:bot, Google, Google App Engine, IMified, Programação, Python, tutorial
Pintura admirável de uma beleza

Vês esse Sol de luzes coroado?
Em pérolas a Aurora convertida?
Vês a Lua de estrelas guarnecida?
Vês o Céu de Planetas adorado?
O Céu deixemos; vês naquele prado
A Rosa com razão desvanecida?
A Açucena por alva presumida?
O Cravo por galã lisonjeado?
Deixa o prado; vem cá, minha adorada,
Vês de esse mar a esfera cristalina
Em sucessivo aljôfar desatada?
Parece aos olhos ser de prata fina?
Vês tudo isto bem? Pois tudo é nada
À vista do teu rosto, Caterina.
Gregório de Matos.
Só para entreter =D
Filed under: Uncategorized | Deixe um comentário
Reinvertedor de URL
It’s working!
Há vários blogs e sites na web que mascaram a URL de algum download com o intuito de lhe vender ou fazer cadastrar em alguma promoção “imperdível”. No inicio isso dava para ser ignorado já que a própia URL da promoção/cadastro contia o destino desejado. Algo como:
http://www.promocaoimperdivel.com.br/?url=http://www.megaupload.com.br/uasdD
Bastava copiar e colar.
Bem, o problema é que a galera hoje em dia está se usando tática de guerra. A URL do destino não está tão fácil como era antigamente.
Hoje:
http://www.promocaoimperdivel.com.br/?url=Ddsau/rb.moc.daolpuagem.www//:ptth
Qualquer pessoa consegue notar que o destino foi invertido, reinverter – ou desinverter – a url é necessário. Eu mesmo sempre fazia esses passos
- Buscava no google “inverter, desinverter url” – mais rápido que print url[::-1].
- Entrava nesse site.
- Colava a url invertida.
- Clicava lá em “Inverter URL” e pronto.
Bem para mim era algo simples mas chato. Então resolvi hoje colocar a mão na massa e usar o Google App Engine para fazer o meu próprio reinvertedor. O que muda nele é que algumas dessas etapas foram retiradas. Vamos dizer que a época do ctrl+c e ctrl+v na URL voltou.
O funcionamento é bem simples.
Por exemplo se fulano quisesse reinverter esse caminho /tp/lisarb/gro.ecaepneerg.www//:ptth
Basta digitar no browser o site da aplicação e colocar a url
http://reinverta.appspot.com/?url=/tp/lisarb/gro.ecaepneerg.www//:ptth
Ou seja, fazer uma requisição ao site, passando no argumento url o site a ser reinvertida. Logo após isso, o que vai acontecer é que fulano já seria redirecionado para a URL sem ter que fazer mais nada.
O código é muito simples, basicamente tudo acontece entra as linhas 6 e 8.
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
url = self.request.get('url')
if url:
self.redirect(url[::-1])
else:
pass # Mostrar pagina estatica
application = webapp.WSGIApplication([('/',MainPage)],debug=False)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Fica ai a dica.
http://reinverta.appspot.com/?url=COLOCAR-URL-A-SER-INVERTIDA
Ahh, por enquanto não está criada a página estática que permitiria reinverter da forma tradicional mas em breve isso vai está funcionando.
Filed under: dica, Programação, Projetos, Python | 4 Comentários
Tags:Google App Engine, Programação, Python
Python, PSO e Google Elevation
Depois que comecei a participar do CIRG, Computational Intelligence Research Group, assisti várias palestras onde a técnica do PSO e sua variações eram utilizadas.Para quem não conhece o PSO (Particle Swarm Optimization) é uma técnica de computação inteligente criado pelos pesquisadores Kennedy e Eberhart em 1995. Sua descoberta foi feita a partir dos estudos do comportamento dos pássaros em um bando em vôo. Enfim, não vou me ater muito a explicar o PSO porque esse não é o foco mas para quem não conhece, recomedo a leitura do artigo que o propôs.
Num desses momentos de loucura eu tive a seguinte ideia:
“Se eu usasse o PSO e a API do Google Elevation para tentar encontrar o Everest?”
Dai para frente foi só implementar o PSO com a ajuda do @serginhfr e ver o que ia acontecer. Alguns detalhes sobre a implementação:
- O espaço de busca era a Terra ou seja duas dimensões. Latitude: -90° a 90° e Longitude -180° a 180°.
- Se por acaso a particula saisse do espaço de busca, seria como se ela tivesse dadouma volta na terra. Ex.: Logitude: -200° se tornaria 20°.
- Foi usado a topologia de comunicação global (Gbest).
- A função de fitness da particula é calculada fazendo uma requisição a API do Elevation passando o local em que a partícula se encontra no espaço de busca.
import simplejson
from urllib import urlopen
ELEVATION = "http://maps.google.com/maps/api/elevation/json?locations=%f,%f&sensor=false"
class Particle(object):
...
def _fitness(self,position):
site = ELEVATION %(position.latitude,position.longitude)
dicionario = simplejson.load(urlopen(site))
if dicionario['status'] == 'OK':
fit = dicionario['results'][0]['elevation']
else:
raise Exception # Criar uma exception digna.
return fit
O retorno da requisição a o Elevation é um arquivo json – poderia ser um xml – como esse aqui . É utilizado o metodo load do modulo simplejson para transformar as informações contidas no json em um Dicionário (dict) que é um tipo padrão de Python.
- A forma de atualizar a velocidade foi a seguinte:
from random import random
class Particle(object):
...
def update_velocity(self,i,gbest):
w = (0.9-(0.5*(i/self.iteracoes)))
self.velocity.x = w * self.velocity.x + random()*2.05*(self.pbest.longitude - self.position.longitude) + random()*2.05*(gbest.position.longitude -self.position.longitude)
self.velocity.y = w * self.velocity.y + random()*2.05*(self.pbest.latitude - self.position.latitude) + random()*2.05*(gbest.position.latitude -self.position.latitude)
Resultados!
Adianto logo que o mais próximo que ele chegou do Everest, foi um ponto na China. Basicamente a melhor partícula sempre se encontra na Antártida. O que me leva a crer que essa minha implementação foi baseada no comportamento dos pinguins :D
A minha explicação:
- Realmente a Antártida possui pontos elevados, o 6º ponto mais alto é o Vinson Massif na Antártica com 4.892 m.
- O formato de topologia de comunicação GBest tem maior probabilidade de deixar o exame presas em pontos de minimo, como o Visson Massif.
Por enquanto ainda não achei o Everest mas quando fizer novos testes mudando o formato de comunicação espero ter melhores resultados.
Filed under: Programação, Python | 1 Comentário
Tags:CIRG, Google Elevation, Programação, PSO, Python











