Acho que já comentei isto tempos atrás (possivelmente no blog antigo), mas assistir o filme Metropolis com o cd do Hamlet tocando em paralelo é bem interessante. O Filme é inerentemente mudo, então se sua versão tiver uma trilha sonora, deixe-a de lado e escute a REVELAÇÃO :)
(tudo bem, não chega a ser um Dark Side + Wizard of Oz, mas veja se puder)
segunda-feira, 29 de setembro de 2008
terça-feira, 23 de setembro de 2008
Meta!
Lei de Jung será lançado em 08/11/2008.
E pensar que sua edição iniciou-se em 21/06/2006... é hora de acabar com isso!
E pensar que sua edição iniciou-se em 21/06/2006... é hora de acabar com isso!
segunda-feira, 22 de setembro de 2008
Post de Ferro
O lançamento do Homem de Ferro na locadora me fez lembrar de outro "homem" de ferro, ou melhor, o Gigante de Ferro. É um livro infantil da época da Guerra Fria, que virou desenho mas não ficou tão evidente na época. Foi um dos primeiros usos de cartoon rendering (ou cel-shading) que tenha visto.
Interessante também é que a música Iron Man não se refere ao super-herói, mas mais provavelmente ao gigante (que também chama-se Iron Man no conto original).
Interessante também é que a música Iron Man não se refere ao super-herói, mas mais provavelmente ao gigante (que também chama-se Iron Man no conto original).
quarta-feira, 17 de setembro de 2008
Programação jogada no ventilador
Imagine fazer com que um programa Java converse com uma rotina em Fortran. Parece a cena final do Star Trek I, com o computador da nave querendo "jogar uma idéia" na V'Ger...
Mas isso é possível, a princípio se voce chamar um intermediário, que nesse caso será o meu amigo C++... ou talvez o "primo-pobre" C, talvez cause menos problema com ambos os lados...
Então o programa Fortran será embalado pelo C/C++, fazendo o encapsulamento, podendo virar uma DLL. Daqui ele conversa com o Java, graças ao JNI, que é a possibilidade do Java ler código nativo.
Lembrando que o Java é uma linguagem interpretada e portável entre máquinas distintas, enquanto que o lado C /C++/ Fortran são compilados, não necessariamente funcionais em qualquer lugar.
Então você pergunta: "porque não faça o que você quer em um local só ?!?" porque quero aproveitar o melhor de cada um:
Agora o problema é implementar. o java chamará funções do fortran, vai passar estruturas de dados variadas, e hoje em dia tem que haver um tratamento de exceção, coisa que até hoje não tem no fortran (horror, horror), ou seja, quando trava, é rosca, sem aviso prévio.
Felizmente existem tutoriais, que abordam um pedaço de cada coisa. Um exemplo é o http://www.csharp.com/javacfort.html
Mas isso é possível, a princípio se voce chamar um intermediário, que nesse caso será o meu amigo C++... ou talvez o "primo-pobre" C, talvez cause menos problema com ambos os lados...
Então o programa Fortran será embalado pelo C/C++, fazendo o encapsulamento, podendo virar uma DLL. Daqui ele conversa com o Java, graças ao JNI, que é a possibilidade do Java ler código nativo.
Lembrando que o Java é uma linguagem interpretada e portável entre máquinas distintas, enquanto que o lado C /C++/ Fortran são compilados, não necessariamente funcionais em qualquer lugar.
Então você pergunta: "porque não faça o que você quer em um local só ?!?" porque quero aproveitar o melhor de cada um:
- O Fortran é o cara para calcular (você pode dizer o mesmo do C++, mas quando você tem uma biblioteca pronta a sua disposição, ou simplesmente um código que levou anos para uma galera implementar, não é você que vai desenroscar)
- O Java é o cara da apresentação: interface gráfica, web, XML... há bastante coisa pronta, e principalmente: a torcida é a das maiores.
Agora o problema é implementar. o java chamará funções do fortran, vai passar estruturas de dados variadas, e hoje em dia tem que haver um tratamento de exceção, coisa que até hoje não tem no fortran (horror, horror), ou seja, quando trava, é rosca, sem aviso prévio.
Felizmente existem tutoriais, que abordam um pedaço de cada coisa. Um exemplo é o http://www.csharp.com/javacfort.html
sexta-feira, 5 de setembro de 2008
quinta-feira, 4 de setembro de 2008
Faça o "J"
Em tempos de programação orientada a objetos, documentação no próprio código e outras boas práticas que nos evita o código-macarrão, eis que vejo um livro chamado "J para quem conhece C".
Até aí, para quem vê o C pela primeira vez o acha bizarro, quando se vê então um código propositalmente obscuro, nem se fala. Agora, este tal de J é sacanagem!
Vejamos o mesmo programa em duas versões. Em C:
Em J:
Até aí, para quem vê o C pela primeira vez o acha bizarro, quando se vê então um código propositalmente obscuro, nem se fala. Agora, este tal de J é sacanagem!
Vejamos o mesmo programa em duas versões. Em C:
// Program to calculate Chebyshev coefficients
// Code taken from Numerical Recipes in C 1/e
#include <math.h>
#define PI 3.141592653589793
void chebft(a,b,c,n,func)
float a,b,c[];
float (*func)();
int n;
{
int k,j;
float fac,bpa,bma,f[300];
bma = 0.5 * (b-a)
bpa = 0.5 * (b+a)
for(k = 0;k<n;k++) {
float y = cos(PI*(k+0.5)/n);
f[k] = (*func)(y*bma+bpa);
}
fac = 2.0/n;
for (j = 0;j<n;j++) {
double sum = 0.0;
for(k = 0;k<n;k++)
sum += f[k] * cos(PI*j*(k+0.5)/n);
c[j] = fac*sum;
}
}
Em J:
chebft =: adverb define
:
f =. u. 0.5 * (+/y.) - (-/y.) * 2 o. o. (0.5 + i. x.) % x.
(2 % x.) * +/ f * 2 o. o. (0.5 + i. x.) *"0 1 (i. x.) % x.
)
Assinar:
Postagens (Atom)