.

Traduzir

sexta-feira, 28 de outubro de 2011

Brincado com arduino e Python

Um pequeno teste de integração de Python com Arduino.

Os códigos fonte podem ser baixados em http://dl.dropbox.com/u/19999224/ardpython.zip

Abaixo está o vídeo da operação.


terça-feira, 4 de outubro de 2011

Pelo direito de Escolher o Sistema Operacional que Vem no PC

Já algum tempo publiquei aqui o fato de que a venda casada de computador e sistema operacional, uma prática muito comum, é crime. Agora estou fazendo um abaixo assinado para que a Lei seja cumprida. Temos o direito, de  no ato da compra, optar por não vir junto um sistema operacional pré-definido na máquina, sendo assim, pagando menos pelo conjunto. Isso é, temos o direito de no ato da compra ser informado de que posso pagar só pelo Hardware. Pela luta do cumprimento dos nossos direitos, peço que assinem o abaixo assinado que está no seguinte link: http://www.peticaopublica.com.br/?pi=P2011N14813

Juntos Podemos Muito MAIS.

quinta-feira, 8 de setembro de 2011

Deve existir uma idade mínima para alfabetização?

Somos hoje um país de analfabetos funcionais. O sistema educacional não valoriza o desenvolvimento pleno das crianças e jovens. Pelo contrário, vivemos na lei do mínimo esforço. Se o aluno consegue o mínimo para passar já está ótimo. Não temos grandes projetos para atividades extracurriculares. Na escola não se ensina, de verdade, arte ou a ciência divertida, que é aquela que está além dos livros, mas na possibilidade de desenvolver projetos que vão desde de construir um vulcão de bicarbonato de sódio a montar um robô de lego. Somos um povo medíocre, pois estamos contentes com um sistema mediano, nem muito bom, nem muito ruim.
Feliz pós dia da independência.




quinta-feira, 1 de setembro de 2011

Calculadora Científica on-line


Achei bem legal essa calculadora.

O link é: http://web2.0calc.com







web 2.0 scientific calculator

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$.