Windows Live Messenger

Segundo a Microsoft: O Windows Live Messenger será a próxima geração do MSN Messenger. Ele terá tudo o que você adora no Messenger – sua lista de contatos, seus emoticons, acesso imediato a seus amigos por texto, voz e vídeo, além de incríveis novos recursos para se conectar e compartilhar arquivos com seus contatos. E como sempre, você poderá fazer download e usar gratuitamente a maioria dos recursos.

Eu fui convidado pra testar o primeiro Beta dele e agora posso convidar cinco pessoas para testarem o negócio também. Não tenho pra quem dar os convites; portanto, se alguém quiser, poste um comentário!

Avaliação

Minha avaliação feita em cinco minutos de uso, só conseguindo testar o programa falando com meu irmão do meu lado (era de manhã cedo… hehehe)

  • Design: 2/5 – A Microsoft teve um péssimo gosto. Verde com laranja, uma coisa bem estranha. De qualquer maneira, se você tiver um Windows todo com essas cores até que fica “legal”. Tem uns sombreados e degradês legais. :) Acho que não combina com o meu Windows estilo clássico (ao menos é um WinXP ultra-leve). Mas eu acho que dá pra mudar essas cores, depois vou postar um novo screenshot se conseguir deixar ele “bonito”. :D
  • Novidades: 4/5 – Eu gostei da idéia do compartilhamento de arquivos do novo mensageiro. O plano deles é você poder compartilhar uma pasta inteira e outro usuário poder pegar arquivos dela. Não sei como ninguém pensou nisso antes… Hehehe… Fora isso, não teve nada muito inovador.
  • Usabilidade: 3/5 – É interessante quando você clicar numa pessoa aparecer ícones embaixo dela (essa idéia foi meio copiada do Google Talk, mas tudo bem…). Também gostei da maneira de procurar seus contatos em uma barra que tem em cima da lista (só serve pra você procurar nos seus contatos existentes). Humm… Porém, ainda não se compara ao nosso bom e velho ICQ. :) Eu achei o programa meio “pesadão” e o design dele colabora pra não dar muita vontade de usar… Hehehe

KDE 3.5 e DCOP

Ontem eu baixei e compilei o QT 4.1 e o KDE 3.5 aqui no laptop. Com todo mundo falando do Konqueror e seu maravilhoso suporte aos padrões web, isso era uma coisa que já tava na minha lista há algum tempo. Ontem foi a primeira vez que usei por padrão o KDE na minha máquina desde mais ou menos um ano, quando comecei a usar Fluxbox.

O KDE está muito legal. Muitas melhorias, menos bugs e um design bem mais “chique”. Os desenvolvedores estão fazendo um trabalho muito bom e não consigo deixar de pensar como será o KDE 4.

Aí eu acabei (espero) meus dois freelas que estavam em desenvolvimento e resolvi fazer uma aplicação Ajax para qualquer pessoa poder controlar meu amaroK. Óbvio que eu não quero que as pessoas controlem meu amaroK, mas depois de ter lido um pouco sobre dcop eu precisava fazer algo assim.

E, hoje de manhã, em menos de uma hora, a aplicação ficou pronta. Ela com certeza não é segura (só pra vocês terem noção do drama, eu permiti sudo ao usuário do Apache, hehehe) e ainda nem tá bonita nem boa o suficiente, mas foi só pra brincar um pouco.

Vou estudar um pouco mais sobre isso e depois quando eu tiver um código bem bonito, eu publico aqui. :D


Ontem resolvi um problema do USACO Training Gateway (não sei por que só um… Deu vontade na hora e depois eu cansei… hehehe) e já publiquei aqui: namenum.c. O nome é Name that Number e ele é sobre permutações. Se quer ler o enunciado, entre lá no USACO Training Gateway. :) Ah, o motivo de eu só ter resolvido ele agora (porque ele é de uma das primeiras seções lá) é que eles só colocaram esse problema agora. Quando eu tinha passado pela seção dele antes, ele ainda não existia.

Vejam só que boa notícia: GoogleTalk se integra à rede Jabber! Finalmente, né? Não sei porque o GoogleTalk já não começou assim…

No mais, nada mais. Devo publicar mais um artigo da série Algoritmos em breve (talvez hoje mesmo), já tive umas idéias… ;)

Mensageiros Instantâneos, OBM, Novos Programas, Música

Em primeiro lugar, venho por meio deste post comunicar que não uso mais MSN Messenger. O mensageiro instantâneo da Microsoft saiu da minha lista de contas do CenterICQ para a entrada de dois novos e melhores: IRC e GoogleTalk/Jabber. Cheguei a conclusão de que quem quer falar comigo deve usar o que eu uso e não ao contrário, por um motivo óbvio: o meu é melhor que o deles.

Esta decisão fez com que eu perdesse centenas de contatos, mas acho que foi a decisão certa a ser tomada. Quem quiser me contatar agora, pode me adicionar no ICQ como 147330555, GoogleTalk como tmadeira em gmail.com e no IRC/Freenode, como tiagomadeira.

O segundo ponto importante deste post é o anúncio da OBM, Segunda Fase. A prova acontecerá no sábado que vem, dia 03 de setembro. Acho difícil eu conseguir medalha nesse ano (Terceira Fase é difícil!), mas vou tentar me esforçar o máximo possível… Esta semana tivemos o treino para olimpíadas com o Vavá, aprendi algumas coisas úteis. E ontem conversei com o César Kawakami no ICQ que me deu umas dicas interessantes também sobre Teoria dos Números. Vou tentar aprender alguma coisa sobre isso nos próximos dias…

As aulas de matemática dessa semana foram pouco produtivas porque eu andei faltando algumas para a divulgação do fórum do colégio. Então, só deu pra fazer dois problemas: a implementação da Máxima Subcadeia Comum (LCS/Programação Dinâmica):

//LCS - Longest Common Subsequence
//Programação Dinâmica - MSC - Maior Subcadeia Comum

#include <stdio.h>
#define SMAX 1001
#define DIAGONAL 1
#define LADO 2
#define CIMA 3


//n = tamanho de x
//m = tamanho de y

int c[SMAX][SMAX], b[SMAX][SMAX], n, m;
char x[SMAX], y[SMAX];

int lcs_recupera(int i, int j) {
	if (i==0||j==0) {
		return 0;
	}
	if (b[i][j]==DIAGONAL) {
		lcs_recupera(i-1, j-1);
		printf("%c", x[i]);
	} else if (b[i][j]==CIMA) {
		lcs_recupera(i-1, j);
	} else {
		lcs_recupera(i, j-1);
	}
}

int main() {
	int i, j;


	printf("LCS - Longest Common Subsequence\nPor Tiago Madeira\n\n");
	printf("Digite o tamanho da string X: ");
	scanf("%d", &m);
	printf("Digite o tamanho da string Y: ");
	scanf("%d", &n);

	scanf("%*c");
	printf("Digite a string X: ");
	for (i=1; i<=m; i++) {
		scanf("%c", &x[i]);
		c[i][0]=0;
	}
	scanf("%*c");
	printf("Digite a string Y: ");
	for (i=1; i<=n; i++) {
		scanf("%c", &y[i]);
		c[0][i]=0;
	}

	printf("\nPrograma raciocinando...\n");
	for (i=1; i<=m; i++) {
		for (j=1; j<=n; j++) {
			if (x[i]==y[j]) {
				c[i][j]=c[i-1][j-1]+1;
				b[i][j]=DIAGONAL;
			} else {
				if (c[i][j-1]>c[i-1][j]) {
					c[i][j]=c[i][j-1];
					b[i][j]=LADO;
				} else {
					c[i][j]=c[i-1][j];
					b[i][j]=CIMA;
				}
			}
		}
	}

/*	printf("\nMATRIX C\n");
	for (i=1; i<=m; i++) {
		for (j=1; j<=n; j++) {
			printf("%d ", c[i][j]);
		}
		printf("\n");
	}

	printf("\nMATRIX B\n");
	for (i=1; i<=m; i++) {
		for (j=1; j<=n; j++) {
			printf("%d ", b[i][j]);
		}
		printf("\n");
	}
*/

	lcs_recupera(m, n);
	printf("\n");
}

e um programa bem ridículo para calcular os termos e a soma de uma PA (é o que o prof. tá ensinando, aí achei bom pra fazer os exercícios mais rápido…):

//Aplicar as fórmulas das PAs

//Progressão Aritmética
//Programa desenvolvido por Tiago Madeira (c) 2005.

#include <stdio.h>
#define MAX 1000001

long double a[MAX], s[MAX];

int main() {
	long double r;
	int n;

	printf("Primeiro termo da PA: ");
	scanf("%Lf", &a[1]);
	printf("Razão da PA: ");
	scanf("%Lf", &r);

	//Eu podia fazer só pros que vão ser usados, mas não sei porquê, deu vontade de fazer assim... =)
	printf("\nAguarde o problema raciocinar tudo que ele tem para raciocinar...\n");
	for (n=2; n<MAX; n++) {
		a[n]=a[1]+r*(n-1);
		s[n]=(a[1]+a[n])*n/2;
	}

	printf("\nE agora, digite números para o programa dizer A e S dele.\n");
	do {
		printf("Número: ");
		scanf("%d", &n);
		if (!n) {
			break;
		}
		printf("Número na posição N = %.Lf\nSoma de 1 a N = %.Lf\n\n", a[n], s[n]);
	} while (n);

}

No começo do mês que vem é o Festival de Música de Itajaí. Acho que vou fazer oficina de Piano Popular avançado com o Prof. Michel Freidenson, que foi quem me deu aulas numa oficina semelhante há dois anos. A semana da música vai contar também com uns shows bem legais e o site oficial é este aqui.

© 2005–2020 Tiago Madeira