Arquivo da Categoria: Tecnologia

Google Chrome

Há umas semanas atrás decidi dar uma oportunidade ao Google Chrome, e comecei a usá-lo como browser principal, tendo praticamente deixado de usar o Safari.

Umas das razões que me levou a experimentar o Chrome foi o consumo de memória completamente absurdo do Safari. Como passava semanas sem encerrar o Safari, facilmente atingia consumos de memória da ordem dos 500MB, e o pior de tudo é que mesmo depois de fechar vários separadores (ou mesmo todos), o consumo de memória continuava elevado. Tipo, parece-me aceitável que gaste 300 ou até 400MB de memória quando estão umas dezenas de páginas aberta, mas depois de as fechar, esperava que o consumo de memória baixasse para valores próximos de quando o Safari arranca, ou de quando acabamos de abrir uma ou duas páginas (algo na ordem dos 100MB parece-me aceitável). Mas isto não acontece, e várias vezes tinha o Safari sem qualquer página aberta a gastar mais de 400MB.

Nos testes que fiz, este parece ser um problema que o Chrome consegue resolver. A verdade é que ao usar vários processos separados para abrir as páginas, torna-se mais simple fazer a gestão da memória, e tendo em conta que depois de fecharmos todas a janelas, os processos a elas associados terminam (fazendo com que toda a memória que o processo estava a consumir seja libertada), a maior parte da memória é efectivamente libertada.

Um dos problemas que encontro no Firefox para Mac OS X é o facto de este não estar bem integrado no SO. Não usa os certificados do SO, não usa o sistema de gestão de palavras-passe SO, não usa o corrector ortográfico do SO, não usa as definições de proxy do SO, etc. Estas foram algumas das razões que me levaram a deixar de usar o Firefox no Mac OS X. Pensei que o Chrome fosse apresentar o mesmo problema, mas felizmente estava enganado, e parece estar razoavelmente integrado no SO.

Por outro lado, descobri hoje que o Chrome possui algumas funcionalidades bastante interessantes ao nível do controlo de cookies, JavaScript e plugins (Flash). As primeiras eram duas das coisas que mais falta me faziam no Safari (para bloquear o Flash já tinha arranjado um plugin). Relativamente aos cookies, tem a opção de perguntar se quero aceitar ou bloquear os cookies, e tem a opção de guardar a opção para aquele site, permitindo-me construir facilmente uma lista de sites onde quero permitir (ou não) a utilização de cookies. Ao nível de JavaScript permite-me desactivá-lo, tendo uma lista de excepções para indicar sites onde este deve ser permitido (penso que é algo semelhante ao que o NoScript faz). Quanto ao Flash, o funcionamento é semelhante ao do JavaScript. Adicionalmente, sempre que uma página é impedida de usar cookies, JavaScript ou Flash, aparece um ícone na barra de endereço, que permite facilmente activar a funcionalidade para aquele site (infelizmente para já apenas permite adicionar o site à lista de excepção, e não dar autorizações temporárias).

É claro que o Chrome está longe de ser perfeito, tem alguns bugs (nada de admirar, visto que estou a usar a versão de desenvolvimento), e faltam algumas funcionalidades importantes, como o Java e a possibilidade de visualizar ficheiros PDF directamente. Ainda assim, estou bastante satisfeito.

Um contributo do iPhone

Pessoalmente nunca fui grande fã do iPhone. Apesar de ser um mac user, e de achar que o iPhone tem uma usabilidade bastante acima da média quando comparado com outros dispositivos do mesmo género, nunca foi um produto que eu achasse que valia a pena comprar.

Apesar de tudo, hoje descobrir um motivo para gostar do iPhone. Parece que a Virgin America decidiu deixar de usar flash no seu site devido ao facto do iPhone não o suportar.

Ou seja, o iPhone poderá contribuir para que os web developers comecem a pensar se realmente precisam de usar flash e recorram a este apenas quando é mesmo necessário.

Adenda: parece que há mais sites que se preparam para seguir o mesmo caminho

Documentação de Código

Desde há umas semanas que tenho andado a analisar o código de duas aplicações de dinâmica molecular bastante conhecidas, e largamente usadas, o NAMD e o GROMACS.

Tendo em conta a reputação das aplicações, seria de esperar uma documentação a condizer. Mas se ao nível da documentação para o utilizador, até esteja bastante completa, o mesmo não se pode dizer da documentação do código. Não encontrei um único documento que descrevesse os vários módulos que constituem a aplicação, nem que descrevesse quais as funcionalidades das várias funções. A única solução possível para perceber a aplicação é, assim, percorrer as centenas de ficheiros que a constituem. E mesmo percorrendo os ficheiros, continua a ser complicado perceber quais as funcionalidades que estes disponibilizam, pois os comentários no código não abundam…

Custa-me um pouco a perceber como é que aplicações desta dimensão têm uma documentação tão pobre…

Widget DicionarioPT agora com conjugação de verbos

Era uma das funcionalidades que temos disponível no site da Priberam, mas que não estava acessível no widget. Agora este problema foi resolvido, e os links que permitem conjugar um verbo já estão a funcionar 🙂

Entretanto, aproveitei para criar uma página para o widget, onde está disponível um change log (para além da descrição do widget, e onde colocarei outras informações relevantes).

Click to Flash

Há uns anos atrás, comecei a usar uma extensão para o Safari chamada SafariStand. Já não sei exactamente qual o motivo que me levou a usar esta extensão, mas com o tempo comecei a dar cada vez menos importância às funcionalidade por esta disponibilizadas. Actualmente, penso que a única funcionalidade que realmente me dava jeito era a capacidade de bloquear flash nos sites, sendo estes conteúdos apenas carregados quando clicasse neles.

Como o Stand é uma extensão um pouco pesada, decidi procurar por outras extensões que me permitissem bloquear flash no Safari, e encontrei uma extensão chamada Click to Flash. Tal como o nome indica, serve para bloquear flash, e possuiu mais algumas opções neste campo quando comparado com o Stand. Por exemplo, permite indicar sites em que o flash não é bloqueado, ou carregar todos os conteúdos em flash de uma página de uma só vez.

Para aqueles que usam Safari/Mac OS X, e que, tal como eu, se sentem incomodados com grande parte das animações flash que se vêem nos sites, penso que é uma extensão que vale a pena experimentar.

Dicionário de português – widget para Mac OS X

O Dicionário era um dos widgets que mais falta me fazia no Mac OS X. Infelizmente, há alguns dias atrás, depois de algumas alterações no site da Priberam (donde o widget extraía a informação), deixou de funcionar. Adicionalmente, o autor (José Coelho) também deixou de manter o widget.

Resolvi então dedicar algum tempo a analisar o código fonte do widget, de modo a tentar resolver o problema.

Nunca tinha trabalhado no desenvolvimento de widgets, nem com JavaScript (a linguagem mais relevante para este widget), mas a Apple disponibiliza uma excelente ferramenta para este tipo de tarefa, o Dashcode (que infelizmente só descobrir depois de já ter perdido umas horas a usar o Vim como editor, e a Console para ver os erros), e o JavaScript também é relativamente simples (a minha maior dificuldade foi não ter encontrado uma API com as funções que poderia usar).

E assim, aos fim de alguns dias, lá consegui colocar o widget novamente funcional.

Quem estiver interessado, pode fazer download do widget aqui: DicionarioPT.

Também criei uma página com informações sobre o widget aqui.

SO irritante! (2)

Parece que não sou o único a queixar-me da forma como o sistema de actualizações do windows funciona…

A reinicialização automática do windows depois das actualizações, levou os responsáveis pelo sistema informático de um hospital a desligar as actualizações de segurança, que foi, basicamente, a mesma solução que eu encontrei para resolver o problema. Só que neste caso, fez com que os PCs ficassem vulneráveis, e fossem infectados por programas maliciosos. De realçar que estamos a falar do sistema informático de um hospital!

PS: Obviamente que os responsáveis do sistema informático do hospital também têm culpas no sucedido, mas se o modo de actuar do windows fosse outro, provavelmente nunca teria sido necessário desligar as actualizações.

Time Machine no Tiger ou no Linux

Há algum tempo atrás, depois de começar a usar um MacBook como a minha máquina principal, decidi voltar a meter o Tiger no meu PowerBook. Tendo em conta o pouco uso que lhe dou actualmente, chega perfeitamente. A única funcionalidade que senti mesmo falta foi o Time Machine.

Tendo em conta que era uma funcionalidade que também me dava jeito no Linux, decidi investigar um pouco, para ver se encontrava alguma alternativa. Depois de ler isto e isto, consegui perceber o funcionamento da Time Machine. As scripts apresentadas nos sites indicados, tinha o problema de não fazer uma gestão tão elaborada dos backups antigos como o Time Machine. Assim, decidi fazer uma script um pouco mais completa.

O resultado final pode ser encontrado aqui.

É uma script Perl que faz backups incrementais (usando o rsync), e que apenas apaga os antigos caso seja usada uma opção disponível para esse efeito. A estratégia seguida para apagar backups antigos é semelhante à seguida no Time Machine: backups das últimas 24 horas, backups diários dos últimos 30 dias, e backups semanais no resto (no entanto, alterando algumas variáveis na script, podemos adaptar isto às nossas necessidade).

Para ter a script a correr de hora em hora é só adicionar uma entrada no cron (o ideal seria usar o launchd, mas estava a ter alguns problemas com esta alternativa).

NOTA: A script foi testada em Linux (Debian 4.0) e em Mac OS X, estando, aparentemente, a funcionar sem problemas. Ainda assim, recomendo algum cuidado com a sua utilização, pois pode conter bugs. Deverá funcionar em qualquer sistema UNIX, mas não testei em mais nenhum, para além dos dois anteriormente referidos.