Parallel Python

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, (), (), ())
print job1()+job2()

Os quatro argumentos do método submit são: a função que será executada, os argumentos passados a ela, as funções que ele pode chamar e os módulos dos quais ela depende. Veja um exemplo de como chamar com esses parâmetros:

ppserver = pp.Server(ppservers=())
job1 = ppserver.submit(funcao_demorada, (44,), 
                        (sub_funcao,), ("sys","math",))
job2 = ppserver.submit(funcao_demorada, (25,),
                        (sub_funcao,), ("sys","math",))
print job1()+job2()

Divirta-se!

Palestra: construa seu validador de formulários

Algumas pessoas têm me escrito perguntando como extender o validador de formulários universal que publiquei há algum tempo. O manual do programador é um excelente recurso para isso.

Mas você que é de São Paulo, tem a oportunidade de ver tudo funcionando ao vivo. Nessa quinta-feira, na palestra “Formulários Definitivos“, vou construir um validador igualzinho a esse do zero, explicando cada conceito e o porquê de cada decisão no projeto.

Isso, entre outras coisas. Você também pode conferir o programa da palestra, e até quem sabe ganhar um ingresso grátis.

Um pouquinho mais da sintaxe do Python

Um amigo meu está fazendo faculdade, e começando a aprender a programar (com Java[bb].) Ele me mostrou semana passada um exercício que o professor passou:

  • Solicitar que o usuário informe um número inteiro que será usado como limite superior do contador.
  • O programa deverá exibir todos os números pares existentes entre 1 e o limite superior (informado via teclado pelo usuário).
  • Após a exibição dos números o programa deverá perguntar se o usuário deseja executar mais uma vez.

Por curiosidade, eu escrevi uma solução em Python[bb]:

continuar=True
while continuar:
  numero=int(raw_input("Informe o valor inicial da repeticao: "))
  print str(range(2,numero+1,2))[1:-1]
  continuar=raw_input("Continuar? (S/N) ").upper()!="N"

Update: inspirado nos comentários do Rafael Santini, uma solução com break fica mais elegante:

while 1:
  numero=int(raw_input("Informe o valor inicial da repeticao: "))
  print str(range(2,numero+1,2))[1:-1]
  if raw_input("Continuar? (S/N) ").upper()=="N":break

Desafio dos 4KB

Momento Jabá: Quanta coisa você consegue fazer com apenas 4KB?

Crie uma página que faça algo impressionante com apenas 4KB de código. Pode usar HTML válido ou inválido, XML, Javascript, CSS e o que mais você quiser, desde que esteja tudo em uma única página. Nada de Flash, imagens externas, scripts externos ou Ajax. O resultado pode ser o que você quiser, desde que seja impressionante. Pode também funcionar apenas no Firefox, se você preferir. Afinal, você vai programar só por diversão.

Inclua a frase “Visie, ensinando os melhores”, publique em algum lugar e envie o link para a gente. Vamos mostrar para o pessoal da Visie e ouvir o “Uau!” da galera. A página que conseguir o maior número de decibéis na reação dos espectadores, a mais impressionante, a mais surpreendente, vai ganhar um curso online de Javascript Crossbrowser da Visie, para você ou para doar para alguém.

Para que todos possamos ver os trabalhos, deixe um comentário aqui com o link para o seu. Você tem até sexta-feira, às 11h da manhã para enviar seus impressionantes 4KB de código. Vamos começar a avaliação na sexta-feira ao meio-dia, e a hora em que vai sair o resultado depende da quantidade de participantes.

Vamos mostrar para esse pessoal boboca por aí que programar[bb] é muito mais divertido que ficar escrevendo frasezinhas de efeito.

Divirtam-se!

Big Brother Brasil 7, a vez dos Geeks

Big Brother Brasil 7, a vez dos Geeks:

Mas agora o BBB apresenta uma novidade: um profissional de SEO, ou seja, um profisisonal especializado em otimizar sites[bb] para que eles apareçam em posições melhores nos sites de busca, como o google. Esses seres não são muito comuns nem fora da casa do Big Brother, já que a profissão é relativamente nova e não há um ‘curso superior para otimização de buscadores’… … Será que ele vai ficar defendendo webstandards e semântica e todas outras coisas que são cansativamente discutidas na web por “gurus” e “especialistas” da internet e te rsua votação alterada para melhor ou pior por causa de suas crenças geeks? Será que finalmetne o big brother vai ter cobertura no Tableless?