Welcome

Celso Martinho This Blog is about technology, programming, entrepreneurship, innovation, and the Internet. I write for myself, my friends and people with these common interests. Posts are in Portuguese and English, according to the subject or my mood.

14 July 2008 ~ 0 Comments

No cameras or lights, just data.

“In Radiohead’s new video for “House of Cards” from the album “In Rainbows”, no cameras or lights were used. Just data.”

Sem palavras.

14 July 2008 ~ 0 Comments

TODAY

Mais talento emergente Português.

“A CADA é uma associação cultural empenhada no desenvolvimento de uma cultura artística inspirada em estruturas tecnológicas. Interessa-nos explorar as relações criativas entre a arte, ciência e tecnologia.” (mais)

A CADA acaba de lançar o TODAY, uma aplicação para telemóveis Symbian que capta os eventos do aparelho, traça um perfil pessoal da utilização do mesmo e transforma esses dados numa interessante visualização, uma espécie de DNA do comportamento do utilizador. Ou, como lhe chamam, “TODAY is a piece of generative design for mobile phones. “. O projecto foi aparentemente financiado pela Direcção-Geral das Artes e pelo Ministério da Cultura.

Não experimentei porque não tenho nenhum Symbian mas gostei de ver os resultados.

10 July 2008 ~ 0 Comments

3 curtas

Não tem sido fácil arranjar tempo aqui para o folhetim. Esta vida sem vida própria, mais um mês inacreditável para o melhor e para o pior, e mais o vício inacreditável do microblogging resultaram num vazio de mais de 1mês. Sorry about that.

Para compensar ficam aqui 3 rapidinhas relacionadas com o SAPO, só para os mais desatentos:

1. Lançámos finalmente o nosso site para programadores http://developers.sapo.pt/. Para além da documentação e exemplos das APIs públicas que temos, esta iniciativa pretende acima de tudo ser um repositório de conteúdos e uma ferramenta de consulta e de comunicação e de colaboração do SAPO com a comunidade e vice-versa.

Por lá aparecerão apresentações, vídeos, exemplos práticos de código e grandes temas. É também um espaço de notícias e lazer. Um exemplo disso é o cartoon de Os Especialistas cujo desafio de recuperar lançámos ao Pedro e ao Nelson (obrigado por terem aceite).

2. SAPO Summerbits. “O SAPO Summerbits é um programa que oferece a alunos uma bolsa para escrever código para vários projectos de software livre existentes ou para desenvolver os seus próprios projectos de raíz. O SAPO irá trabalhar com vários grupos relacionados com software livre e tecnologia para identificar e financiar vários projectos ao longo de um período de três meses. A Associação Ensino Livre colabora activamente com a SAPO na organização deste programa.”.

3. SAPO Codebits. Está confirmado e aprovado, vai ser no Factory LX nos dias 13, 14 e 15 de Novembro, marquem nas agendas. O organização já começou há umas semanas mas o ritmo agora vai acelerar, mais sobre isto assim que possível. Fiquem atentos ao blog.

27 May 2008 ~ 58 Comments

Fazer uma máquina de Arcade

A pedido de muitas famílias, aqui vai.


Quem roçar na minha geração sabe o que é um salão de máquinas de arcade. Sabe, se for uma pessoa normal e dentro do target deste blog, certamente, como é passar intervalos ou uma tarde livre de aulas (ou não) fechado num salão agarrado a um Bubble BobbleShinobiNew Zealand Story ou Rainbow Islands, só para mencionar alguns. Sabe o que é ser expulso dos salões por ainda não ter idade para os frequentar, sabe o que é poupar no lanche para gastar na jogatana, sabe jogar snooker e setas, sabe truques e maroscas e enganar o responsável do salão de jogos e sabe, acima de tudo, escrever o nome completo com apenas 3 letras e com orgulho.

A minha adolescência ficou profundamente marcada pelos salões de jogos e pelos clássicos de arcade. Mesmo depois com o computador pessoal e mais tarde com as consolas, a tendência foi sempre procurar as versões e as adaptações dos jogos de arcade, infelizmente na sua maioria muito pouco fieis aos originais. Esta minha vivência explica também em parte porque é que o 3D ou os jogos com estratégia nunca me fascinaram particularmente, acho que fiquei viciado na satisfação imediata que só um jogo de máquina (cujo principal objectivo é maximizar o investimento por quantidade de tempo) pode dar. Ainda hoje, e percebo que isto seja uma autêntico sacrilégio para os mais novos, posso dizer que me dá mais gozo jogar uma boa partida de Outrun em 15 minutos do que aprender a jogar, ou jogar, GTA, e que o Spore me fascina muito mais pelos aspectos técnicos e científicos da obra do que pelo jogo em si (provavelmente nunca o vou jogar). E com isto choquei uma boa percentagem dos meus leitores, imagino.

Quando deixei de ser um garoto (para aí por volta dos 30) tornou-se óbvio que eu um dia tinha que ter uma genuína máquina de jogos de arcade em casa, a todo o custo. Só que ter um trambolho destes em casa tem requisitos muito altos em termos de espaço e devidas autorizações à alta autoridade para a harmonia da estética caseira, vulgo AHEC. E foi portanto, e vejam a elegância com que faço a ligação deste post com o post anterior, com a mudança para a casa nova que concretizei a promessa.

O que se segue é uma espécie de making-of para o leitor curioso ou para potencial interessado. Divirtam-se.

Preparação

A primeira coisa que fiz quando decidi que era desta foi comprar um livro da especialidade. Encomendei o Project Arcade à Amazon UK porque me lembrava de uma review sobre o mesmo no Slashdot. O livro revelou-se completamente inútil, devia pertencer à colecção dos for dummies. Apesar de o achar objectivo e de boa leitura, tem 3 grandes defeitos: é tudo muito básico para uma pessoa com a minha formação (electrónica e novas tecnologias), está completamente desactualizado, parou nos 90s, e é muito win32 centric. A melhor fonte de informação para quem quer construir uma Arcade Machine é a Internet, de longe.

A segunda coisa que fiz foi arranjar um “sócio” para a empreitada. Apesar de me considerar desenvencilhado no que diz respeito a bricolage e afins, fazer uma besta destas requere bons conhecimentos sobre a arte da carpintaria e eu não queria arriscar e ficar com uma obra imperfeita. Foi aqui que o meu amigo Fernando Afonso entrou em acção. Quem melhor do que o ‘panhol para me ajudar com a escolha dos materiais, das ferramentas e com a carpintaria? Fizemos um acordo, ele ajudava-me nesta e eu ajudava-o na construção da dele, mais tarde. E vou ajudar.

Terceiro, convencer a mulher a hipotecar a varanda da casa nova por pelo menos 1 mês, com toda a sujidade, incómodo e barulho associados.

Modelo do gabinete

Há muitos modelos de máquinas de Arcade e muitos planos para cada uma delas, pagos ou gratuitos. O livro Project Arcade traz alguns no CD. Mas eu queria o modelos mais clássico de todos, aquele que mais se via nos salões em Portugal, o armário vertical com o ecrã ligeiramente na diagonal, consola ao nível do banco, com dois joysticks, botões de lado (para o Pinball Action, claro), moedeiro em baixo a bater nos joelhos, e mostrador luminoso com o tema do jogo em cima. Não foi fácil mas consegui encontrar exactamente o que queria aqui no Mameroom por $29 USD.

Os planos são bastante completos com instruções detalhadas passo a passo. Mas para ser honesto, o que mais aproveitei dos planos foram as medidas exactas das peças do “cabinet” porque acabámos por usar outras técnicas de montagem e colagem, na minha opinião mais robustas do que as propostas. Mas isto, mais uma vez, depende das habilitações de cada um para a carpintaria. Se seguirem estes planos à risca também ficam bem servidos.

Materiais

Eu perdi a conta e memória à quantidade de material e ferramentas que comprei para fazer a caixa da Arcade, mas foi muita tralha, e comprei tudo no AKI. Ele foram madeira (duas tábuas grandes e pesadas, de MDF de 16mm, que o AKI teve de levar a casa), massa reparadora para as imperfeições e buracos, tinta preta para madeira, lâmpada fluorescente para o mostrador, dobradiças, parafusos, cola para madeira, tacos, madeira adicional (ripas) para os suportes internos, lixa, vidro, acrílico, máscaras, óculos e proteções, pincéis, rolos, eu sei lá.

Ferramentas, assim de cabeça, berbequim (de preferência com controle electrónico de velocidade), coroa para fazer buracos grandes, brocas, serra eléctrica de recorte, aparafusadora eléctrica, um esquadro grande, fica métrica, e uma tupia que dá jeito para os buracos pequenos e que requerem precisão.

Aconselho também a terem uma boa mesa de carpinteiro ou cavaletes. No meu caso usei (com muito cuidado) a mesa de comer da varanda e acabei por lhe fazer um lenho com a serra eléctrica. “Muito profissional sim senhor”, disse a patroa quando viu o desastre.

Quanto ao televisor tinha duas opções. Ou ia para o state of the art e escolhia um TFT grande e barato de 4:3 e não tinha que me preocupar com ligações ao PC nem com lesões nos olhos, ou optava pelo genuíno ecrã de tubo catódico, vulgo CRT, a bombar com varrimentos de 15k/50Hz em que se notam claramente os espaços entre as linhas de pixels dos jogos. Optei, claro, pelo último. Eu queria a experiência orignal em toda a sua glória. Comprei um televisor Mitsai de 70cm na Worten por menos de 150 Euros com 2 entradas SCART (e RGB activo, isto é muito importante como verão mais abaixo).

Construindo a caixa

Construir o gabinete é trabalho puro de carpintaria e aqui têm duas opções: ou percebem da coisa e dão o vosso melhor aproveitando as medidas dos planos ou seguem religiosamente cada um dos passos dos planos e rezam para que corra tudo bem. Eu optei pela primeira, graças à ajuda do carpinteiro Afonso, claro.

A inovação no nosso caso foi a união das tábuas. Os planos sugerem apenas umas dobradiças mas nós para além disso colámos as tábuas com cola de madeira e com tacos e pequenos furos (do tipo mobilia do Ikea, só que melhor).  Colocámos ainda umas ripas em pontos estratégicos, por dentro. Ficou sólida (e pesada) que nem um rochedo, posso-vos dizer.

Inovámos também na parte de trás ao fazer uma porta de abrir para ter acesso facilitado ao interior no futuro. As arestas das tábuas foram trabalhadas com lixa e não com máquina (o MDF é fácil de trabalhar, não é muito duro) e também ignorámos a sugestão de ter uma gaveta para teclado na parte frontal, achei que isso seria pouco fiel ao original (embora seja cómodo para efeitos de manutenção, admito).

Antes de terminar o trabalho, encastramos a televisão dentro da estrutura. Este passo é complicado e por isso aqui ficam algumas dicas:

1. Comprem uma televisão com as medidas correctas. No meu caso comprei uma Mitsai de 70cm (medidas do cinescópio) que encaixou que nem uma luva. Não se esqueçam, mais uma vez, que deve ter entradas SCART com os pinos de RGB activos (a maioria dos chipsets modernos têm).

2. Ao retirarem o cinescópio e a “board” da televisão tenham muito cuidado. Certifiquem-se que a televisão nunca foi ligada, ou pelo menos que não foi ligada recentemente, e mesmo assim tenham cuidado. Uma descarga nas vossas mãos do condensador de alta tensão que as televisões CRT têm para estabilizar a alimentação dos tubo catódicos pode-vos fulminar, literalmente. Foram avisados.

3. O cinescópio é muito pesado, especialmente um destas dimensões. Quando pegarem nele façam-no com ajuda e 3.1 certifiquem que a estrutura da caixa está bem feita para o encaixar e o suportar 3.2 prendam-no muito bem, com parafusos.

4. O plano B, que é muito mais seguro, é não esventrarem a televisão e colocarem-na dentro caixa inteira. A parte má é que normalmente há imenso plástico à volta do cinescópio propriamente dito e não só vai ficar mais inestético e pouco realista como possivelmente terão que lá meter um televisor com uma área visível de imagem substancialmente inferior para caber tudo.

No fim fizemos uma maratona de lixa na mão, arredondámos as arestas, as imperfeições foram todas corrigidas com a ajuda de massa branca, a madeira ficou tão limpa e tão suave como a pele de um bébé.

E terminámos com a pintura. Duas de mão ou mais, tinta boa, preta, rolos (não usem pincéis para as grandes superfícies), já sabem uma de mão na vertical, outra na horizontal, não ajavardem. Se não sabem pintar, peçam ajuda a quem saiba porque uma má pintura estraga o projecto. E não se esqueçam, não pintem nada sem lixar e limpar muito bem a madeira primeiro.

Painel de comandos

Esta é uma das partes mais críticas da máquina e eu queria que ficasse perfeito e ia investir em qualidade. Queria aqueles joysticks industriais feitos com micro-switchs em que podemos mandar-lhes uns bons murros sem constrangimentos, idem para os botões.

Encomendei um sortido de comandos à Ultimarc em UK, uma casa especializada em material para Arcades.

Mag-Stik pretos.

8 botões de cores várias e 2 botões com 1UP e 2UP.

Da Ultimarc veio também uma interface I-PAC, aonde liguei os comandos todos. Esta interface transforma os interruptores dos comandos em teclas normais de um teclado PS/2 ou USB. Parece simples mas não é bem assim porque para além disto o interface tem uma série de features cruciais para gaming: pouco delay de resposta, não tem problemas de ghosting (várias teclas premidas ao mesmo tempo em secções diferentes) nem stuck keys, etc, etc. É muito bom. O plano B aqui, que não recomendo pelos motivos enumerados, é usar o controlador de um teclado velho desmontado.

E veio também, e este é o toque de requinte da máquina para verem o meu empenho, um moedeiro electrónico ”COIN mech” que liguei correctamente ao I-PAC e que viria a desempenhar as suas funções em pleno, ou seja, meter moeda para ter créditos. O moedeiro é uma obra de arte, é programável e funciona por comparação de moedas (peso e dimensões). Basicamente basta-me meter uma moeda exemplo no mecanismo e ele compara-a com as outras que caiem pelo buraco.

O painel e o moedeiro ficaram um mimo como podem ver nesta foto. Wiring aqui. Ligação ao I-PAC aqui. Foto do moedeiro pela parte de dentro.

Acabamentos

Acabou a poeirada. Entramos nos detalhes e no interior da caixa.

Altifalantes: dois, por cima dos comandos. Aproveitei os da televisão. Mais tarde arranjei as tampas pretas com redes em esponja que coloquei da parte de fora.

Luz fluorescente, comprei uma daquelas baratas no AKI com muito pouca potência e aparafusei-a no compartimento dos altifalantes. Mais tarde mandei fazer um painel em “Black light” (aqueles que se usam nos mostradores de comida luminosos do Mc Donalds) com um tema do meu jogo favorito de todos os tempos, o Bubble Bobble. Encontrei a “marquee” em formato vectorial e enviei para a Tutitex que me devolveu o painel uns dias depois. Afixei-o à caixa com uma proteção em acrílico. Ficou catita.

“Board” da televisão, coloquei-a por trás do cinescópio em cima de uma prateleira estratégicamente montada à altura certa. Mais um vez, cuidado com o maldito condensador. Deixei o LED receptor de infravermelhos com linha de vista para o acrílico do painel para poder usar o controle remoto da televisão do lado de fora, se for preciso.

Vidro protector do ecrã. Tirei as medidas e mandei cortar um quadrado de vidro no AKI. O Afonso pintou as bordas do vidro com um spray de tinta preta para delinear as medidas exactas do cinescópio. Ficou 5 estrelas.

PC

Comprei um PC de linha branca Pentium IV 3Ghz com disco de 250 Gigs a preços da chuva no Intermarché, junto às pastilhas elásticas e aos rebuçados. Na realidade aqui, para correr Mame exclusivamente, qualquer chasso reciclado deve dar. Eu simplesmente por um lado não tinha chasso nenhum na garagem e por outro queria algum poder de processamento para fazer outras brincadeiras. A parte muito má deste PC é que a ventoinha faz uma barulheira inacreditável, é algo que ainda vou ter que resolver com alguma imaginação. Sugestões para sistemas de arrefecimento silenciosas?

A caixa do PC foi toda desmontada, fiquei só com a motherboard, disco e fonte de alimentação. Acomodei tudo dentro da Arcade em cima de prateleiras montadas para o efeito.

Conselhos sobre PCs:

1. Linha branca ou material reciclado funciona bem, não é preciso nada de muito sofisticado. Verifiquem só se não é muito barulhento porque uma caixa de madeira deste tamanho faz sempre alguma ressonância.

2. De preferência, mas não necessariamente, comprem uma board que suporte ACPI com sensores de temperatura e velocidade variável da ventoinha para poderem ter um controle dinâmico por software. O Linux suporta bem isto.

3. A placa gráfica é importante mas pode ser externa. Leiam o ponto sobre a placa gráfica mais abaixo.

Software

A escolha do software para a máquina de Arcade é determinante para termos uma réplica fidedigna. Este é o meu setup mas há muitos outros possíveis, tudo depende da vossa experiência e do vosso conforto com cada uma das opções.

Eu queria usar Linux por isso instalei a distribuição Debian, versão “unstable” (que em Debian, como todos sabem, quer dizer estável e com as últimas versões das libs todas) com kernel 2.6.17-2.

Quanto ao emulador, depois de muita pesquisa, optei pelo Advance Mame que é simplesmente soberbo. É um port do mame especialmente desenhado precisamente para máquinas de Arcade e para CRTs, televisões e monitores com frequências fixas. Funciona em Linux, Mac e Windows e tem uma série de características que fazem deste software a escolha mais profissional possível. Algumas:

1. Suporta uma porrada de placas gráficas/frameworks e modos de vídeo, mesmo as mais bizarras, como vão ver.

2. Tem built-in uma série de efeitos gráficos, resizing, streching.

3. Suporta scripting e invocação de scripts externos, por evento.

4. Os ficheiros de configuração são ficheiros de XML facilmente editáveis.

5. Permite mudar grande parte dos parâmetros em run-time, durante os jogos, através de menu especiais.

6. É orientado para a máquina de jogos, arranca em full-screen com um ambiente gráfico (AdvanceMenu) que pode ser personalizado (e muito flexível) que nos permite escolher o jogo. Semelhante aquelas máquinas mais modernas, multi-game, só que melhor.

Lista completa de “features” do AdvanceMame aqui e do AdvanceMenu aqui e snapshots também.

A configuração inicial do AdvanceMame não é pera doce no entanto. Vamos começar pela compilação.

Para suportar bem a minha placa gráfica tive que usar a svgalib (versão 1.4.3, pacote libsvga1 do Debian). A outra opção era Frame Buffer mas tentei até à exaustão e não consegui por aquilo a funcionar direito. Também experimentei SDL mas sem sucesso. Atenção que este trial and error depende muito da placa gráfica que tiverem (ver mais abaixo). Para o som usei o framework alsa, claro. A svgalib controla o teclado e a placa gráfica.

Opções do configure do advmenu:

 $./configure –prefix=/servers/mame/ –enable-svgalib

Eis as opções do configure do advmame:

  $ ./configure –prefix=/servers/mame –enable-svgalib –enable-alsa

Placa gráfica e VGA

A escolha da placa gráfica é importante quando decimos usar uma televisão em vez de um monitor. Precisam de uma placa que tenha modos gráficos compatíveis com 50 a 60Hz de varrimento vertical e 15.6Khz de varrimento horizontal, que é como quem diz PAL e NTSC. A minha escolha foi uma GeForce4 MX 440 AGP 8x que é completamente overkill para jogar mame mas que se dane, funciona com TVs.

Para esta placa e para o setup descrito svgalib+mameadvance, vão-me agradecer estes 3 ficheiros:

1. Ficheiro de configuração da libsvga:  /etc/vga/libvga.config

2. Ficheiro de configuração do advmenu: /servers/mame/config/advmenu.rc (o mais valioso neste são as linhas device_video_modeline que definem com precisão uma porrada de modos gráficos para televisões CRT).

3. Ficheiro de configuração do advmame: /servers/mame/config/advmame.rc (mesma conversa)

Agora a parte complicada. Uma placa gráfica tem normalmente saídas VGA (e eventualmente uma saída de S-Video que não vão querer usar, confiem em mim). Ora do outro lado (na televisão) está uma entrada SCART. Embora o pinout VGA seja decomposta em sinais de RGB e as frequências de varrimento já estejam correctas, não é possível fazer uma ligação directa ao pinout da SCART. Isto porque há algumas diferenças nas normas que têm que ser corrigidas primeiro.

Sem medo. O grande Tim Worthington fez um guia à medida para resolver o problema: “How to use a SCART TV as a Monitor for MAME”. Eu optei pela versão com o 74HC86 com as portas XOR porque é mais seguro do que a versão simples com diodos. Comprei os componentes na Dimofel e uma placa de circuito impresso daquelas já perfuradas com pistas paralelas para fazer pequenos protótipos e em 30 minutos fiz o circuito, funcionou à primeira. Aqui está uma foto dele em acção. A alimentação do IC fui busca-la ao PC, a um daqueles conectores para os discos rígidos.

A nitidez e o contraste da televisão ficaram impressionantes. Notam-se os pixels bem definidos, só visto. Nem pensem em usar vídeo composto ou daqueles adaptadores baratos de VGA para SCART, vai ficar um ranho.

ROMs

Para jogar jogos de Arcade num emulador, é preciso ter as ROMs desses jogos e é preciso serem donos dos mesmos, caso contrário podem estar a cometer alguma ilegalidade. Eu poderia dizer que há torrents em barda com a coleção completa de ROMs ou sites com arquivos online mas não seria correcto. Afinal de contas ainda há muitas máquinas das décadas de 80 e 90 a fazerem dinheiro por aí.

Há também uma série de ROMs que foram cedidas sem direitos de autor pelos seus creadores. E são fantásticas (not).

Artwork

Há uma série de icons, screenshots, snapshots e afins que dão suporte ao Advance Menu para ficar tudo bonitinho nos menus de selecção. Aqui está uma boa coleção de artwork para o Mame. Coloquem os Snaps em /servers/mame/config/snap.

O Advance Mame permite ainda, em run-time durante os jogos tirar snapshots ou até excertos de vídeo e som com um simples premir de tecla, erhm, botão, e que podem depois ser incorporados no Advance Menu.

Startup

Os scripts de arranque da máquina também foram um desafio, por um motivo, porque para o teclado (leia-se painel de controles) funcionar com a svgalib esta necessita de apoderar-se de um tty, como se estivéssemos feito login numa consola e corrido o advmenu manualmente. Isto coloca de parte qualquer abordagem pela iniittabdaemontools ou /etc/init.d/ porque sem o login efectivo de um utilizador na consola e de um shell, não há tty para ninguém e o advmenu vai-se queixar (via svgalib) que não consegue ter controlo do teclado. Na realidade, vim a descobrir agora mesmo enquanto escrevo este post, este problema é mencionado na FAQ do Advance Mame aqui (ainda bem que eu perdi horas a bater com a cabeça na parede há uns meses atrás).

A solução que acabei por escolher foi: instalei o mingetty e configurei-o na inittab para fazer autologin (que é uma das suas features). Assim:

1:2345:respawn:/sbin/mingetty –autologin root tty1

Desta forma, quando o PC arranca é feito um login automático de root em cima do tty1. Depois basta meter isto no ~root/.bashrc:

export PATH=$PATH:/servers/mame/bin
export ADVANCE=/servers/mame/config
export TERM=linux
tty | grep tty1 && ( while [ 1 ]; do
cd /servers/mame/logs
/servers/mame/bin/advmenu --log
if [ -f /tmp/quitloop ]
then
sleep 3600
fi
done; )
O ficheiro /tmp/quitloop dá jeito se quisermos parar o advmenu completamente.

Custo total

Entre material, ferramentas que não tinha, televisor, computador, placa, botões e outros, devo ter gasto uns 1500 a 2000 Euros, estimo. Mas tendo as ferramentas, o PC e eventualmente a televisão é possível realizar o projecto por muito menos dinheiro.

Resumo

Este projecto foi um dos mais interessantes que já fiz, deu-me um gozo brutal montar isto, desde a primeira tábua, aos acabamentos, à electrónica e ao software. E a obra ficou impecável, diga-se de passagem. Quase ninguém acredita, quando vem cá a casa, que isto feito de raíz.

Só me falta fazer uma coisa, montar o último circuito do Tim para me ligar a televisão automaticamente sob as ordens do PC.

Depois de escrever isto tive esta ideia. E que tal, no Codebits deste ano 2008, fazer uma maratona a montar uma (ou mais) destas? Já a estou a ver depois junto aos elevadores, no SAPO.

Este post está carregado de fotos mas aqui fica um slideshow com as fotos todas, para o impaciente:

Espero que tenham gostado. Dúvidas, perguntas, etc, coloquem-nas nos comentários, eu tentarei responder.

17 May 2008 ~ 3 Comments

Secção de classificados: Um belo T2

A audiência geek deste blog que me desculpe o off-topic.

Estou a vender um T2 em Lisboa na Rua Lúcio de Azevedo (perpendicular à estrada da Luz) no Lote 10. Os atributos são:

  • 10º andar. Dois quartos, 1WC, hall, cozinha e marquise, sala grande, lareira.
  • Vista sobre Monsanto e linha de vista aberta para o Cristo Rei. Solarengo.
  • Lugar de garagem e arrecadação.
  • O prédio é relativamente novo, o condomínio não é caro.

O local é IMHO óptimo porque tem boas acessibilidades quer para o centro quer para fora (2ª circular e eixo norte-sul à porta), mas ao mesmo tempo é um local sossegado. É ver o mapa.

Razão da venda? Simples, 2 filhotas, troquei de casa. Preço, à volta de 225k.

Interessados, contactem-me.

13 May 2008 ~ 3 Comments

Unplugged ’08

No próximo dia 21 de Maio vai decorrer a inauguração do laboratório SAPO na Universidade de Aveiro, um espaço dedicado a alunos e docentes para realizar projectos no âmbito do protocolo de colaboração que as duas instituições fizeram. É um marco histórico por vários motivos, pelas origens, pela mudança, pelo potencial que representa esta aproximação ao meio académico e ao talento emergente, e também porque é o culminar e a formalização de uma relação que tem vindo a ser muito trabalhada nos últimos meses.

Para acompanhar a ocasião decidimos organizar uma conferência da parte da tarde sobre um tema que para nós é neste momento absolutamente prioritário: Usabilidade.

programa conta com vários oradores com experiência e reconhecimento nesta área ao nível nacional, privado e académico, e ao nível internacional com a presença da autoridade máxima nesta matéria, a Adaptive Path.

Apareçam. A entrada é livre.

04 May 2008 ~ 11 Comments

A presença já não é o que era

Update 1: Por coincidência o TechCrunch tem hoje um artigo precisamente sobre a oportunidade de usar uma infra-estrutura como o XMPP para suportar um Twitter “bem feito”.

Update 2: Um bom artigo do Mickaël Rémond da Process-one sobre a utilização do XMPP e do pubsub num serviço do tipo Twitter/micro-blogging.

Update 3: A malta do Psi também anda a fazer umas brincadeiras com estes conceitos (via Melo).

Durante anos, na relação que tenho com certos e determinados operadores móveis (o plural é só para confundir, faz de conta que os MVNOs também contam vá), defendi que o Instant Messaging não tem interesse absolutamente nenhum num telefone móvel. Não tem interesse porque todas as pessoas neste País têm um telemóvel (ou vários) e estão permanentemente ligados, a maior parte durante a noite inclusive. Os portugueses estão permanentemente disponíveis com o telemóvel, é seguro dizer. E portanto colocar uma aplicação de IM no telefone acrescenta o quê em relação ao SMS que é praticamente gratuito e que possivelmente funciona na mais bem trabalhada aplicação nativa que qualquer aparelho pode trazer? Informação de presença não é. Nada, não há absolutamente nada de relevante no IM no telemóvel a não ser uma ligeira sensação efémere de que estamos na crista da onda a falar com os amigos do PC num teclado de 9 teclas. E então quando me falavam de tarifários a cobrar à mensagem…

Mas estas coisas já se sabe, se o vizinho do lado dá um pontapé numa pedra nós temos que um pontapé num calhau, mesmo que arrisquemos partir o dedo grande. E imagino que seja assim em todo lado, aliás, sei que é. E durante anos isto fez-me muita confusão. Mais tarde percebi que estes e outros produtos que os operadores móveis querem replicar da Internet do PC (da qual só percebem a popularidade, mas não a mecânica) são apenas uma fachada para comunicar aquilo que realmente interessa no mundo móvel (por enquanto): o tarifário de voz, SMS e dados. Adiante.

No outro dia, com amigos, divagava sobre o que é que torna o twitter tão inútil e tão viciante ao mesmo tempo. Não são certamente as notificações gratuitas por SMS, já desliguei isso tudo, não sobrevive ao teste da vida real. Não é também pelo social networking, já estamos no período post-web2.0 certo? Nem o facto de ser micro-blogging e de nos exigir uma grande capacidade de síntese, leia-se só permitir 140 caracteres por mensagem provavelmente por causa da história dos SMSes (para mim isto é uma limitação). E também não deve ser por causa dos inúmeros problemas de performance e de disponibilidade que o serviço tem sofrido ultimamente. Mas há algo, porque aquilo agarra-nos. O que é? Eu diria que é isto:

1. Ranking. A nossa eterna e involuntária necessidade de nos superarmos e de nos pavonearmos junto dos nossos mais próximos que nos está cravada no DNA, e não se armem em insensíveis a isto. Ele é meter um número ao lado da fotografia do utilizador e é vê-lo matar-se por fazer cresce-lo. Neste caso o “game score” é o número de “followers” de cada um tem. Não é um grande número e até o metem ali disfarçado de “stats” mas é um número. Ver “How Game Mechanics Can Make Your App More Fun“.

2. Social Networking, se calhar afinal até é. Qual é o detalhe? A grande diferença para o Instant Messaging é que as relações individuais são públicas para todos. Qualquer um pode ver no meu perfil quem são as pessoas que eu sigo. Há aqui uma pirâmide de reputação quase perversa mas que funciona muito bem. A primeira coisa que eu fiz quando revisitei o twitter e o comecei a usar mais regularmente foi vasculhar os perfis das pessoas por quem eu mais reconheço interesse, e aí encontrar umas outras tantas que subscrevi pela reputação herdada dos anteriores.

3. Não é push (ver ponto 4 sobre o melhor do E-Mail). As mensagens são lidas on-demand, com a periodicidade que eu bem entender ou à distância de uma short-key dependendo do client que usar (twitterrific no meu caso), não sou incomodado com popups de janelas e notificações de growl. Isto lembra-me que usar o Twitter através do bot de XMPP é adulterar esta característica, nunca o faria.

4. A mais importante e voltando à introdução do post, é instant messaging mas sem presença. Agrega as principais vantagens do IM, do IRC e do E-Mail: É instantâneo e é social, mas não tem informação de presença. Eu já disse mais do que uma vez que a presença está em desuso. Porquê? Porque nós, com o advento da mobilidade e com os saltos qualitativos que os dados móveis, o acesso aos portáteis, os “smart-phones”, as redes wifi e o acesso à Internet em geral deram nos últimos anos (e vão continuar a dar), estamos-nos a tornar todos deuses do online. Nós estamos a ficar progressivamente omnipresentes na Internet, quer gostemos quer não.

O meu ponto, para não desviar muito, é: até que ponto a presença vista como informação de disponibilidade, um dos bastiões das plataformas emergentes de messaging dos últimos anos (IMS, SIP e SIMPLE, XMPP, etc.), continua a ser importante? 

Do meu ponto de vista continua a ser importante mas talvez não nos moldes em que inicialmente foi pensada, não apenas para transportar a disponibilidade dos meus correspondentes. A funcionalidade da presença pode ser muito interessante se puder ser extendida e se puder transportar outro tipo de meta-informação associada à minha pessoa e que nos dias que correm é muito mais importante do que a minha conhecida omnipresença na Internet, nomeadamente: Geo-localização, avatars, estado de espírito, a música que está a tocar no iTunes, etc, etc, etc.

E é talvez aqui que o XMPP, como plataforma extensível de messaging e de presença, pode marcar a diferença em relação a outras. Isto sim, faz sentido. Já dei o toque à malta da Process-One para fazerem uma proposta ao Twitter, agora que eles estão a ponderar mudar de plataforma. (smile).

21 April 2008 ~ 10 Comments

Getting things done – Part II

I’ve posted about personal productivity and GTD recently (in Portuguese) and got a lot of feedback, either from the Blog or other means (thanks all, really). So after a lot of testing and fiddling I think I finally settled with a nice setup which works for me. This post will try to describe it, in English just because the target audience is broader.
First of all a few notes.

Some of this stuff, if not all, might not work for you. Each person has it’s own set of characteristics and requirements and, while for some a simple Moleskine or a set of index cards is enough, for others no, not really. So let’s start with that, my characteristics.

I’m completely E-Mail centric, it’s my primary form of communication and collaboration, it stands above the phone, paper or even real person-to-person interaction. Scary, but true. So consequentially my E-Mail client, now OSX’s Mail.app, is undoubtedly my desktop soul mate. My life depends heavily on the complicity I have with this beast. I only used 3 clients in my whole life: elmmutt (elm on dopes) and Mail.app (SMTP clients that is, I’m excluding UUCP and Fidonet). It took me ages to leave mutt behind even when “powerful” graphical clients were already widely available (like Evolution or Thunderbird). I still use it occasionally. So, when shit like this happens, I stress, a lot. I get hundreds of messages per day, not counting spam.

One other tool I use to communicate professionally is IM. In my case I use the OSX version of the SAPO Messenger (the best XMPP out there, trust me). IM is very ineffective in what comes to GTD, I’ll explain this later. Work also comes in other transports: SMS, voice and paper. (No, twitter messaging still doesn’t qualify as work, sorry).

My life is mobile. I’m constantly moving from one place to another and my laptop isn’t always there. It’s meetings, travelling, late night phone calls, weekend interruptions, you name it, it’s my sad life. My mobile phone is also one my most important instruments for personal task management and messaging and It has been carefully hand picked since my first Ericsson GA628. I now use an iPhone.

I have multiple contexts in my job. I’m a founder, a manager, a programmer and a sys-admin. These different contexts force me to constantly evaluate my priorities and re-organize my time, my most important (and finite, unfortunately )resource. Also, in each context I have different states. For instance, I might have taken the morning off to fix some bugs and I’ll be in a state of concentration and sequencial work, or I might be closing small late tasks and the IM is blinking, my CEO is sending me SMSes and I have a boring meeting in 10 minutes (not related).

Based on this reality, I had several requirements for my setup:

  • APIs. Sooner or later I’d want to do something funky with my data. Some XML/REST based API for whatever service I’d choose was needed.
  • Mobility. As I said. I currently use an iPhone which has a decent browser and all but I was aiming a richter integration. A subset of Mobility is Synchronization.
  • Tight E-Mail integration. IM would be nice.
  • Syndication. RSS and iCalendar, mainly.
  • Support for different contexts and status.

And the solution:

Hiveminder:

The core tool I ended up choosing was Hiveminder (thanks to those who referenced it to me). Feature wise Hiveminder is unbeatable.  It’s Web based and has everything you’d expect from a GTD application plus it provides RSS/Atom and iCalendar feeds, a mobile version of the website (with some iPhone goodies), Twitter integration, Jabber/IM integration (through a jid-bot), SMTP/E-Mail integration and a well documented and simple web API (with OAuth support). Also it supports contexts, groups, scheduled tasks, tags, reports, tinyurls and a small language to add tasks they call braindump.

But the sell point lies in the pro version with their IMAP interface. For a mere well deserved  $30 USD/year, Hiveminder provides a virtual IMAP mailbox view to your tasks. But it’s not just the fact that you can see your task as normal E-mail messages that’s great. What’s killer about it is that it has virtual IMAP folders which can be used to mimic real Hiveminder actions as you drag messages to them. For instance, say you a task called “Pay bill” in your Inbox, if you drag this message to the /Actions/Hide for/Days/03 days/ folder, you’re actually manipulating the task’s properties and delaying the task for 3 days. You have virtual folders to Complete and Hide tasks, groups and special braindump folders for advanced usage. 

Add this to the fact I can define personal E-Mail addresses (as many as I want) inside Hiveminder to create specific tasks with specific properties. Think of them as buckets, each one with associated braindump. For instance, I can have zpto1@my.hiveminder.com which is use to create tasks under the tag “work” and another zpto2@my.hiveminder.com for tasks under the tag “personal”. Creating a task is as easy as sending (or forwarding) an E-mail to these addresses.

So why is this great? Well, read my characteristics and requirements again. This single feature is a three in one solution. 1. I can still be E-mail centric and manage all my tasks using Mail.app, my E-Mail client. I use Mail.app to create, complete, modify and categorize tasks. 2. Mobility solved. My iPhone (and most modern 2G/3G phones) has a very rich E-mail client, with IMAP. 3. Synchronizations solved. And offline operations too. It’s just E-Mail messages and IMAP operations queued and waiting for connectivity.

In fact I don’t use the Web version of Hiveminder at all.

Zero Inbox:

Ok, so managing tasks is easy and sleek now. But I still had to figure how to tame my enormous flow of daily E-Mail messages in a productive, integrated and organized way.

Short story short, the Zero Inbox is a simple concept: keep your inbox empty. This may seem trivial (some of my colleagues said to me they’ve been doing this for years) but it’s not that easy if you get an average 50 work related messages a day (I did the math, yes). Problem is, most work related E-Mails require feedback or action. In other words, they require two of your most valuable resources: time and attention. And neither are abundant. Logically if you have no way to handle them as they arrive, they’ll just stack up. My last Inbox (the root, not the folders) had a pile of 25.000 messages for the year of 2007, god knows the percentage of unanswered E-Mails it contained and the cause-consequence effects it had on my professional life.

Your Inbox is your desk. If it’s not clean it will hunt you with a feeling of personal chaos, and you’ll never catch up again until you take expensive drastic measures.

There’s lots of advice on how to keep your Inbox zeroed. 43folders has a whole series of related articles on the subject that you can read, they’re very popular. I’d suggest you take 50 minutes of your time just watch this video from Merlin Mann.

I followed some general advice and married the concept with Hiveminder. So here’s my strategy. To keep my Inbox empty I have to take one of 3 actions for each incoming message:

  • If it’s trash (ie: spam or a result of a cronjob) delete it immediately.
  • If it’s just informative, read and archive. Archiving means moving the messages to the /Archive folder for eternal disregard (ok, and for Spotlight searches too).
  • If it requires an action (be it just answering the message or doing actual work first) I’ll either do it immediately because I have time or, and this is the innovative part, just forward the E-mail to one of Hiveminder’s E-Mail addresses, and it will auto-magically create a task with the message’s subject. After forwarding the message, I’ll just archive it and take it off the Inbox.

The delete/archive/forward decision is simple and fast. It won’t steal your concentration from other threads and it’s resource inexpensive.

The other tip I have for your regarding E-mail is to change your auto-check to 1 hour periods or more. Receiving an E-mail is an attention sucker. Just the fact that my Dock’s icon shows some number of unread E-Mails is enough to lit my curiosity sensors. Which leads me to the next subject:

Instant Messaging

I use IM for ages, both personally and professionally. In the context of work IM is anti-GTD. It’s useful for the initiator but very ineffective for the receiver. The sender uses IM to satisfy real-time, casual needs and finds in IM an easy way to get the “victim”‘s attention. Now, again, attention may be something the teens have in excess (specially for the oposite sex) but it’s not so for most hard working (and married) guys like me. IM is an attention sucker and a concentration assassin.

The other thing I find amusing about the IM is the person’s “status”. The status is ment to indicate if a person’s available to talk, or if he’s busy, or away. In the early days of IM this was sort of honored by our tech savvy friends it’s true. But today, please, for gods sake, either just remove this stupid property or reduce it to 3 standard messages: “Available to flirt”, “Busy but tolerant” and “Bug off, die far!”. Anything in between isn’t working these days, really.

So what happens when your attention gets frequently requested? You’ll be unable to do any kind of sequential work or work that requires a great deal of time and focus. If you pretend to do any of the last follow my advice: turn off your IM client or turn yourself invisible (oh yes, this “state” works fine too).

Having said this, one last thing: use XMPP. It’s the only standard open IM network and protocol available. </pub>

Hiveminder supports a XMPP/Jabber based bot. You can add it to your buddylist and “talk” with him and list, modify or create new tasks. It’s geekish but I don’t use it, I don’t find it productive or handy because the only way to interact with it is by typing text and commands and/or using copy&paste for descriptions.

Mail.app is my world.

Geek tool

Geektool is a small OSX application which can be used to display system logs, shell command outputs, etc. in your Desktop space. Pretty nice. I use it to display my Hiveminder tasks, both work and personal, in my background, using the output of the todo.pl command. The todo.pl is simple script, provided by Hiveminder and inspired by Gina Trapani’s todo.txt website, which connects to their API, logs in, and just dumps my tasks.

Having my task list on the screen, in a non-intrusive way (it’s part of the background image), is very handy. I just need to hit the exposé’s “Desktop” shortcut to get a hold of them, it’s the perfect complement for the IMAP folder.

Calendar

Hiveminder exports both RSS and iCalendar feeds. Fact is, I don’t need them. They work fine though. Maybe the iCalendar feed is useful to you if you have an iPod. I never used iCal to do task management, it sucks at it, I just use it for what it’s supposed to do best (and indeed does): manage my time.

Mac Act-On

Mail Act-On is a must-have Mail.app plugin. It associates mail rules to keystrokes. This is great to use with the Hiveminder’s virtual IMAP folders. After a few rules configured I can now complete or delay tasks with a simple keystroke. So fast. Now I don’t even need to drag the message into the correct folder with the mouse. Check my rules:

Support

So far Hiveminder’s support has been great. I’ve sent them two E-mails and had an answer back in a few days. On of them was a feature request for the IMAP interface (I asked the to include a X-Hiveminder-Tags header for easy filtering based on the task tags) and it was implemented in 24h. No complaints here.

Summary

This setup worked for me. I’ve been using it for 3 weeks now and it’s been very productive. I actually kept my Inbox near zero levels and got everyone feedback or created tasks out of their messages. I highly recommend it. 

20 April 2008 ~ 15 Comments

Video do PTMail

Ok, alguém me vai matar por isto amanhã. Mas estive a ponderar e sinto que há legitimidade para tornar este vídeo público: Primeiro porque tenho créditos, muitos créditos, no que diz respeito a expor situações embaraçosas dos meus queridos colegas e amigos de trabalho. Segundo porque já lá vão mais de 4 anos, e todos sabem que na Internet 4 anos são na realidade 12, é muito tempo.

Este vídeo representa um marco na cultura interna do SAPO. Foi o nosso primeiro mega-projecto, que envolveu tempo, recursos e custos consideráveis para essa altura. Tratou-se de construir a nova plataforma toda baseada em produtos Opensouce (ie: Qmail, Horde, Debian Linux, etc, etc.) e que viria a suportar o E-Mail da Telepac e do próprio SAPO, e que ainda hoje existe.

Foram 18 meses de projecto e de trabalho árduo em que não faltaram muitas discussões, muita pressão também do status-quo da época (e dos fabricantes e fornecedores do legacy), mas também muito trabalho em equipa, profissionalismo e diversão. Enfim, vejam.




versão com fullscreen no player

20 April 2008 ~ 0 Comments

Takeoff 2008

Hoje estive na Takeoff 2008. Boa iniciativa sobre empreendedorismo, que sem fanfarras nem mega-produções conseguiu reunir um bom painel e uma audiência jovem e francamente interessada pelo tema. Muitas caras conhecidas também (entre sapos, ex-sapos e colaboradores do sapo, quase parecia uma reunião de direcção). A repetir.


Fiquei sensibilizado com o convite para ser orador. Afinal de contas eu já não me considero empreendedor, pelo menos não no sentido de começar startups, há uns anos valentes desde que ajudei a fundar o SAPO e o mail.pt. Mas enfim,  a minha vivência e o facto de lidar no meu dia a dia com pessoas brilhantes e novos empreendedores de alguma forma me dá formação e me permitirá passar uma mão cheia de conselhos.

Fica aqui a minha apresentação, a quem interessar, essencialmente sobre a história do SAPO e a sua criação. O vídeo do PTMail segue num post a seguir.