quinta-feira, 8 de novembro de 2007

Gutsy

Já o tinha instalado no computador do trabalho, mas por upgrade ao 7.4, ontem instalei em casa, mas de raiz. O gutsy gibbon parece-me a melhor versão do ubuntu até agora. O CD de arranque é rápido e a instalação durou a 2ª parte do jogo do Sporting. As aplicações que tive oportunidade de experimentar, como por exemplo o firefox e o totem, este último normalmente identificado como "movie player", têm uma excelente integração com o sistema, utilizando inclusive o synaptic para instalar coisas como o plugin de flash ou codecs em falta.

sábado, 27 de outubro de 2007

Everybody Else Is Doing It, So Why Can't We?

E é assim que começo a falar também do google pagerank. Em junho deste ano, coloquei online um site para um cliente (Pharmastore), cerca de um mês depois de registado o domínio e no dia seguinte ao ser ter sido colocado online, resolvi verificar o PR da homepage deste site. Qual não é a minha surpresa ao descobrir que esta tinha PR 5. Como o site não tinha conteúdos relevantes, era só um catálogo de produtos, contactei o dono do site para tentar perceber o que tinha acontecido. A conclusão a que chegamos é que provavelmente teria sido por ele ter começado uma campanha no AdWords.
Para tornar mais enigmática esta situação, um mês mais tarde coloquei online outro site, muito no mesmo género. Desta vez o Estética Online, este com um pouco mais de conteúdos mas também ele principalmente um catálogo online. O tempo ia passando e o site continuava sem PR atribuído. Para piorar as proporções da minha teoria da conspiração este não tinha feito campanhas no AdWords.

Agora com estas alterações estou convencido que o PR exagerado do primeiro site terá sido um bug do algoritmo de PR do google e que a demora de atribuição de PR ao Estética Online, bem como a outros sites que coloquei online depois, se deveu à actualização que o google estaria já a preparar.
Actualmente ambos os sites têm PR 3, e o Repeat Until Keypressed que tinha um PR 4 também baixou para 3.
O Games Online continua sem PR atribuído, o que acaba por ser positivo já que o site ainda está muito nu de conteúdos e se o PR demorar quase seis meses a actualizar como parece ter acontecido desta vez mais vale não estar classificado do que ter um 0, digo eu.

terça-feira, 16 de outubro de 2007

O baldinho

Foi, é ou vai ser uma iniciativa que incita a que os blogs escrevem um post relacionado com ecologia, pelo menos parece porque tenho visto vários blogs a falar do tema com um bannerzinho a dizer "blog action day" no final do post.

Por isso mesmo aproveito e falo de uma coisa que faço e que me parece ter uns resultados interessantes. Actualmente utilizo um balde onde recolho a água que sai do chuveiro antes de esta aquecer. Num dia, guardando essa água que sai fria antes de começar a tomar banho, em minha casa, duas pessoas, conseguimos recolher cerca de 10 litros de água. Essa água pode ser utilizada para regar plantas, descarregar autoclismos, lavar embalagens de iogurte para reciclar, ser colocada no recipiente de água para limpar os vidros do carro, etc...
Ao fim de um ano conseguiremos gastar menos cerca de 3600 litros de água, e junta-se o útil ao agradável poupa-se os € que iriam para a companhia das águas em troca de ter água a escorrer para o ralo enquanto olhamos para ela à espera que aqueça.

sábado, 13 de outubro de 2007

Questão aos leitores

O jogo que desenvolvi em forma de applet JAVA terá alguns bugs que conheço e outros que não conheço e na sua maioria tenho uma ideia do que fazer para os corrigir, sendo que alguns são mesmo só questões de usabilidade ou coisas que não foram ainda implementadas por opção (como por exemplo os highscores).

Mas...há um "bug" que já testei em 3 computadores diferentes e browsers diferentes e que acontece sempre e que não tenho a certeza se será meu ou da própria classe Applet. Este tipo de coisas costuma ser culpa do programador, mas o código em questão é tão simples que até fico em dúvida.

A questão é a seguinte, se eu colocar o seguinte código na minha aplicação:

private Font myfont;

...

myfont = new Font("Arial",Font.BOLD, 22);
gBuffer.setFont(myfont);
gBuffer.drawString("Hello World", 10, 10);

A primeira vez que executar este código a applet fica cerca de 20 segundos parada e só depois faz alguma coisa. Isto pode ser visto se depois de iniciar o jogo se entrar nos créditos (estes são feitos com um drawString) ou na área de jogo (os pontos e o tempo são feitos com drawString).
Já experimentei mudar a fonte e o resultado é o mesmo.

Será que alguém já se deparou com esta situação e tem alguma dica que possa partilhar?
Desde já agradeço.

sexta-feira, 12 de outubro de 2007

Os Jogos

Já coloquei online o primeiro jogo que desenvolvi nos últimos anos e que é também o primeiro programa que alguma vez desenvolvi em JAVA. O jogo foi compilado com o JAVA 1.5, quem tiver versões mais antigas não o vai conseguir ver. Entretanto pode ser que um dia eu consiga colocar as duas versões a funcionar no meu computador, actualmente a 1.4 que tenho foi instalada numa tentativa vã de fazer o tomcat funcionar, o que nunca se concretizou, por outro lado se invocar o compilador da versão 1.4 tenho erros que me parecem causados por o compilador estar à procura das libs nativas e encontrar as da versão 1.5 em vez das libs da versão 1.4.

Problemas do JAVA aparte, convém dizer alguma coisa acerca do site dos jogos. O site parece e de facto está incompleto e isso tem a ver com os objectivos e filosofia por detrás do site.
A ideia é eu e o tal amigo que referi e que também está envolvido no projecto como programador como se pode ver pelo blog dele, vamos desenvolvendo jogos por diversão. Para que os jogos não vão sendo abandonados a meio do desenvolvimento vamos-los publicando assim que eles estão minimamente jogáveis.
A área de notícias "news", deverá ter os anúncios dos projectos que vamos fazendo e também detalhes sobre o que falta fazer nesses projectos. As notícias mais recentes sobre cada jogo deverão aparecer na página do jogo. Essa área não funciona ainda porque o programador que está a fazer essa parte foi de férias e não chegou a terminar o software.
Algo parecido se passa com as notícias externas, mas desta vez tem a ver com o suporte python por parte do alojamento.

Em relação à área de jogos flash é possível que desapareça... ou não, já que outro amigo nosso, desta vez alguém com jeito para o desenho e com conhecimentos de flash se junto a nós como pode ser visto nos créditos do jogo que publiquei.

A filosofia do site segue a filosofia dos jogos, ou seja "não está pronto? não faz mal, publica-se à mesma e vai-se logando o desenvolvimento." para evitar o síndroma das coisas que ficam por fazer ad eternum. Neste momento como a secção de notícias ainda não funciona é difícil passar esta ideia, mas assim que funcionar todos os desenvolvimentos serão lá registados.

Common People

Para quem acha que sempre que o William Shatner abre a boca sai asneira, aqui fica um vídeo da magnífica versão que ele fez do Common People dos Pulp.

quinta-feira, 4 de outubro de 2007

Post Mix II



Desde que há uns anos o Scott Adams publicou este cartoon que frequentemente alguém mo faz voltar à memoria ao tentar "envenenar-me" expondo-me a um dos interfaces ali satirizados. Admito que os meus se enquadram nesta categoria, mas tenho tentado fazer por alterar esta situação. Hoje li um artigo sobre escolha de cores que me parece uma boa ajuda para minimizar os casos de envenenamento por exposição aos UI's feitos por mim.

Num tópico totalmente diferente, e para aqueles que estão mais interessados em tornar os seus UI's ainda mais tóxicos, podem sempre aprender uma nova linguagem ou melhorar os conhecimentos numa que já conheçam por alto.

Andava à procura de uns screenshots do Tetris original para PC, que é, para quem não se lembra, feito em modo texto, e encontrei uma página sobre o tetris orginal onde se pode fazer o download dessa mesma versão.

quarta-feira, 3 de outubro de 2007

Scribes

Tenho andado a usar o emacs nos últimos tempos e acho-o simplesmente espectacular. Mas hoje descobri um editor que é descrito como o "textmate" para python em Linux, o Scribes. Ainda não o experimentei mas este post é sobre a instalação e não sobre o editor em si.
Assim que comecei a tentar compilar em ubuntu tive um erro que já não é novidade, já me apareceu antes e é o seguinte:

$ sudo make
Making all in po
make[1]: Entering directory `/usr/local/src/scribes-0.3.2.9/po'
file=`echo de | sed 's,.*/,,'`.gmo \
&& rm -f $file && -o $file de.po
/bin/sh: -o: not found
make[1]: *** [de.gmo] Error 127
make[1]: Leaving directory `/usr/local/src/scribes-0.3.2.9/po'
make: *** [all-recursive] Error 1

Como se pode ver nos fóruns do ubuntu, a solução passa por instalar o gettext e voltar a fazer o:
$./configure
Mas... o erro continuava, muitos já terão percebido porquê, eis a solução:

$ make clean
Making clean in SCRIBES
...

$ ./configure

Neste ponto pode-se retomar as instruções normais de instalação.

segunda-feira, 1 de outubro de 2007

Sistemas Operativos na próxima década - Previsões

Eu não sei que não sou adivinho, mas o Prof. Chibanga concerteza sabe.

Como diz o outro, prognósticos só no fim do jogo.




PS: Para os que estão a ver o post através do Planet Geek este post contém um vídeo do youtube que não aparece no PG

sábado, 29 de setembro de 2007

Novo projecto

Comecei com um amigo, é um site onde vamos colocando jogos que vamos fazendo. Por enquanto só tem um jogo, mas já estão na calha mais alguns.
As várias áreas do site vão sendo implementadas com o tempo, a ideia é começar simples e focado nos jogos, e o resto ir-se colocando. A área de "news" irá ter uma espécie de blog que vai falando do desenvolvimento dos jogos que estivermos a fazer em cada momento. A área de "external news" está feita mas está à espera que o alojamento confirme se tem o módulo de MySQL para python instalado.

quinta-feira, 27 de setembro de 2007

Python MySQLdb e UTF-8

O python é uma excelente linguagem, estranhamente, apesar de ser feita por um europeu, o suporte para caracteres não ASCII é aquilo a que se pode chamar um fumegante monte de bosta. Quando se mete o MySQLdb e UTF-8 ao barulho então esse monte aumenta de uma forma brutal.
Umas pesquisas pelo google não trouxeram grande resultado, a única coisa que descobri foi uma data de gente desesperada com o problema.
Mas aparentemente, para quem estiver a fazer aplicações web existe uma solução que pode dar algum jeito:

>>> teste = u"HEllo\u1361World"
>>> print teste.encode("latin_1", "xmlcharrefreplace")
HEllo፡World

Isto permite gravar os dados na base de dados fazendo a ligação usando o encoding "latin_1" como o MySQLdb insiste em gostar de fazer, e ao mesmo tempo esquivar ao problema do caracter \u1361 não poder ser convertido para latin_1.
Ainda fiz mais um teste

>>> open("teste.html", "w").write(teste.encode("latin_1", "xmlcharrefreplace"))

De seguida abri o teste.html e pude verificar que o caracter aparecia correctamente.

sexta-feira, 21 de setembro de 2007

The land of the free



Descobri o vídeo a partir de um post no blog do Carlos Serrão.

quinta-feira, 13 de setembro de 2007

Post Mix

Tenho um post mais completo planeado, não o fiz ainda porque tenho andado a tentar pôr o g-client a funcionar no emacs para poder postar directamente de lá, por algum motivo falha a parte de submeter o post para o blogger.

Num assunto totalmente diferente e fora do normal âmbito deste blog, mas que não podia deixar de falar, está a hipocrisia do actual governo. Ao contrário do típico Zé Queixas português, eu até concordo em muito do que tem sido feito por ele, mas para mim bateram agora no fundo. Refiro-me claro à recusa em receber o Dalai Lama para no dia seguinte se fazerem de preocupados com os direitos humanos recebendo Bob Geldorf.

quinta-feira, 30 de agosto de 2007

Extensões para o Thunderbird

O meu "regresso ao Ubuntu" teve como consequência, entre outras coisas o regresso ao Thunderbird e o abandono do Mail.app. Isto levou-me a pesquisar algumas extensões para tornar o uso do Thunderbird mais simples.
Para não variar, a minha pesquisa acabou por devolver um resultado no lifehacker com uma lista de plugins bastante interessante.

quarta-feira, 29 de agosto de 2007

Emacs org-mode

Descobri hoje o org-mode para o Emacs e parece-me que finalmente tenho a solução que queria para as TODO list.
Segui este tutorial mas como o autor por vezes se esquece de dizer como se fazem certas coisas, convém ter o manual por perto para consultar a secção 2.2. Descobri também um tutorial para usar o org-mode com o GTD que ainda não tive oportunidade de ler.

Entretanto tive também oportunidade de experimentar o TaskFreak que me foi sugerido num comentário. O TaskFreak para mim tem dois problemas base. O facto de todas as tarefas terem que estar associadas a um projecto e assim obrigar à criação de projectos e também o facto de ser na prática uma lista "plain" de tarefas por projecto , com um certo feeling que cada tarefa é uma linha de texto mas que dá mais trabalho a criar. Parece-me o parente pobre do dotproject (não se deixem enganar pelo nome, é em PHP) que mesmo sendo mais completo não se encaixou no meu método de trabalho.

terça-feira, 28 de agosto de 2007

Script para um pipe menu no openbox

Fiz um script para colocar qualquer output de um comando de shell num pipe menu do Openbox

#!/usr/bin/python

import os
import sys

# Example
#
# /generic.py "df -h -x tmpfs -x usbfs"
# /generic.py "ps ax"
# /generic.py cal
#
# "cal" output shows up unformated due to non monospaced fonts

# Set the default command
cmd = "ls ~/ -1"
if len(sys.argv) > 1:
  # Replace the default command with the one given on the command line
  cmd = sys.argv[1]

# Execute the command
sf = os.popen(cmd)
# Get the command stdout output
cal = sf.read()
# Generate the menu item
menu = "\n".join(['<item label="' + ln + '"></item>' for ln in cal.split("\n") if ln and not ln.isspace()])
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
print "<openbox_pipe_menu>"
print menu
print "</openbox_pipe_menu>"

O próximo passo será colocar opções para definir um script que faz o handling do click sobre cada item do menu e opção para não cortar as linhas em branco ou só com espaços. Falta também substituir as concatenações por %s e um bug que faz com que não apareça nada nos menus quando o output do comando de shell contém um caractér & porque o XML fica inválido, penso eu.
Tal como está escrito nos comentários, há problemas com a formatação dos outputs porque a fonte que uso nos menus não é monospaced nem tenho intenção que seja, o que faz com que as linhas do output fiquem desalinhadas.

domingo, 26 de agosto de 2007

obpager 1.8 no ubuntu feisty

Andei a experimentar o obpager, basicamente a única coisa que eu queria era algo que me dissesse em que desktop estou. Como o link para o .deb que está na página do projecto não funciona tive que o compilar. Apesar de ter instaladas as poucas dependências e respectivos headers a compilação falhava.
Primeiro não encontrava o header da xlib Xlib.h, porque o local onde este ficheiro se encontra não estava definido na Makefile. A solução foi editar o ficheiro Makefile e alterar a linha 18 de
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src
para
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src -I/usr/include/X11
Isto fez com que passasse a ter outro erro, o shape.h também não era encontrado, mais uma vez pelo mesmo problema. De novo a solução foi colocar a path no Makefile na mesma linha.
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src -I/usr/include/X11 -I/usr/include/X11/extensions/
Agora tinha um novo problema, ao compilar falhava com o seguinte erro:
g++: ./objs/src/main.o: No such file or directory
Um erro anterior sugeria qual o problema:
src/main.cc:161: error: `errno' undeclared (first use this function)
Uma pesquisa no google dizia que o problema se deve à versão do gcc. A solução seria então acrescentar ao ficheiro src/main.cc o seguinte:
#include <sys/errno.h>
Aqui está a thread que me levou à solução, o comentário que tem o diff, o 3º é o que resolve o problema apesar de o meu gcc ser o 4.1.2 e não o 3.4.
Após tudo isto o obpager ficou a funcionar.

sexta-feira, 24 de agosto de 2007

Thunderbird 2

O Ubuntu Feisty vem com o Thunderbird 1.5 nos repositórios, ontem andava a tentar instalar o dicionário PT_pt e aquilo dizia-me que só dava no 2.0.
Encontrei aqui a solução para quem quiser ter o 2.x em vez do 1.5, entretanto instalei-lhe também um biff

quinta-feira, 23 de agosto de 2007

Mais um passo nas to-do lists

Há que tempos que eu ando a tentar arranjar uma TO-DO list mais eficaz do que fazer tudo de memória. Desde o GTD até a anotações num papelinho, nada tem resultado. Por esse motivo, vale sempre a pena dar mais uma olhadela a qualquer coisa que apareça. Manter a TO-DO list pequena, gosto da ideia de ter várias listas separadas, uma pequena para acções imediatas, outra para acções a fazer um dia e a lista de pequenas tarefas não prioritárias a despachar num intervalo da principal ou quando esta estiver concluída.
Só falta um software que implemente isto.

terça-feira, 21 de agosto de 2007

Gnome e OpenBox

Eu utilizo o OpenBox no meu ubuntu tanto em casa como no trabalho. Em ambos algumas features como o Ctrl-Alt-L fazer lock ao ecrã ou a roda do teclado controlar o som, como referi no post anterior, são-me fornecidas por qualquer coisa do gnome que me anda a correr nas máquinas e que eu não sei bem o que é.
Um "ps ax" sugere que seja o gnome-settings-daemon o causador destas coisas, a verdade é que não sei porquê que isto está a correr já que um colega que usa o mesmo setup ubuntu->gdm->openbox não tem estas features activadas.
Por mim fico contente que isto aconteça mas já agora gostaria de perceber porquê!