Por alguns meses fiquei pensando – para que servem os decorators em python? Ultimamente é fácil ver código do tipo:

@algum_metodo
def function(params):
...

Aí hoje finalmente decidi descobrir como que isso funciona, e para que serve.

Em poucas palavras – realmente, decoratos são bem úteis. Eles não introduzem muitas novidades na linguagem, mas possibilitam evitar duplicação de código, e facilitar a implementação.

Por exemplo, suponhamos que precisamos rastrear todas as chamadas a uma de terminada função. Quais são as alternativas que temos?

  • Mudar a função para ela fazer um print toda vez que ela é executada, e toda vez que ela termina;
  • Fazer um wrapper para essa função;
  • Usar um decorator.

Vamos pensar em uma função bem simples:

def minhafunc(s):
    print "<<; %s >> " % s

Como que poderiamos fazer o wrapper para esta função esta função? Por exemplo:

 def wrapper(func):
      print "entrando na func!"
      ret = func()
      print "saindo da func!"
      return ret</code>

      result = wrapper(minhafunc())

Obviamente, isso funciona.. Mas para funções bem simples.

Um outro jeito seria transformar função automaticamente:

 def logger(func):
     def wrapper(param):
         print "entrando na func!"
         ret = func(param)
         print "saindo da func!"
         return ret
    return wrapper

    minhafunc = logger(minhafunc)

E agora vem a parte “mágica”. Decorators simplesmente permitem com que você evite a transformação de python em LISP, tirando a necessidade de empacotamento explícito dessas funções. Em outras palavras:

 @logger
     def minhafunc():
           ...

faz a mesma coisa que:

minhafunc = logger(minhafunc)

só que logo após a declaração da função.

Só isso :) . É claro, que tem várias outras utilidades os decorators – facilitar o uso de threads em PyGTK; facilitar desenvolvimento de código sincronizado, etc.

Sem falar que fica bem mais legível o código:

@synchronized
@logged
def minhafunc():
     ...

P.S.: O wordpress, para variar, deixa zoado o código.. Mas logo-logo este site vai migrar para Django. Desde que aprendi a mexer com ele, a minha opinião sobre os frameworks web mudou.. e muito! :)

Ele vai voar, ele vai voar!!

Vocês não viram um camelo voando por aí?? Eu vi! Foi lá para Sibéria!

(aposto que não fez sentido nenhum, fez???)

Mas é que está nascendo um Blog-Revista-Site que vai mudar o mundo! Camelo da Sibéria! Ééééé!

:)

Bem, depois de alguns meses de “desaparecimento” atualizarei o meu querido blog :) .

Tanta coisa aconteceu neste tempo, que nem sei como colocar tudo isso aqui. Então vou colocar só os tópicos principais e resumidos (sem nenhuma ordem cronologica ou especial.. fica de exercício para o meu querido leitor (sim sim, você mesmo) tentar organizar isso :) ):

  • Fui para Florianopolis no fim do ano com amigos
  • Quase fui morto por uma onda gigante
  • Passei 1 noite inteira no hospital esperando um amigo (outra vítima da mesma onda)
  • Descobri que em Floripa não tem praticamente nenhum restaurante que fica aberto a noite :)
  • Conheci muitas pessoas legais, muito legais e algumas SUPER legais :) .
  • Fui em mais festas neste período de tempo de que nos últimos 10 anos
  • Atravessei Av. Paulista inteira a pé :)
  • Trabalhei na Microsoft em Redmond com NTFS
  • Consegui deixar o NTFS 18x mais rápido em alguns casos
  • Achei 5 bugs no NTFS.. hehehe
  • Dirigi carro com cambio automático
  • Conheci Bellevue e Seattle. Bem, muito pouco de Seattle, mas já conta :)
  • O voo no qual estava indo pros EUA teve problema e teve que fazer um pouco inesperado em Salt Lake City para trocar de avião. Então posso dizer que estive em Salt Lake City também.
  • Comprei um brinqueeeedo para mim em forma de relógio (sim sim.. eu acho que quem me conhece sabe que eu gosto desses brinquedos). Agora além de tocar mp3 ele roda filmes também :) .
  • Compilei windows. Várias vezes.
  • Aprendi a usar Outlook e Excel.
  • Conheci pessoas de India, China, Indonesia, Hong Kong e outras regiões distantes.
  • Aprendi a abastecer carro. hehehe.
  • Brinquei com uma máquina que tem disco de 14TB.
  • Vi neve pela 1a vez nos últimos 11 anos!
  • Fiquei mais velho :) .
  • Mudei de distribuição de Linux – de Slackware para Archlinux. Dificil de acreditar, mas é verdade…
  • Pela 1a vez na vida peguei filmes de locadora para ver :) .
  • Fiquei jogando sinuca à s 0:00 na Microsoft. No dia do meu aniversário.
  • Comecei a fazer “lista de 101 coisas para fazer em 1001 dias”.
  • …quase fiz metade dessa lista…
  • Descobri vários sentidos e ocasiões para a palavra “super:)
  • Conheci Buritama.
  • Conheci as redondezas de Iraq após bombardeios rodovias perto de Buritama.
  • Ganhei um cartão personalizado de aniversário. Éééééééé!! Ou melhor, um SUPER-cartão de aniversário :) .
  • Troquei de celular
  • Descobri que existe limite para a quantidade de café que consigo tomar por dia.
  • Comi comida indiana (não façam isso..)
  • Comi comida japonesa (isso sim é legal)
  • Comprei um livrinho para aprender japones.
  • …não o abri até agora…
  • Re-encontrei pessoas que não tinha visto faz quase 10 anos!
  • …e provavelmente fiz mais um monte de coisas que não estou lembrando agora!

Mas o importante é que tamos aí! Nois capota mas num breca! Mesmo em Redmond :)

Alias, fotos de Redmond, Bellevue, Microsoft e eu estão aqui e aqui!

Realmente, quem passa no IELTS sabe inglês. Nunca vi teste mais completo (e caro)… IELTS

O MPHOSTING, por algum motivo estranho e desconhecido, voltou a dar problemas no fim de semana. Que raiva – DNS para, servidor funciona a uns 50 bytes/segundo, e nenhuma resposta para os tickets! Droga, ele começou a ficar assim só nos próximos meses.. Estou achando que ou trocou a diretoria lá, ou aquele que fazia tudo funcionar saiu..

Mas mesmo assim, o DicasTI voltou a ativa :) . Vamos ver se consigo colocar AdSense nele..

DicasTI – Enquanto isso, no mundo de TI…

“Quando o nosso cortador de grama quebrou, a minha mulher sempre me lembrava de que eu preciso arrumá-lo. Mas eu sempre tive coisas mais importantes para fazer — o meu carro, jogos de futebol, etc — sempre alguma coisa urgente que não me deixava arrumá-lo.

Até que um certo dia a minha mulher teve a ideia de como fazer eu me tocar de que é realmente necessário arrumar o tal de cortador de grama.

Um belo dia, quando eu estava voltando para casa, eu vi a minha mulher na frente da casa, cortando a grama com o cortador de unhas dela. Por alguns instantes eu fiquei observando-a, quieto, e depois entrei em casa. Alguns minutos depois eu saí, carregando uma escova de dentes na mão.

“Querida”, – disse eu, “assim que você terminar de cortar a grama, limpa também o nosso quintal!”…

…os médicos finalmente me disseram que eu vou poder voltar a andar novamente, mas que vou ficar mancando pelo resto da vida…

Moral da história – casamento é uma espécie de convivência entre duas pessoas, no qual uma pessoa sempre está certa e outra se chama de “marido”

:)

Foi estabelecido hoje um novo recorde da velocidade de transferência de dados por uma pequena empresa de TI. Da mesa caiu uma caixa com 20 discos rígidos Seagate Barracuda 300GB. O volume total de dados transmitidos a uma distância aproximada de 1 metro foi de 300208 = 48 000 GBits. Considerando o tempo de transmissão (t=sqrt(2h/g) = 0.4s), é possível afirmar que a taxa média de transmissão de informação foi de 120 TBits/segundo!!

Bem, como ficou meio parado o blog por esses dias — mais por causa de outros projetos, mas também para eu conseguir finalmente finalizar algumas coisas para a usp :) .

Entre as novidades — a TDNN está funcionando finalmente (nem eu acredito nisso)!

Entre outras novidades — finalmente aprendi a usar o LAST.FM, realmente é o que o orkut podia ter sido mas não foi :( .

E, como uma das novidades principais :) , o novo cd de Ariya está praticamente decorado já. Mas também, após andar a pé semana passada (e essa também — tadinho do carro que não sai do mecânico) só escutando esse CD… :)

Mais uma vez a AMD sai na frente de todos os concorrentes. Já cansei de falar das oportunidades que a AMD consegue encontrar nesse ano, mas, pelo jeito, ainda serão muitos.

Serviço AMD Live oferece:

  • Store files securely on the web. Get 25 GBs of FREE online storage.
  • Access your files from any web browser.
  • Share all your files quickly and easily, without file size restrictions.
  • Host videos, audio, images, and more on the web.
  • Backup your files and data safely and reliably.

Comparando isso com Sharepoint e Live! da microsoft, e mesmo com Jouvent, a AMD está bem na frente.

Encontrei aqui

Removi o drupal e webcalendar do hosting. Não uso mais eles mesmo.

E, já que o drupal foi removido, coloquei links para os textos, letras de músicas e músicas diretamente no wordpress.

Ainda falta criar um handler para arquivos .txt…

© 2012 Eugeni's blog Suffusion theme by Sayontan Sinha