Bem vindo … Welcome
Here you will find news and comments about Physics, Computers, Debian, GNU/Linux, and anything else that could be of interest to a computational physicist. If you think that something here could be of interest for you but you are not a Portuguese native reader, please comment in English and I will be happy in providing you a summary of what is written in english. If you prefer, e-mail me.
É com grande prazer que anuncio que o Dia Debian 2009 RJ , este ano em Piraí, já abriu para pré-inscrições. A pré-inscrição é importante para que tenhamos noção do público presente nas palestras. O local é o mesmo do Flisol 2008. Para colaborar com o evento, inscreva-se em http://www.sulfluminenselivre.org, onde você encontra a programação.
Se você sabe o que é Debian, então provavelmente já sabe que Piraí é uma das “Top Seven Intelligent Communities” da Unesco, pelo seu projeto de inclusão digital. Sabe também que alunos e professores receberam recentemente 5500 notebooks no projeto UCA - Um Computador por Aluno. Talvez você também conheça Piraí pelas macadâmias e pelas tilápias. Montar a grade não foi muito fácil este ano, mas teremos apresentações do NTE-VR, palestras sobre gráficos e animações em linux, workshops de programação,etc. e, pela primeira vez nos Dias-D RJ, participação efetiva e patrocínio de uma prefeitura e de sua secretaria de Governo. É claro que vocês devem estar pensando:“É, tinha que ser lá mesmo”.
Em um post anterior Simulações com Processing.js, eu mostrei uma saída para animações e simulações sem flash, usando Javascript. O primeiro programa que fiz foi uma célula fazendo uma caminhada aleatória: a cada movimento a célula esquece de onde veio ou para onde vai e escolhe uma direção aleatória. O problema da caminhada aleatória é bem conhecido em física e já foi conhecido como o passeio do bêbado: o marinheiro é tão bêbado que esquece também de onde veio e para onde vai e acaba visitando todos os bares (esta piada é do tempo em que se podia fazer piadas politicamente incorretas nos USA). A princípio pode parecer um problema sem sentido, mas a caminhada aleatória é muito usada desde a Biologia - como o movimento Browniano, de partículas suspensas em um fluido - até em economia, como a “Théorie de la spéculation”, de Bachelier (1905) ou o “A random walk down Wall Street”, de Malkiel.
Eu disse, também em um outro post, Medir a velocidade de navios com o Google Earth e o Gimp, que novas técnicas são bem vindas mas não substituem algumas outras antigas como o laboratório. Vamos então à prática do movimento browniano: precisamos de um microscópio, água, azeite e detergente. Meu microscópio é bem fraquinho, de plástico, mas chega à 1200x, embora use 200x a 400x para esta experiência.
O que eu fiz foi pingar uma gota de azeite (a menor que você puder), em um copo com detergente e água. Pegue uma gota da mistura (pequena também) e coloque na lâmina. O ideal é que não forme uma gota grande para evitar o problema da convecção, principalmente se seu microscópio usar uma lâmpada que aquecerá rapidamente a gota. Você poderá ver como a convecção é complicada pois verá gotas que se movimentam um uma direção, enquanto outras próximas se movimentam em direções diferentes: é como se fosse uma turbulência, que causa pânico em aviões. Procure pelas menores gotas de azeite que encontrar. Enquanto as gotas grandes parecerão paradas, as pequenas terão um movimento que parece uma vibração e se movimentam parecendo “sem direção”. Veja o filme que fiz com minha Canon PowerShot (com macro digital):
Antes do Brown se pensava que se tratava de coisas vivas. O movimento é determinado por colisões com partículas do fluido – daí porque gotas maiores parecem imóveis. Um movimento deste tipo explica porque o cheiro de um perfume (bom ou ruim), leva tempo para se propagar em uma sala, por exemplo. Eu achei importante deixar o vídeo para que, ao observar o movimento, sejamos capazes de distinguir do movimento de convecção.
A formulação teórica do movimento browniano e a relação com processos de difusão, foi feita por … Einstein, em 1905. Depois disto, Jean_Baptiste_Perrin fez a realização experimental e ganhou o Nobel de Física de 1926. O trabalho de Perrin é importante pois foi decisivo para a afirmação do conceito de moléculas. Neste trabalho, Perrin também obteve o número de Avogadro. Eu sou fascinado por este problema porque mostrar que é possível extrair muito conhecimento a partir de pequenos problemas, mesmo aqueles que não parecem fazer sentido à primeira vista.
Eu vou dar a disciplina de Física Estatística no segundo semestre. É um curso em que simulações ajudam muito a compreender o que é ensinado. Eu queria deixar umas simulações online, mas não gostaria de usar o Flash da Adobe. Eis que o Valessio Brito postou, na lista do Inkscape-Brasil, um link para o Processing.js. Esta maravilha tem várias funções para gráficos, animações e interações (mouse, teclado,etc.) com uma variedade enorme de exemplos. O BallDroppings é bem divertido: você usa partículas para compor músicas, usando as leis da física (choque e gravidade). Em meia hora consegui fazer a animação abaixo (uma célula fazendo um passeio aleatório com uma imagem de células reais como fundo). Eu baixei os arquivos processing.js e init.js e coloquei no raiz deste site. A animação está aqui:
No Dokuwiki bastou colocar o código entre <html> e </html>. Ah, o Processing é GPL e roda no Firefox e no Chrome, não tenho como testar no IE (nem quero). O código está abaixo (não sei se tem case em JavaScript, portanto o programa é o primeiro de alguém que escreveu nesta linguagem).
<html> <head> <title>Processing.js - Basic Example</title> <script language="javascript" src="/tjpp/init.js"></script> <script language="javascript" src="/tjpp/processing.js"></script> </head> <body> <script type="application/processing"> int X, Y,X0,Y0; PImage bg; // Setup the Processing Canvas void setup(){ size( 200, 200 ); strokeWeight( 10 ); X = width / 2; Y = width / 2; steps=50; frameRate(20); bg=loadImage("cells_bg.jpg"); } // Main draw loop void draw(){ background(bg); stroke(#85b3e1); X0=X; Y0=Y; for (int i = 1; i < steps; i++){ X+= random(-1,1); Y+= random(-1,1); if (X < 0) { X = 0; } if (Y < 0) { Y = 0; } if (X > 199) { X = 199; } if (Y > 199) { Y = 199; } line(X0,Y0,X,Y); } } </script><canvas width="200px" height="200px"></canvas><div style="display:none;"><img src='/tjpp/_media/playground/cells_bg.jpg' id='cells_bg.jpg'/></div> </html>