Utopia – Introdução

Após cerca de quase dois anos, volei a jogar Utopia, um jogo de estratégia online. Nele você recebe uma província ("pedaço de terra") dentro de um reino, junto com até outros 24 jogadores, cujo objetivo pode ser tornar-se o reino ou a província mais poderosa. Durante o jogo, seu reino pode entrar em guerra com outros reinos, se aliar, etc.

O jogo possui poucos (nenhum?) gráficos, sendo basicamente textual, com muitas fórmulas numéricas. Por exemplo, para cada 1% da área de sua província que é ocupada por quartéis (barracks), o tempo de ataque é reduzido em 1.5%. Por falar em tempo, o mundo de utopia passa de acordo com o tempo real. Cada hora real equivale a um dia "Utopiano". Cada dia real a um mês, e cada semana real equivale a um ano utopiano. Os ataques costumam durar cerca de alguns dias (utopianos).

Logo que cria a conta, o usuário deve escolher a raça (Humanos, Orcs, Mortos-vivos, elfos, etc…) e a personalidade (Guerreiro, Místico, Mercante e outros). Tanto a personalidade como a raça influenciam no decorrer do jogo, com bônus e penalidades. Os mortos-vivos, por exemplo, não precisam de comida (ao contrário dos anões, super gulosos), em compensação, não conseguem usufruir tanto de pesquisa científica como as outras raças.

São justamente essas penalidades e bônus que abrem opções para várias estratégias. A cada era ("round" de jogo), que duram em média 3 a 4 meses, ocorrem modificações nessas regras, de forma a balancear mais o jogo.

Para testes, há um servidor (Genesis), cuja principal diferença para o World of Legends (WoL, servidor principal) é o fato dos reinos não permanecerem juntos a cada era. No WoL existe a opção de no final de cada era o jogador permanecer com a equipe. Ainda há um outro servidor em que após o começo da contagem do tempo é proibido a criação de novas contas e os reinos se enfrentam em batalhas até que apenas um sobreviva.

Mas o principal aspecto de Utopia é a interação entre os jogadores. Para pelo menos sobreviver, o jogador deve cooperar com os outros jogadores com o reino. Lembrando os três mosqueteiros, "Um por todos, todos por um". Dessa forma, comunicação é fundamental. Várias ferramentas são usadas, desde fóruns a programas como ICQ, MSN messenger, IRC, etc. Mas a principal ferramenta para 99% dos jogadores é o Angel.

O Utopia Angel é um programa que automatiza o cálculo das (muitas) fórmulas dentro do Utopia. Ele fica na barra de utilizários (system tray, junto do relógio) e toda vez que o conteúdo de uma das páginas do utopia é copiado (selecionando tudo na página e copiando), ele reconhece automaticamente e insere os dados, lançando a calculadora/visão correta. Por exemplo, se você copia as informações fornecidas a partir de uma operação de espionagem (mágica ou ladrões), a calculadora de combate é aberta. O Angel é atualizado constantemente para se manter em dia com as modificações ou novas descobertas nas fórmulas. Outra função interessante é a opção de enviar dados para serviços online, possibilitando rápido compartilhamento com os colegas de reino e acompanhar a evolução de várias províncias. Definitivamente, um "must-have" de Utopia.

Anúncios

De volta ao GNOME + (quase) computador novo

Após alguns meses usando o KDE, resolvi mudar novamente para o GNOME, apesar de continuar usando alguns aplicativos do KDE (kppp / amarok / kopete). Ainda bem que até hoje não criei nenhuma "dependência" em relação a ambos. Vez por outra eu uso até mesmo o Fluxbox. No momento estou usando o Freerock GNOME 2.10, mas durante essa semana eu devo baixar o 2.14 (unstable) e testar. 

Dentro de algumas semanas eu devo pegar uma máquina nova. Por enquanto estou pensando num +- 2GHz (AMD…) com 1.5 GB de RAM e 120 de disco (80 + 40). Quanto ao software, provavelmente vou ficar no dual boot com Windows (convênio da faculdade) e alguma distribuição Linux (Gentoo?).

10 passos para garantir o fracasso

Link original (inglês)

  1. Torne seus objetivos vagos.
  2. Torne seus objetivos difíceis de vizualizar.
  3. Pense e fale negativamente sobre seus objetivos.
  4. Evite planejar passos incrementais.
  5. Não faça – fale.
  6. Espere até estar motivado.
  7. Não marque uma data.
  8. Liste porque é impossível.
  9. Não pesquise sobre seu objetivo.
  10. Pense em qualquer coisa exceto seu objetivo.

Novo período na faculdade

Próximo sábado começará a matrícula para o meu curso. Por enquanto pretendo concentrar as disciplinas pela manhã (Por isso que Infomática Teórica está como "em dúvida. É na quarta entre 16:00 e 18:30…).

"confirmadas": Física 3 / Sinais e Sistemas / História e Futuro da Computação

Em dúvida: Implementação de Sistemas Operacionais / Gestão de Negócios / Informática Teórica / Agentes Autônomos

Update: Física 3 / Sinais e Sistemas /História e Futuro da Computação e Paradigmas de Linguagens Computacionais.

“Virose”

Ok, primeira doença de “verdade” do ano. Desde ontem venho sentido dor de cabeça e enjôos. Tomara que não seja nada demais e que até sexta esteja bem melhor (A banda do meu irmão vai participar de um show em Paudalho).

update: Apenas alarme falso. Quarta à noite mesmo já estava totalmente recuperado. =)

BasKet for KDE

Finalmente fiz uma contribuição "visível" para um projeto de software livre, o "BasKet", uma espécie de "cesta" para dados como imagens, links, anotações, etc.

O problema estava quando o usuário arrastava uma nota (um item) para ela própria, no modo free-form. Às vezes apenas a nota era apagada e outras vezes o programa travava. Como instalei a partir do código fonte, recompilei com todas as informações de debug e passei a fuçar atrás da causa, mesmo sem saber C++, muito menos Qt/KDE.

Minha primeira tentativa foi a própria janela de debug que o BasKet fornece. Ela mostrou alguma informação, mas também travava junto com o programa. Então passei p/ gdb, criando um breakpoint numa função relacionada à ação de arrastar com o mouse, o que também não funcionou porque o evento do mouse era perdido quando chegava no breakpoint.

Então, rodei sem nenhum breakpoint e quando o programa travou interrompi o mesmo. Após algumas tentativas, e sabendo que ao travar ele atingia 100% de processamento, percebi que ele travava ao entar adicionar uma nota no final de uma fila. O que acontecia era que ao inserir/adicionar uma nota, ele percorria a lista atrás da última nota, algo como "note_tmp = note->next". Como note nunca receberia o valor null (note->next é igual a note), loop infinito…

Após essa "pesquisa", enviei os dados e meu diagnóstico para o mantenedor do projeto e já está no ar uma versão nova corrigida. \o/

PS: Próximos passos: Aprender Qt/KDE/C++

Aprendendo a cozinhar em casa

Que cozinhar em casa é mais econômico que comer fora, isso não é novidade, mas por onde começar? O blog Getting Rich Slowly (dicas sobre como economizar dinheiro) tem um post com dicas e referências para aquelas pessoas que sempre quiseram aprender a cozinhar mas não sabem por onde começar. Algumas das dicas:

  • Comece devagar, um ou dois dias por semana.
  • Receitas simples e ingredientes simples
  • Abordagem "Taco Bell": Mesmos ingredientes, receitas diferentes.

Hora de começar!

“Trabalhar” de casa? Ou não?

Uma das coisas boas da minha área (informática) é que é relativamente fácil conseguir trabalhar à distância, sem necessidade real de presença física (Quanto a trabalho eu me refiro tanto a trabalho "formal" como trabalho "voluntário" (software livre & cia)). Isso é muito bom, desde que você consiga trabalhar sem se distrair com atividades "caseiras".

Outro motivo muito forte, pelo menos no meu caso, é a questão de infra-estrutura. Uma coisa é você trabalhar no seu computador, 100% personalizado, com seus arquivos e tudo mais. Outra coisa é você trabalhar num computador compartilhado, com profiles dinâmicos e tudo mais. E ainda mais usando sistemas completamente diferentes (Linux em casa, Windows na faculdade). Enquanto em casa todos os programas estão instalados, na faculdade tem todo o processo de instalar as bibliotecas, realizar o checkout no CVS/SVN, etc…

Outro fator é a disponibilidade dessa infra-estrutura. Em casa eu (ainda) não tenho um computador próprio, divido um com o meu irmão. Mas a divisão de tempo é tranqüila, normalmente eu durante o dia e ele à noite. Já na faculdade é um ambiente "competitivo", onde temos menos computadores que usuários. Nessa época de férias entre períodos esse problema é até menor, mas ainda assim existe, já que aproveitam os melhores laboratórios para realização de outros cursos. Quando é final de período, com praticamente todo mundo terminando projetos (ou jogando…), é um inferno. A solução é comprar um notebook ou chegar antes de 08:00.

Como disse antes, um dos principais problema ao se trabalhar em casa é a interferência de atividades caseiras no trabalho, já que, afinal de contas, você vai estar em casa. É uma ida na cozinha de 15 em 15 minutos, as crianças brincando pela casa, você se lembrando que tem que consertar algo, etc.

Quase todos os livros, artigos, sites, etc. que já vi sobre o assunto têm em comum a seguinte recomendação: Apesar de estar fisicamente em casa, você precisa ter em mente que "não" está em casa. Ou seja, sua mente e energia têm que estar 100% focados no trabalho. De certa forma, essa é um dos objetivos do método Getting Things Done, fazer com que você deposite a energia necessária em cada momento, evitando que outras "tralhas" venham a sugar essa energia nesse momento.

Entre algums dos conselhos mais comuns, está o de vestir-se como se fosse ao trabalho. Pelo menos até onde testei, esse realmente faz diferença. Uma coisa é você sentar-se na frente do computador pela manhã de pijama, e outra é você tomar um banho, fazer todo o "ritual" de ir para o trabalho, mesmo trabalhando em casa. Esse "ritual" o ajuda a desligar sua mente da casa (principalmente da cama…) e voltar-se para o trabalho.