Essa é bem legal. Temos três listas: >>> a=[1,2,3] >>> b=[4,5,6] >>> c=[‘a’,’b’,’c’] Veja: >>> zip(a,b,c) [(1, 4, ‘a’), (2, 5, ‘b’), (3, 6, ‘c’)] Simples e útil, não? E se as listas tiverem tamanhos diferentes? >>> c=[‘a’,’b’] >>> zip(a,b,c) [(1, 4, ‘a’), (2, 5, ‘b’)] O resultado será truncado para o tamanho da menor…
Atendendo a pedidos, estamos levando para Curitiba o Workshop “Alta Performance com WordPress”, onde você poderá aprender a preparar seu WordPress para receber milhares de usuários simultâneos. Veja mais detalhes no site do evento.
Boa parte das APIs do HTML5 já estão disponíveis hoje para a maioria dos navegadores e, com um pouco de conhecimento e uma pitada de javascript, é possível desenvolver hoje aplicações com geoposicionamento, funcionamento offline, conexão em tempo real com o servidor, gráficos vetoriais e todo um novo conjunto de recursos de interface. Por que…
Python tem duas funções muito interessantes: any e all. A função any recebe uma lista (ou outro objeto interável) e retorna True se algum dos elementos for avaliado como True. Já all só retorna True se todos os elementos forem avaliados como True. Veja: >>> everybody=[1,2,3,4] >>> anybody=[0,1,0,2] >>> nobody=[0,0,0,0] >>> any(everybody) True >>> any(nobody)…
O módulo gzip nos permite ler e escrever em arquivos .gz sem nenhum trabalho. Veja: >>> import gzip >>> f=gzip.open(‘teste.txt.gz’,’w’) >>> f.write(‘Hello!\n’) 7 >>> f.close() >>> $ gunzip teste.txt.gz $ cat teste.txt Hello! $ gzip teste.txt $ python Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] on linux2 Type “help”, “copyright”, “credits” or “license”…
Para iniciar este post, é preciso deixar algo claro: diferente da minha postura com os polêmicos ponto-e-vírgula, em que sei que sou “promíscuo e relaxado”, eu sou muito reticente quanto ao uso de eval() em javascript. O principal motivo é que eval() me cheira a gambiarra. Mas tenho muita dificuldade em dizer porquê. Na verdade,…
A partir do Python 2.5, ao estender dicionários, você pode dar a suas classes um método __missing_, que será executado toda vez que você tentar acessar um índice inexistente. Veja: class Counter(dict): def __missing__(self, key): self[key]=0 return self[key] Veja funcionando: >>> votos=[‘john’,’paul’,’john’,’john’,’ringo’, … ‘george’,’paul’,’ringo’,’ringo’,’john’, … ‘paul’,’john’,’george’,’paul’,’paul’, … ‘john’,’paul’,’john’,’ringo’,’paul’] >>> c=Counter() >>> for v in votos:…
Um amigo me perguntou hoje sobre soluções NoSQL. Na conversa que se seguiu, descobri o que ele precisava fazer: precisa publicar um servidor cujas URLs vão simplesmente fazer um redirect para outro site, mas devem guardar as informações do redirect para enviar para o Clicky. É claro que os dados devem ser enviados ao Clicky…
Você está desenvolvendo um plugin ou tema para WordPress e precisa fazer uma conexão HTTP? Não use fopen, curl, file_get_contents, etc. Use a HTTP API do WordPress. A HTTP API é simples de usar, muito bem implementada e tem excelente performance. E se um dia você precisar hospedar seu site num servidor debaixo de um…
Dica: ao iniciar o desenvolvimento com Python em uma máquina nova, procure pelo arquivo sitecustomize.py e acrescente: import sys sys.setdefaultencoding(‘utf-8’) O arquivo sitecustomize.py é automaticamente executado toda vez que você executa o Python (sim, você pode fazer o que quiser nele…) Ele fica em lugares diferentes dependendo da plataforma e da sua instalação do Python.…
A maioria dos programadores Python gasta bastante tempo no shell interativo. É onde fazemos debugging e testamos novos módulos. É também nossa calculadora (piada interna, quem lê, entenda.) Muitos programadores não conhecem o iPython, uma versão “vitaminada” do shell interativo. No site há versões para download para Windows e em formato de Python-EGG. Para instalá-lo…
O Mike me convidou, então lá vai: 1. Ubuntu O sistema operacional que simplesmente funciona. Meu notebook tem Ubuntu, o da minha mulher e os dos meus filhos também. Todos tem o Windows OEM em dual-boot. Nem me lembro quando foi a última vez que vi alguém bootar o Windows lá em casa. Aqui na…
Em meu último post sobre esse assunto, expliquei porque prefiro, na maioria dos casos, usar um formato de descrição de dados como JSON ao invés de XML. Infelizmente, parece que nem todo mundo concorda comigo, e há uma porção de dados úteis disponíveis apenas em XML. O que não é um problema, certo? Do que…
Não me entenda mal, XML é uma idéia interessantíssima, pela qual sou apaixonado. Tenho dado aula de XML, escrito HTML como XML válido, publicado e consumido dados em XML, acompanhado as iniciativas de Open Data e RDF no W3C. O problema é que, enquanto alguns mercados subutilizam XML, tornando o intercâmbio de dados muito complexo,…
Um módulo Python pequeno, com uma única função muito simples, mas que você precisa conhecer é o glob. O que ele faz é obter uma listagem de diretório: import glob files=glob.glob(‘*’) O que equivale a: import os files=os.listdir(‘.’) Porém o glob é muito poderoso. Podemos fazer: glob.glob(‘*.mad’) Ou: glob.glob(‘../pasta/*’) Fica a dica.
Semana passada participei de um curso sobre HTML5 ministrado pela w3c Brasil. Nesse curso o Elcio Ferreira foi o instrutor, eu fiquei com uma duvida e fiz uma pergunta para ele sobre a necessidade de incluir a extensão do arquivo na tag <video> para que o mesmo funcione no firefox. Ele me mostrou uma forma…
Embora seu computador possa ter dois, quatro, oito ou até dezesseis núcleos de processamento, o Python só usa um deles de cada vez (mesmo trabalhando com threads). Parallel Python resolve o problema. Um exemplo simples, para você entender como funciona: ppserver = pp.Server(ppservers=()) job1 = ppserver.submit(funcao_demorada, (), (), ()) job2 = ppserver.submit(funcao_demorada, (), (), ())…
Fiz essa versão do clássico joguinho Lights Off: O jogo é simples, e o objetivo é apenas apagar todas as luzes. Por curiosidade, fiz também o algoritmo que resolve o jogo: O desafio está lançado. O primeiro que colocar nos comentários a URL de uma página com um botão “solve” como o meu ganha uma…
Navegando por aí, acabei esbarrando no blog do meu amigo Marcos Rossow (nossa, quanto tempo!) E encontrei esse post: JavaScript UTF-8 Decode, com um código tirado daqui: JavaScript utf8_decode. Tem duas coisas que me incomodam nessa abordagem. A primeira é essa mania que muita gente tem, particularmente programadores PHP, de tratar UTF-8 como um “código…
Trecho de código legado (ASP) que pegamos aqui: if len(request(“price”)) = 3 then valorTotal = left(request(“price”),1) elseif len(request(“price”)) = 4 then valorTotal = left(request(“price”),2) elseif len(request(“price”)) = 5 then valorTotal = left(request(“price”),3) end if Jênio.