Otimização de performance é uma preocupação comum para quem está começando em programação, e muitas vezes mesmo programadores experientes tem dúvidas sobre esse assunto, o que é normal uma vez que o assunto é mesmo complexo. Não vou explicar nesse post tudo o que você precisa saber sobre performance, mas pretendo dizer o mais importante:…
Quando você se deparar com algum tipo de código, tenha a curiosidade de decifrá-lo. Me impressiono com a quantidade de programadores que precisam escrever CSS com regularidade e nunca pararam para entender o significado dos código de cores. É simples: uma cor RGB é composta de três números, representando as cores vermelho (R), verde (G)…
Você viu essa notícia? Hacker Installed a Secret Backdoor On Facebook Server to Steal Passwords Resumindo, um hacker descobriu um servidor do Facebook (files.fb.com) rodando uma versão desatualizada de um software de compartilhamento de arquivos e conseguiu, através disso, fazer upload de um PHP Web Shell. Ou seja, acesso shell ao servidor. No post original…
Fiz para um amigo um script de conversão de charset simplezinho e, como pode ser útil para mais alguém, resolvi abrir o código: Era mais fácil fazer com shell script, é verdade, mas eu precisava que fosse multiplataforma.
Esqueça urllib e httplib: Requests resolve do jeito certo. Você pode instalar via pip com: pip install requests Depois, veja como é fácil: >>> import requests >>> r=requests.get(‘http://visie.com.br’) >>> for k,v in r.headers.iteritems():print k,’=>’,v … content-length => 7669 content-encoding => gzip accept-ranges => bytes expires => Mon, 20 Jan 2014 13:18:30 GMT vary => Accept-Encoding,Cookie server…
Há um tempo eu li “The Pragmatic Programmer“, uma espécie de livro de auto-ajuda para programadores. Não é um livro técnico, não vai te ensinar técnicas ou tecnologias, mas fala de um jeito de pensar e traz uma coleção de conselhos daquele tipo que parece óbvio mas ninguém nunca faz. Um desses conselhos era aprender…
Há mais de dez anos que meus processos de deploy, isto é, colocar um site ou sistema em produção, não usam FTP. Qualquer bom provedor, nacional ou internacional, oferece ferramentas muito mais eficientes para o deploy de sites e sistemas. E isso inclui desde pequenos sites em WordPress ou HTML estático até portais com milhares…
Detalhezinho sobre a linguagem que vale a pena conhecer, e uma boa dica de lógica sobre um erro muito cometido por iniciantes: “We shouldn’t be fearful of writing about what we know. Even if you write from the most basic point of view, about something which has been ‘around for ages’, you’ll likely be saying…
Hoje estava brincando com Requests e tive essa ideia maluca: import requests import re def Ed(text): params=dict(server=’0.0.0.0:8085′,charset_post=’utf-8′, charset=’utf-8′,pure=1,js=0,tst=1,msg=text) return re.sub(‘<[^>]*>’,”,re.sub(r’\n+$’,”, requests.get(‘http://www.ed.conpet.gov.br/mod_perl/bot_gateway.cgi’, params=params).text)) def SeteZoom(text): params=dict(server=’127.0.0.1:8088′,pure=1,js=0,tst=1,msg=text) return re.sub(r’\n+$’,”, requests.get(‘http://bot.insite.com.br/cgi-bin/bot_gateway.cgi’, params=params).text) msg=’Oi!’ while True: print ‘SeteZoom: %s’ % msg msg=Ed(msg) print ‘Ed: %s’ % msg msg=SeteZoom(msg) Teste aí, o resultado às vezes é mais inteligente que muito…
O módulo webbrowser permite abrir uma URL no navegador do usuário. Só isso, simples assim. Por exemplo: import webbrowser webbrowser.open(“http://visie.com.br”) E o site da Visie será aberto no navegador do usuário. Muito útil se você está fazendo um programa para desktop ou mesmo um script para o terminal. No caso de scripts para terminal, se…
O Arthur me indicou e eu quase chorei ao ver:
Teste aí: sudo apt-get install cowsay Depois rode: cowsay Funciona… O cowsay também pode receber texto na entrada padrão: date|cowsay Isso permite usos razoavelmente criativos: lynx –dump http://news.google.com.br | grep “^\[” | grep -v “»” \ | sed -e “s/.*\]//g” | sort -R | head -n 1|cowsay Você pode colocar seu Ubuntu para te dar…
https://github.com/elcio/visualdal Críticas, sugestões e, claro, pull requests são muito bem-vindos!
Nosso presente de natal para os desenvolvedores do Brasil: API gratuita de consulta de CEP. A Visie é parceira de tecnologia da Aviso Brasil. Nós fornecemos tecnologia para o Correio Control, e como parte do negócio, precisamos ter a base de endereços sempre atualizada e sincronizada com o Diretório Nacional de Endereços. Vimos que muita gente oferece…
Veja: >>> class Class: … def um(self): … return 1 … >>> c=Class() >>> c.um() 1 >>> def dois(self): … return 2 … >>> Class.dois=dois >>> c.dois() 2 >>> Class.tres=lambda self:3 >>> c.tres() 3 >>> Class.um=lambda self:’Um modificado.’ >>> c.um() ‘Um modificado.’ As classes em Python são completamente dinâmicas. Você pode acrescentar métodos quando quiser…
Python é uma linguagem open-source, com uma extensa biblioteca. E os módulos da biblioteca são escritos em Python. Alguns módulos, como pickle e StringIO, tem versões em C mais rápidas (cPickle e cStringIO) mas as versões em Python são mantidas para que você possa ler os fontes. Veja como descobrir onde estão os fontes de…
Há muitas situações em que uma função faz cálculos e operações para obter valores e, ao final, deve montar uma string com esses valores. Nesta situação, muita gente monta um dicionário com os valores e usa string formatting para gerar a string a ser retornada. Por exemplo: # -*- encoding: utf-8 -*- import string,random template=”’Sugestões…
A dica de hoje não é muito útil. Pelo menos eu nunca usei para nada realmente sério. Mas é bem divertida: >>> t=’All your base are belong to us.’ >>> t.encode(‘rot-13’) ‘Nyy lbhe onfr ner orybat gb hf.’ Rot-13 é um encoding comum do Python. Você pode escrever código em rot-13 também, se indicar o…
O pacote cclive, para download de vídeos do YouTube na linha de comando, é uma reescrita do clive mais eficiente, com menor consumo de memória e menos dependências. Para instalar: $ sudo apt-get install cclive E para usar: $ cclive http://www.youtube.com/watch?v=8fvTxv46ano Isso vai baixar o vídeo na pasta atual. Simples e indolor. Mas qual a…