Instalando winprinters no Slackware

Este artigo é um pouco velho (de janeiro deste ano) e foi originalmente postado no SOSPHP. Mas percebi que ainda não tinha colocado ele aqui no site (na época em que escrevi ainda nem tinha o site). Já que eu tô sem HD e, por causa disso, sem fazer nada de útil/novo no computador, resolvi colá-lo aqui. Não mudei o texto e nem re-testei a dica. Qualquer coisa, comentem.

Baseando-me num problema recente que tive com a minha HP Deskjet 820Cxi que é uma winprinter (a diferença entre ela e uma impressora normal é como a de modem e winmodem) que usa PPA ao invés do PLD das HPs (e que é um sistema muito pior – coisa que não sabia quando comprei – e inclusive eles já pararam de fabricar esse tipo de impressora), resolvi escrever esse pequeno artigo que é meio que uma tradução deste site porque não consegui encontrar material em português sobre a instalação de winprinters (consegui encontrar, mas só notícias ruins sobre ela e maneiras que não davam totalmente certo).

Algumas distros (acho que o Kurumin e o Knoppix) já possuem suporte nativo para essas impressoras, mas no meu Slackware não foi mole instalar.

Esta receita foi testada somente no Slackware 10 (testei com o Kernel 2.6.9, mas acho que funciona com a série 2.4 também) e não tive problema algum seguindo estes passos.

Este artigo serve para instalar as impressoras:

  • HP Deskjet 710C
  • HP Deskjet 720C
  • HP Deskjet 722C
  • HP Deskjet 820Cse
  • HP Deskjet 820Cxi
  • HP Deskjet 1000Cse
  • HP Deskjet 1000Cxi

E para instalar a impressora você precisará: (clique no link para entrar na página dele e fazer download)

Instalação em alguns passos:

  1. Baixe e instale todos os arquivos dos locais descritos acima. Na maioria dos Linux, já tem Ghostscript e CUPS.

    O pnm2ppa precisa ser compilado usando # make e # make install. Daí vá em /etc/pnm2ppa.conf e altere o valor da primeira variável que aparece no arquivo (VERSION=0) para a versão da sua impressora (no meu caso VERSION=820)
    O driver CUPS PPD da impressora deve ser baixado e copiado para sua pasta de modelos da CUPS (no meu Slackware é /usr/share/cups/model)
    Os foomatics precisam ser copiados para /usr/local/bin e depois linkados na pasta de filtros do cups (# ln -s /usr/local/bin/foomatic-rip /usr/lib/cups/filter/foomatic-rip e a mesma coisa com o outro)

  2. Inicie o daemon do cups escrevendo # cupsd no console e abra no Firefox, Lynx ou qualquer browser de sua preferência o endereço http://localhost:631.
  3. Adicione a impressora (a localização é /dev/lp0, /dev/lp1… ou no meu caso foi smb://windows/hp820c porque tá configurada no meu Windows 98; o nome pode ser o de sua preferência – sem espaços – coloquei hp820c)

Se tudo tiver dado certo, quando chegar na parte de driver vai existir lá o driver da sua impressora e a instalação vai sair sem problemas.

Biologia, Torres de Hanói, Long Double, Mandriva e Expressões Regulares

Hoje fiz uma prova de biologia. Minha média em biologia estava em 7,93 (8 em um trabalho, 5,8 em uma prova, 10 em participação) e acho que com essa prova vai continuar na mesma, se não piorar. Acredito que eu vá tirar no mínimo 8,5 nessa prova e no máximo 9,5. Pelo menos foi melhor que na outra em que eu tirei 5,8. Bom, só pra não parecer que eu sou burro, minhas notas nas outras matérias nas provas que eu recebi essa semana foram:

  • 10 em inglês
  • 10 em português (e mais 10 numa redação)
  • 10 em matemática
  • 10 em geografia
  • 10 em história
  • 9,5 em química (e mais 10 num trabalho)
  • 9,5 em física

Hmmm… Acho que dá pra perceber que meu problema é biologia mesmo…

Sinceramente, eu odeio essa matéria. Nas outras disciplinas a gente aprende e desenvolve raciocínio lógico. Biologia é só uma decoreba. Não compreendo qual é a utilidade de saber a função das bactérias para nossa vida ou, como um enunciado da prova dizia, “Se você capturasse exemplares de piranhas no Pantanal Mato-grossense, o que você faria pra descobrir de que cadeia alimentar elas fazem parte com base somente nesses exemplares?” Qual a utilidade disso aí? Se eu quisesse ser biólogo até beleza, mas isso aí é inútil. Em matemática, aprendemos coisas úteis. Em biologia, só aprendemos coisas assim… Se ainda fosse como ano passado onde estudávamos atualidades biológicas como células-tronco, AIDS, DSTs, Gripe do Frango, etc., tava ótimo mas esse ano tá um “saco”.

Acho que essa gente que gosta de biologia só pensa no vestibular ao dizer que ela é útil… O básico dela até pode ser útil, mas metade do que a gente aprende na escola de biologia não é útil.

Bom, parando de falar sobre isso… Vamos para as Torres de Hanói

Ontem eu deixei o laptop a noite inteira fazendo as Torres de Hanói com 30 pinos. Utilizando o algoritmo que está implementado em torresdehanoi.c o programa ficou 728 minutos (12 horas) testando e não conseguiu chegar a um fim. Com outros testes, consegui os seguintes tempos:

  • 10 pinos – 0 s
  • 15 pinos – 1 s
  • 20 pinos – 20 s
  • 25 pinos – 20 min
  • 30 pinos – mais de 12 horas

É assombroso a maneira com que vai aumentando…

Bom, utilizando o tipo long double do C eu fiz a conta de 2^64 para ver o custo da “Lenda de Brama” (é esse o nome?)

2^64=18.446.744.073.709.551.616

Ou seja, 18 quinquilhões e meio… Isso é muita coisa.

O interessante é que eu nunca tinha usado o long double com números tão grandes e então fiz alguns testes. Eu cheguei ao resultado de 2^1000, 2^10000 e cheguei a conclusão de que o último número que ele consegue escrever sem dizer que é inf (infinito?) é 2^16383, ou seja, 2^(2^14-1). Saiu umas 40 linhas no console, é muito grande!

Hmmm, demonstrei mais alguns teoremas como a Relação Fundamental da Trigonometria (usando o teorema de Pitágoras – basta dividir os dois lados por a^2), fórmula de Bhaskara, o volume de um cubo inscrito numa esfera pode ser calculado através do raio da esfera, etc. (não lembro de todos). Na verdade, não fui eu que demonstrei. Demonstramos no treino da Olimpíada de Matemática. Eu, o Vavá e o Bruno.

A Mandrakesoft comprou a Conectiva, formando o Mandriva. Eu achei uma pena que uma distribuição importante do Brasil (a primeira) acabou assim. Ela foi muito importante no software livre do Brasil, da América Latina e do mundo. Porém, acredito que a distro Mandriva vai crescer e se popularizar. Quando sair alguma, eu queimo um CD pra testar.

Peguei a música Estrada do Sol (Tom Jobim) no piano (uma versão muito boa escrita por Paulo Jobim e disponível no site www.tomjobim.com.br) e estou pegando Falando de Amor. Assim que der tempo, eu queria gravar algumas músicas que eu toco pra colocar aqui…

Acabei de ler o livro do Aurélio sobre expressões regulares e aprendi bastante coisa interessante. Expressões Regulares são MUITO úteis!

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