Ainda estou vivo…

Escrevo este post só pra dizer que ainda não morri. Embora eu esteja sem inspiração nenhuma pra escrever, eu juro que estou tentando. Comecei três artigos para a Série Algoritmos e tentei fazer de tudo para explicar a busca em profundidade de uma maneira legal, mas por não conseguir fazer nada muito surpreendente é que a série está parada há seis meses. Mas não pensem que a esqueci…

Ando lendo muito mais do que antes; a blogosfera anda bem agitada… No início, achei até que isso podia me ajudar a escrever, mas está tornando mais difícil. Os feeds que eu assino já são tão bons! Não gosto muito de copiar uma coisa e fazer um comentário mínimo, até porque isso eu estou fazendo no meu novíssimo del.icio.us, então acabo sem escrever nada. Aliás, sobre o del.icio.us, confesso que antes eu não gostava desse serviço (não me perguntem por quê), mas agora venho percebendo que esse serviço é fascinante…

Estou esperando o Slackware 11 desde o começo de julho. Ele está “pra sair” há um tempão! Ando conferindo o changelog umas três vezes por dia esperando uma grande novidade, mas nada além das habituais mudanças. =(

Por falar em Linux, vai haver um evento muito legal nesse ano aqui em Santa Catarina, em Florianópolis. O IV Encontro Nacional Linuxchix Brasil vai ter umas palestras muito interessantes, entre elas uma sobre o udev com o Piter Punk, aquele cara power do grupo de usuários do Slackware no Brasil que está sempre contribuindo para fazer meu sistema preferido melhor do que ele já é. =) Pra quem mora aqui, esse evento é imperdível.

Entrei numa aula de piano… Eu já estava há uns sete anos sem estudar formalmente; Essa aula está sendo bem legal para eu ter um pouco mais de técnica, ter uma rotina de estudo musical melhor e aprender um pouco de música erudita.

Comecei a estudar inglês. Ler um texto na internet tudo bem, mas estou estudando porque quero falar inglês de verdade. O motivo não é levado muito a sério pelas pessoas com quem eu comento, mas eu estou querendo muito me graduar nos Estados Unidos, no MIT. Eu sei que é difícil, mas isso é mais um bom motivo para eu tentar… Adoro desafios… =) O máximo que pode acontecer é eu ser rejeitado, mas mesmo assim valeria a pena porque esse plano teria servido de motivação para eu aprender a falar inglês (por causa do TOEFL), estudado matemática e à física (por causa do SAT*) e ainda sonhar um pouco com um local legal de se estudar, um local que me faça estudar (putz, tenho tido cada aula por aqui…). Além de tentar o MIT, pretendo tentar entrar em Berkeley e em Stanford. Se nada der certo, mesmo assim vou ficar feliz na UNICAMP. =)

* Não coube no último parágrafo, mas preciso comentar que na verdade não é o SAT que vai me fazer estudar muito não… O SAT de matemática parece ser ridículo. Eu peguei umas questões para praticar no próprio site deles e “gabaritei” em alguns minutos.

Estou tentando projetar um design pro meu site há algum tempo (quase desde que o atual foi pro ar). Essas cores atuais não ficaram boas nos monitores normais. Acontece que, no laptop, eu vejo elas as vejo um pouco diferentes… Aí, já que eu fiz nele, é nele que elas ficam mehores. O problema é que só percebi essa diferença depois de publicar… De qualquer maneira, serviu para eu aprender uma lição óbvia: Sempre teste um design em mais de um monitor.

Por último, me desculpem por ficar esse tempo todo sem escrever e começar com um relato sobre a minha vida pessoal que não deve importar muito para ninguém… =) Prometo que o próximo post vai ser mais interessante!

Resumão

Segunda Fase da OBI2006

Sábado foi a OBI em Blumenau. A prova estava cansativa e difícil pra caramba… Na minha opinião, o nível de dificuldade foi semelhante a da Seletiva para IOI do ano passado.

Fui muito mal, mas pelos comentários parece que ninguém foi muito bem. Essa espera pelo resultado vai ser longa… Hehehe… Teve gente que não me interpretou direito, então vou falar de outra maneira: Estou ansioso pelo resultado, por isso as duas semanas vão demorar pra passar.

Resposta à Veja

Não posso deixar de linkar esse ótimo artigo do Falcon Dark (assinem o feed desse cara… tudo que ele escreve é excelente!): Para o público e o privado sem ideologismo. Ele comenta sobre a reportagem da Revista Veja de 17 de maio de 2006, página 68, O grátis saiu mais caro.

O Laptop do Reinaldo

Instalei GNU/Linux (Slackware) no laptop do Reinaldo. Um Pentium 3 900mhz, 128 mb ram, 6 gb de HD; que tá com uma performance legal agora, sem o Windows XP que possuía (ou melhor, que o possuía).

O legal é que a placa de rede do laptop era PCMCIA e o CD e o disquete não funcionavam direito! Foi uma experiência única e desesperadora… :) Hehehe…

Consegui bootar por um CD velho do Slackware 10.0 (o drive de CD só conseguiu ler esse CD de todos que eu tinha aqui) e só deu pra instalar a série A (os pacotes mais básicos). O resultado foi um sistema sem absolutamente nada (andei até perguntando pro Lorn se tinha como configurar rede sem ifconfig… hehehe). Depois de dois dias, quando quase estava indo entregar para o Reinaldo o laptop destruído (sem sistema operacional), lembrei que tinha um velho zip-drive externo USB aqui em casa. Pluguei, montei e funcionou! Aí consegui instalar a série N (Network) e a AP (aplicações básicas) para conseguir ver o meu computador na rede e copiar o Slackware 10.2 inteiro.

Finalizado esse passo, reiniciei o computador bootando pelo CD do Slackware 10.0, deletei tudo do HD (com excessão exceção do CD do Slackware 10.2 que eu tinha copiado) e consegui fazer a instalação. O computador tá excelente agora, com uma performance impecável! :D (usando XFCE como gerenciador de janelas)

Desafio Nacional Acadêmico

Esse ano vai acontecer pela primeira vez o DNA. É um dia com várias provas (segundo eles, quase impossíveis) solucionadas pela internet por equipes de cinco componentes. Tem prêmios para os três melhores colocados e já inscrevi minha equipe. A inscrição custa R$ 50,00. Quem puder, participe! É uma oportunidade legal…

Um pouco de tudo

Hoje é dia 21… Faltam 4 dias pro natal. Dia 24, vou viajar pra Floripa e não vou voltar para casa provavelmente até provavelmente 2-5 de janeiro.

Estou de férias, em casa, sem nada pra fazer. Eu fiz uma besteira no meu Slackware (com objetivos experimentais) e acabei desinstalando um monte de bibliotecas dele. A partição do Windows ficava com as músicas e já tava meio pesada, então aproveitei pra formatar tudo. Nova tabela de partições:

  • hda1, 10gb, FAT32, músicas apenas
  • hda2, 14gb, FAT32, Windows XP
  • hda3, 500mb, Linux Swap, swap
  • hda5, 500mb, ReiserFS, /boot
  • hda6, 5gb, ReiserFS, nada por enquanto
  • hda7, 6gb, ReiserFS, Slackware (/)
  • hda8, 5gb, ReiserFS, nada por enquanto

Deixei dois espaços estratégicos em branco pra instalar distribuições para teste ou simplesmente fazer experiências (ao invés de desinstalar as libs do Slackware oficial, eu desinstalo as delas! hehehe).

O pior é que quando eu particionei e comecei a instalação do Slackware, eu percebi que o disco tava totalmente riscado e não funcionou aquela instalação. Então instalei primeiro o Windows e dele baixei o ISO do Slackware.

Como sempre, perdi mais tempo personalizando o Windows do que o Slackware, até porque já tô mais acostumado com o Linux. Aí eu aproveitei um pouco as férias, instalando o Age of Empires II (um jogo de estratégia da Microsoft) e tentei emulá-lo no Linux, mas ainda não consegui fazer dar tudo certo.

Pra completar, meu desktop deu pau no HD. Estamos rodando só lives, criei até um script para configurar rede, compartilhar internet e redirecionar algumas portas pro laptop.

Ahh.. E chegaram meus 20 cds do Ubuntu que eu pedi há dois meses! :)


Coisas que tenho lido

Lista de Presentes

Se você quer muito me dar um presente, mas não sabe o que, essa é a solução!

  • iPod 30gb (ou mais, porque menos que isso não cabe minhas músicas)
  • Máquina fotográfica digital
  • HD de 80gb+ para desktop ou laptop HP Pavilion ze4610us

MRxvt e Controle Anti-flood

Formatei minha partição Linux e instalei o novo Slackware 10.2 para ver quais eram as novidades…

Ainda estou configurando o sistema, mas ele já está bastante estável, com Kernel 2.6, Grub, XDirectFB em desenvolvimento e hoje testei um programa que merece um post especial aqui no blog chamado MRxvt. É um terminal que abre na velocidade do Xterm, mas tem os recursos do Konsole do KDE! Hehehe… :D Abas, transparências, entre outras coisas de uma forma leve que eu nunca tinha visto. Eu descobri o programa quando eu e o Thotypous estávamos pensando em baixar o source do Gnome-Terminal e tentar modificar para deixar bem levinho e só com abas, ou pegar o xterm e implementar abas… :) Mas esse programa é simplesmente fabuloso. Acabou com nossos problemas… Baixem aqui!

O Hélio (a.k.a. hlegius) me deu uma idéia bastante útil que é um controle anti-flood para os comentários do meu site… Já implementei usando sessões… Valeu Hélio!

Bom… Por enquanto é só! ;) Resolvi agora postar mais aqui, e fazer posts menores. Fiz várias mudanças aí no lado direito do site nos últimos dias (e no meio também), deixando o site mais semântico além de mais atualizado e “correto”. Também atualizei a minha biografia (colocando até o MRxvt) e acho que vou dar uma reformulada no sistema de BBCode (ER) do meu blog, porque quando eu coloco um código depois não funciona mais os emoticons embaixo dele.

De volta à resolução de problemas

Resultado do Superprime Rib

Hoje, depois de umas férias de dois meses, resolvi um problema lógico do USACO Training Gateway: o Superprime Rib é um problema bem simples em que precisa-se determinar os primos de N dígitos (com N máximo = 8 ) que, tirando o último dígito, continuam sendo primos. A solução é trivial, uma função recursiva bastante simples que se auto-explica no meu código:

//Superprime Rib - USACO Training Gateway - 2005

/*
ID: contato1
PROG: sprime
LANG: C
*/

#include <stdio.h>
#define NMAX 9
#define INFINITO 100000

int primos[NMAX][INFINITO], cont[NMAX];

int eh_primo(long int num) {
	int i;

	if (num==1||(!(num%2)&&num!=2)) {
		return 0;
	}

	for (i=3; i*i<=num; i+=2) {
		if (!(num%i)) {
			return 0;
		}
	}

	return 1;
}

void funcao(int n) {
	int i, j, num;

	cont[n]=0;

	if (n>1) {
		funcao(n-1);

		for (i=0; i<cont[n-1]; i++) {
			for (j=1; j<=9; j+=2) {
				num=primos[n-1][i]*10+j;
				if (eh_primo(num)) {
					primos[n][cont[n]++]=num;
				}
			}
		}
	} else {
		primos[1][0]=2;
		primos[1][1]=3;
		primos[1][2]=5;
		primos[1][3]=7;
		cont[1]=4;
	}
}

int main() {
	int n, i;

	FILE *in=fopen("sprime.in", "r");
	FILE *out=fopen("sprime.out", "w");
	fscanf(in, "%d", &n);
	fclose(in);

	funcao(n);

	for (i=0; i<cont[n]; i++) {
		fprintf(out, "%d\n", primos[n][i]);
	}
	fclose(out);

	return 0;
}

O problema passou de segunda porque na primeira, por falta de hábito, eu tinha colocado scanf e printf ao invés de usar o sistema da USACO onde deve-se usar arquivos de entrada e saída.

Agora para eu ir para a seção 2 do USACO Training Gateway falta só o programa Checker Challenge, que parece ser complicado.

Instalei os pacotes do Slackware 10.2, que saiu essa semana, no laptop. Não tem nenhuma grande mudança, mas é sempre bom estar com os programas atualizados…

O Paulo Matias (Thotypous) me convidou para fazer parte da equipe de desenvolvimento da distro Guaranix, consertando alguns bugs do XDirectFB (que eu citei aqui). Acho que irei pegar um trabalho com a Meetweb também (o Hugo Dias, para quem eu fiz o serviço da Coalizão Antituberculose me convidou) e estou acabando o site do Colégio Salesiano, que é totalmente administrável em PHP e usa um banco de dados MySql. Ele deve sair semana que vem…

Dia 24 é a segunda fase da Olimpíada Regional de Matemática. Essa semana fiz a folhinha de treinamento e dos seis problemas, consegui fazer cinco (na verdade, alguns problemas - ou todos - eram repetidos do ano anterior e por isso fica mais fácil, porque eu já lembrava o caminho).

© 2005–2020 Tiago Madeira