Linux: XDirectFB e Wine

Flash e transparencias XDirectFB

Por dica do Paulo Matias (um amigo que conheci no Curso de Programação da OBI deste ano), instalei um CVS do XDirectFB no meu Linux (patchando o Xorg) e estou curtindo bastante! É um sistema bem rápido (mais rápido que o X normal) e que tem transparências nativas muito legais (e instantâneas). O site é directfb.org e para instalar só precisa do DirectFB e do XDirectFB (tem vários outros pacotes lá, mas que não servem para isso). Coloquei alguns screenshots no Flickr. :) O único ponto fraco do XDirectFB (talvez só a versão CVS) é que eu não consegui configurar o teclado (habilitando Xkb e fazendo tudo “direitinho”, o layout do meu teclado US internacional até funciona, mas aí as teclas direcionais param de funcionar!) e tem um bug um pouco esquisito… (aliás, não sei se é um bug ou eles fazem isso por querer): Quando iniciamos uma seção (startx/xinit) ele continua no console 1 e precisamos dar um CTRL+ALT+F7 para ir para o modo gráfico que ele está abrindo… :blink:

E por falar em fotos no Flickr e em evolução no Linux, eu aproveitei o final de semana também para instalar Wine no laptop e já estou conseguindo rodar programas que antes não funcionavam. Eu consegui rodar o Flash MX tranquilamente (mas antes já tinha conseguido) e ficou mais rápido que antes. Também rodei Twinsen’s Odissey (um jogo bem antigo que não roda no WinXP! Hehehe) sem problema algum e Age of Kings (o segundo da série Age of Empires da Microsoft) por alguns momentos. Com a Radeon configurada direitinho e o Wine também, gostei bastante das emulações.

Eu fiz mais coisas ultimamente, mas foram tantas que resolvi separar em dois posts. Portanto, continuo no próximo… ;)

Windows no Linux (Qemu e Wine)

Neste fim de semana, andei tentando utilizar o QEMU e o Wine para usar aplicativos Windows no meu Slack 10.1 (que diga-se de passagem, é um sistema muiiiiiito melhor que esse troço que eu tive tanto trabalho pra emular). Qual a utilidade disso? Praticamente nenhuma, só pra aprender mesmo e poder ajudar novatos que não conseguem viver sem essa porcaria de sistema… Consegui instalar o Windows 98 numa partição virtual do QEMU e estou conseguindo rodar ele (e até compartilhei a internet). Já o Windows XP dá uns problemas (ele instala e roda perfeitamente mas depois quando eu vou bootar pela segunda vez dá problema). O ideal é o Windows 2000 que eu vou procurar pra instalar e vou ver o que tá acontecendo com o XP.

Coloquei vários screenshots no Flickr.

No meio de tudo isso, ainda instalei o Wine e o Winetools e instalei algumas coisas como eMule, IE6, DOS, etc. O DOS não tem utilidade nenhuma, mas tudo bem… O IE6 é bom pra testar as páginas num browser ruim pra testar e o eMule é ótimo pra compartilhar arquivos.

O segundo “tópico” do final de semana são scripts bestas. Durante a semana (na verdade, durante as aulas) estou fazendo alguns scripts para facilitar fórmulas simples e coisas semelhantes. Criei um programa que faz a regra de três, mmc, etc. mas os únicos que achei dignos de colocar aqui são KBruch (calcula adição e subtração de frações, dá o resultado em fração mesmo perfeitamente):

//Resolvendo o KBruch
//Termos: 2, Máximo denominador comum: 10, Operações: Adição/Subtração

#include <stdio.h>

int mmc(int a, int b) {
	int i, t, c=1;

	if (a>b) {
		t=b;
		b=a;
		a=t;
	}

	i=b;

	while (i%a) {
		i=b*c;
		c++;
	}

	return i;
}

int main() {
	int n1, d1, n2, d2, rn1, rn2, d, res, i;
	char sinal;

	while (scanf("%d/%d%c%d/%d", &n1, &d1, &sinal, &n2, &d2)) {
		//determinando denominador comum
		if (d1==d2) {
			rn1=n1;
			rn2=n2;
			if (n1==n2&&sinal=='-') {
				d=1;
			} else {
				d=d1;
			}
		} else {
			d=mmc(d1, d2);
			rn1=d/d1*n1;
			rn2=d/d2*n2;
		}
		//fazendo a conta
		if (sinal=='+') {
			res=rn1+rn2;
		} else {
			res=rn1-rn2;
		}

		//simplificando a fração
		for (i=2; i<=d; i++) {
			if (!(res%i)&&!(d%i)) {
				res/=i;
				d/=i;
				i=2;
			}
		}
		printf("Resultado: %d/%d\n\n", res, d);
	}
}

e Cálculo da Força da Gravidade, um programa muito útil pras aulas de física que economiza a mão calculando (já em notação científica) a fórmula F = G * m1*m2/d12^2:

//Cálculo da Força da Gravidade

#include <stdio.h>

long double potencia(float base, int expoente) {
	long double res;
	int i;

	res=base;
	if (expoente==0) {
		return 1;
	} else {
		if (expoente>0) {
			for (i=1; i<expoente; i++) {
				res*=base;
			}
		} else {
			for (i=1; i>expoente; i--) {
				res/=base;
			}
		}
	}
	return res;
}

int main() {
	long double m1, m2, d12, resultado, g=6.7;
	int expoente;

	printf("---\n");
	printf("Cálculo da Força da Gravidade\n");
	printf("Programa escrito por Tiago Madeira para facilitar as aulas de física\n");
	printf("---\n\n");
	printf("m1\n");
	printf("Valor sem notação: ");
	scanf("%Lf", &m1);
	printf("Expoente do 10: ");
	scanf("%d", &expoente);
	m1*=potencia(10, expoente);
	printf("m2\n");
	printf("Valor sem notação: ");
	scanf("%Lf", &m2);
	printf("Expoente do 10: ");
	scanf("%d", &expoente);
	printf("%d\n", expoente);
	m2*=potencia(10, expoente);
	printf("d12\n");
	printf("Valor sem notação: ");
	scanf("%Lf", &d12);
	printf("Expoente do 10: ");
	scanf("%d", &expoente);
	d12*=potencia(10, expoente);

	resultado=g*((m1*m2)/(d12*d12));
	expoente=-11;

	while (resultado>10) {
		resultado/=10;
		expoente++;
	}

	while (resultado<0) {
		resultado*=10;
		expoente--;
	}
	printf("\n---\nResultado: %.2Lf . 10 ^ %d\n", resultado, expoente);

	return 0;
}

Esses programas são simples, mas exercitam um pouco a lógica (a função do MMC ficou bem legal no programa do kbruch, assim como a de potência pois o math.h não funciona aqui e também de notação científica no programa da gravidade. A coisa mais legal desses programas é que eu (e quem lê eles) percebe como eu penso pra fazer essas operações relativamente simples no dia-a-dia… :)

O programa do cálculo da força de gravidade é a primeira vez em que eu uso um double (é porque tem uns números muito grandes). ;)

Tá difícil programar e ler porque os livros da rede salesiana são bem puxados (na verdade, só o de biologia, mas os professores passam muita tarefa. Isso é um absurdo!), mas acabei de ler o “Capitães de Areia”, que tava ótimo. Acho que durante as aulas, até tudo se regularizar, só vai dar pra postar final de semana mesmo… :lol:

© 2005–2020 Tiago Madeira