.

Traduzir

quarta-feira, 24 de agosto de 2011

Minha proposta para o Python Brasil[7]

Esse é o resumo da minha proposta de palestra no Python Brasil[7].


Uma Jornada Além das Estrelas: Quando Dr. Spock Conheceu o Python e o Design de alto nível.

Resumo

Language: Português
Level: Intermediário
Summary:
Dr. Spock é um gênio com tendências conservadoras, como muitos outros doutores, sempre olhava com desconfiança as novas linguagens de programação. Como muitos, dizia que as linguagens dinâmicas, por serem interpretadas, eram mais "lentas" que as compiladas, por isso não usavam. Até que um dia o capitão Kirk lhe mostrou a linguagem PYTHON e o chamado Design de Alto Nível.
A ideia por traz do design de alto nível está na capacidade de se utilizar o poder da programação multiparadigma e das baterias incluídas presente em PYTHON, além do vasto mundo de pacotes externos, com uma linguagem compilada, seja ela C/C++ ou mesmo o FORTRAN 77/90, tendo como finalidade o ganho em desempenho computacional e a redução do tempo de desenvolvimento de código. Nessa palestra (Ou pequeno conto espacial ) será abordado de forma breve:
  • O uso de Programação Orientada a Objetos na solução de problemas científicos: Planejando antes de programar, gerando código esqueleto a partir do diagrama de classes.
  • A combinação da linguagem FORTRAN com PYTHON: Quando um velho bruxo aprende ofidioglossia
  • O uso de multiprocessing para otimização de cálculos em máquinas multicore.
  • Alguns pacotes essenciais: Numpy, Scipy, Matplotlib, Scientific Python.
  • Graviton Perturbation: Combinando a metodologia anterior com  web2py no desenvolvimento de um aplicativo web para o estudo de cosmologia e astrofísica.

segunda-feira, 22 de agosto de 2011

web2py, scipy e numpy : Escrevendo e lendo matrizes em banco de dados

Eu estava com um pequeno problema que era o seguinte. Eu uso a biblioteca io do scipy. Essa biblioteca me permite ler e escrever dados em um arquivo no formato .mtx que é um formato bem interessante para se trabalhar com dados matriciais.

Eu estou integrando o meu programa com web2py e estou usando o DAL do mesmo para gerar o banco de dados para a construção de funções semi-analíticas, ou seja, funções que são criadas a partir da interpolação de dados numéricos.


O que eu queria era preservar a estrutura mtx de dados e identificá-los com os parâmetros que os geraram. Mas além disso eu precisava que o meu programa verifica-se se os dados já existiam. Se a resposta fosse afirmativa, os dados deveriam ser lido. Usando io do scipy, os dados lidos eram automaticamente armazenados em uma matriz tipo numpy. Se os dados não existissem, então os cálculos seriam realizados e o resultado final seria escrito, via io, no formato .mtx dentro do banco de dados. A solução para essa questão foi a seguinte.

  • Primeiramente importei as bibliotecas necessárias.

                   >>> from gluon import *
                   >>> from numpy import array
                   >>> from cStringIO import StringIO
                   >>> import scipy.io as io

  • Modelando o banco de dados: O primeiro passo foi pensar em como deveria ser o formato da tabela do meu banco de dados. Em cada linha duas colunas, uma para o identificador, com os parâmetros geradores, e outra para os dados.  De forma geral ficou assim:  


                   >>> db=DAL('sqlite://temporaio.db'
                   >>> db.define_table('dados',Field('Parametro'),Field('Matriz'))

  •  Inserindo as informações no banco de dados: Como teste irei gerar uma matriz 3x3, criar um arquivo via buffer, usar o io para escrever os dados no formato mtx no buffer e finalmente pegar os dados do buffer e escrevê-los no banco de dados
                   >>> x=array([[1,2,3],[5,6,7],[8,9,0]])
                   >>> output=StringIO()
                   >>> io.mmwrite(output,x,comment='isso e um teste',field='real')
                   >>> db.dados.insert(Parametro='Primeira',Matriz=output.getvalue())
                   >>> db.commit()
                   >>> output.close() #Limpa o buffer
  • Lendo os dados: Agora irei selecionar a matriz previamente inserida no banco de dados e convertê-la para o formato de matriz do numpy.
                   >>> MM = db(db.dados.Parametro=='Primeira').select()[0]
                   >>> T3=MM.Matriz
                   >>> Input=StringIO(T3)
                   >>> X4=io.mmread(Input)
                   >>> Input.close() #Limpa o Buffer

O  que falta agora é escrever os validadores do banco de dados para garantir que não serão inseridas matrizes iguais.

sexta-feira, 19 de agosto de 2011

Artigo aceito para publicação no MNRAS Letters.


http://arxiv.org/abs/1108.3745



In this Letter, we present a model connecting the cosmic star formation rate (CSFR) to the growth of supermassive black holes. Considering that the evolution of the massive black hole is dominated by accretion (Soltan's argument) and that the accretion process can be described by a probabilistic function directly regulated by the CSFR, we obtain the evolution of the black hole mass density. Then using the quasar luminosity function, we determine both the functional form of the radiative efficiency and the evolution of the quasar duty-cycle as functions of the redshift. We analyze four different CSFRs showing that the quasar duty-cycle, $\delta(z)$, peaks at $z\sim 8.5-11$ and so within the window associated with the reionization of the Universe. In particular, $\delta_{\rm max}\sim 0.09-0.22$ depending on the CSFR. The mean radiative efficiency, $\bar\eta(z)$, peaks at $z\sim 0.6-3.0$ with $\bar\eta_{\rm max}\sim 0.10-0.46$ depending on the specific CSFR used. Our results also show that is not necessary a supercritical Eddington accretion regime to produce the growth of the black hole seeds. The present scenario is consistent with the formation of black hole seeds $\sim 10^3{\rm M}_\odot$ at $z\sim 20$.

terça-feira, 28 de junho de 2011

[angry bird funcionando Kyros 7015 Froyo] Android 2.2 no coby kyros 7015 solução grafico 3d

Exitem diversas vantagem em atualizar o Coby Kyros 7015 para o android 2.2 (Froyo) como a possibilidade de transferir facilmente aplicativos para o cartão de memória, a possibilidade de usar um modem 3g e acesso a rede ad-hoc. Além disso,senti que  o teclado virtual está melhor calibrado que a versão 2.1. Porém existia um pequeno problema ao rodar jogos 3d. Agora não mais. Abaixo está como resolver esse pequeno detalhe e deixar o android 2.2 no kyros 7015 melhor.

Não vou deixar aqui um tutorial de como atualizar o coby kyros para o android 2.2. Mas para quem quiser fazer isso veja o tutorial nesse link. Foi o passo que fiz para atualizar o meu.

Após a atualização do seu 7015 para o android 2.2 baixe o arquivo mali.ko.ridgeland.zip.

No terminal inicialize o adb no modo shell. Para usuários linux o dispositivo só será reconhecido corretamente se o terminal estiver no modo super usuario (sudo su).
Descompacte o arquivo anterior e salve-o (mali.ko.ridgeland) no cartão de memória.
Inicialize o adb no modo shell.
$ adb shell

Monte o /system com permissão de leitura e escrita

$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

Faça uma cópia de segurança do mali.ko original

$ cd /system/lib/modules
$cp mali.ko mali.ko.original

Agora copie o arquivo do cartão de memoria para o local correto

$cp /sdcard/mali.ko.ridgeland /system/lib/modules/mali.ko

Dê permissão de execução para esse arquivo.

$chmod +x mali.ko

 É preciso adicionar algumas linhas ao arquivo build.prop localizado em /system/

$cd /system/
$ vi build.prop

Ao final do arquivo adicione a seguinte linha:

dalvik.vm.heapsize=24m

Salve o arquivo e reboot o sistem.

$ reboot

Pronto. Os jogos como angry bird estarão rodando corretamente agora.

Outra dica, para que os que não instalarem corretamente faça o seguinte:
No seu table, entre  em configurações>Configurações CyanogenMod > Local de instalação. Escolha entre Automático ou Memoria interna. Tente instalar novamente o aplicativo. O angry bird instalou corretamente quando eu coloque em Memória Interna.


Referências:

http://forum.xda-developers.com/showthread.php?t=868842
http://www.androidtablets.net/forum/coby-generation-1-technical/13178-rom-cyanogenmod-android-2-2-a.html
http://android-tricks.blogspot.com/2009/01/mount-filesystem-read-write.html
http://tipstir.the-talk.net/t1383-coby-kyros-7015-how-to-install-cyanogenmod-froyo-based


sábado, 25 de junho de 2011

[solução] coby kyros só inicializa no fastboot?

Eu tive um pequeno problema com o meu coby kyros 7015. Ao atualizar o clockword o boot só ocorria no modo fastboot. Ai eu não conseguia fazer mais nada. A solução foi encontrada baseada em http://calebfultz.com/blog/archives/153.

O que fiz foi baixar o arquivo flash_image e salva-lo no meu cartão de memoria. em seguida, usando o adb shell digitei os seguintes comandos:

#cd sdcard
#cp /sdcard/flash_image /system/bin/flash_image
#chown root.shell /system/bin/flash_image
#chmod 0755 /system/bin/flash_image
 
#flash_image recovery recovery.img
#reboot recovery
 
omandos:

 O aparelho fez o boot no clockword corretamente.


segunda-feira, 13 de junho de 2011

Eduardo e Mônica - O filme


terça-feira, 31 de maio de 2011

IWCCA: I Workshop de Computação Científica em Astronomia

Apresentação do PyGraWC - Python FrameWokr for Gravitational Waves Comology - No I Workshop de Computação Cinetífica em Astronomia - IWCCA.

2 - 5 de junho de 2011
Núcleo de Astrofísica Teórica
Universidade Cruzeiro do Sul (São Paulo - SP)





O PyGraWC é um framework escrito em PYTHON e FORTRAN que auxilia no estudo de: formação de estruturas como galáxias e aglomerado de galáxias, taxa cósmica de formação estelar, evolução de buracos negros supermassivos e da emissão de ondas gravitacionais originados de buracos negros estelares e supermassivos tal como a razão sinal/ruído de fundos estocásticos em detectores interferométricos de base terrestre ou espaciais.

Abaixo está a apresentação:


Abaixo estão os vídeos usados na apresentação:




Até a proxima