Usando o Git para Deployment de Websites

Há uns tempos atrás, depois de vários anos a usar SVN, e de uma breve passagem pelo Mercurial, decidi converter os meus repositórios de código para Git. Ao longo dos últimos meses tenho aprendido a usar este sistema cada vez melhor, muito com a ajuda do Google.

No meio das muitas pesquisas que efectuei, encontrei alguns artigos sobre a utilização do Git para efectuar o deployment de aplicações web. Decidi então investigar um pouco mais este assunto, e ver até que ponto podia tirar partido de um sistema do género. O resultado foi um sistema que me permite fazer o deployment de uma aplicação web através de um comando git push para um determinado repositório no servidor de produção. O Git do servidor encarrega-se de colocar as alterações enviadas online, num website de testes ou de produção, dependendo do branch em causa. A solução é bastante simples, e passa pela utilização de hooks, que são basicamente scripts executadas automaticamente em conjunto com outras acções do Git.

O primeiro passo para colocar o sistema a funcionar passa por criar um repositório Git no servidor remoto.  Neste artigo vamos chamar-lhe repo, e vamos colocá-lo em /var/git. Isto pode ser feito através dos comandos:

mkdir -p /var/git/repo
cd /var/git/repo/
git init --bare

(De referir que caso use a pasta /var/git irá precisar de permissões de administrador para executar os comandos.)

De seguida passamos à criação do hook. Neste caso concreto, vamos usar um post-receive hook, que é executado no servidor no final de uma acção push. Assim, para definir o hook criamos o ficheiro hooks/post-receive, onde colocamos uma script com as acções a executar depois de um push. Na primeira linha da script vamos colocar #!/bin/bash, para indicar quem vai executar a script. Na linha seguinte colocamos read oldrev newrev refname. O objectivo desta linha é permitir saber qual o branch que foi usado no push, de modo a permitir efectuar acções diferentes em função do branch, que ficará associado à variável $refname.

Agora passamos à parte de especificar as acções a realizar. Vamos assumir que existem dois branchs, o dev e o master, e que sempre que se fizer push do dev se pretende actualizar os ficheiros na pasta /var/www/dev/ e sempre que se fizer push do master se pretende actualizar os ficheiros na pasta /var/www/main/. Para tal, vamos usar o seguinte código:

case "$refname" in
	refs/heads/master)
		echo 'Deploying files to production website...'
		GIT_WORK_TREE=/var/www/main git checkout -f master
		echo 'Fixing file permissions...'
		# chmod ...
		echo 'Done.'
		;;
	refs/heads/dev)
		echo 'Deploying files to development website...'
		GIT_WORK_TREE=/var/www/dev git checkout -f dev
		echo 'Fixing file permissions...'
		# chmod ...
		echo 'Done.'
		;;
	*)
		echo "No deployment action (unknown refname: $refname)."
		;;
esac

O comando case trata de escolher a acção apropriada. Por exemplo, no caso do branch master, usamos o comando GIT_WORK_TREE=/var/www/main git checkout -f master para actualizar os ficheiros, indicando a pasta onde os mesmos são colocados através da variável GIT_WORK_TREE. Por vezes temos também que corrigir as permissões e/ou proprietários dos ficheiros, pelo que devem ser adicionados os comandos apropriados. Também podemos imprimir algumas mensagens de feedback, que serão mais tarde mostradas no cliente que está a fazer push.

Um pormenor a ter em conta é que o utilizador usado na operação de push terá que ter permissões para realizar as referidas operações (entre outras, precisará de permissões de escrita em /var/git/repo, /var/www/main e /var/www/dev).

Depois disto podemos então adicionar o repositório remoto do servidor de produção ao nosso repositório local através do comando git remote add <id> ssh://<utilizador>@<dominio>:/var/git/repo. E pronto, agora sempre que quisermos fazer deployment das actualizações feitas na nossa cópia local basta usar o comando git push <id> master, por exemplo.

Referências

  1. http://sebduggan.com/blog/deploy-your-website-changes-using-git/
  2. https://halfthetruth.de/2011/09/13/using-git-to-deploy-a-website/
  3. http://thekeesh.com/2012/01/lightweight-deployment-with-git/
  4. http://www.janosgyerik.com/deploying-new-releases-using-git-and-the-post-receive-hook/

Linux: Evolução?

A minha experiência com Linux começou há um pouco mais de 10 anos atrás.  Primeiro com a utilização do Red Hat nos PCs da universidade, e algum tempo depois em casa, usando o Fedora, que tinha acabado de ser lançado.

Lembro-me que na altura a instalação do Fedora era incrivelmente simples, apesar de todos os mitos existentes na época, quanto à dificuldade do Linux.  Na verdade, considero que a instalação do Linux era até bem mais simples do que a do Windows.  É claro que havia alguns problemas de compatibilidade com hardware, mas havia suporte razoável para praticamente tudo (quando substituí o Fedora pelo SuSE, penso que passei mesmo a ter suporte para tudo).

Depois de passagens por várias distribuições, acabei por assentar no Debian, pela sua estabilidade fora de série.  Desde 2007 a 2011, consegui manter um sistema praticamente sem qualquer falhas/crashes, e mais uma vez com todo o hardware a funcionar.

Mais recentemente, depois de trocar de desktop, a gráfica ainda não era suportada pelo kernel da última versão do Debian, pelo acabei por decidir experimentar o Ubuntu 12.04 LTS, uma versão já com mais de um ano na altura da instalação.  Esperava um nível de estabilidade semelhante ao Debian, mas enganei-me redondamente…

Logo nos primeiros dias, durante a instalação e configuração da máquina tive mais crashes que em todos os anos em que usei Debian juntos.  Depois, os problemas com o hardware também estão de volta.  Foram precisos vários dias para conseguir afinar o SO, em que tive que lidar com problemas de formatação de disco (alinhamento de sectores, que não estava a ser bem efectuado para o meu disco), problemas com o esquema de partições (GPT), problemas com o UEFI e gestor de arranque, etc.

Em cima disto tudo, temos ainda os ambientes gráficos.  Seja com o GNOME 3, o KDE, ou o Unity, a experiência de utilização pareceu-me bastante inferior à que obtinha com o GNOME 2, que disponibilizava um ambiente gráfico muito simples e fácil de usar.  A solução passou por perder uma horas a configurar um ambiente GNOME Classic (depois de experimentar o LXDE e o XFCE).

Moral da história: às vezes parece que o Linux em vez de evoluir, está a regredir.

Coisas que Irritam num Website

Há vários aspectos na forma como os sites são desenhados que os podem tornar desagradáveis para os visitantes. Ao longo dos últimos tempos, decidi recolher uma série de aspectos que contribuem para dificultar a vida dos visitantes de um site. Fica aqui uma pequena lista:

  • Não ser possível abrir links num novo separador.
    Isto é um problema típico de links que usam Javascript, que ainda têm vários outros problemas, como dificultar a cópia do link, ou não conseguir saber para onde é que o URL me vai levar. Ainda neste capítulo, temos também a utilização de URLs curtos em todo o lado (em algumas situações são úteis, mas actualmente são usados em excesso).
  • Ter que ir ao Internet Explorer para o poder usar um site.
    Felizmente é uma situação cada vez menos comum, mas ainda acontece. Isto é meio caminho andado para deixar de usar um site/serviço.
  • Estar constantemente a receber mensagens de confirmação.
    Eu espero que o software me informe quando alguma coisa correu mal, e não propriamente sempre que funciona como devia!
  • Abrir um site sem Javascript e não ver coisa alguma.
    Temos uma tendência nos últimos anos para que os sites dependam cada vez mais de Javascript. É normal que se percam funcionalidades quando não se tem Javascript activo. Ainda assim, acho que é um bom princípio garantir sempre que o site é usável sem Javascript. No mínimo, convém informar os utilizadores que o site não funciona sem Javascript.
  • Abrir um site e uma música começar a tocar.
    Pode ser bastante desagradável se estivermos num local onde é suposto haver silêncio. Irrita-me particularmente quando o site tem publicidade com som. Por vezes, no meio de vários separadores, nem é fácil descobrir de onde vem o som. Os plugins para bloquear Flash ajudam a evitar este problema (infelizmente não existem para todo o software).
  • Que me enviem a password de registo por email.
    Nada como termos cuidado onde guardamos as passwords, para depois nos aparecer um site que nos manda a password para o email.
  • Página com conteúdo dinâmico que altera constantemente a posição do texto.
    Isto é meio caminho andado para nos perdermos na leitura de um texto. Aplica-se também para páginas com refresh automático, o que é problemático em sites de jornais, por exemplo, que frequentemente têm funcionalidade activa.
  • Editores WYSIWYG.
    Ainda não vi um único que funcionasse suficientemente bem para me convencer a deixar de usar os editores básicos. Para além de terem frequentemente bastantes bugs, o facto da funcionalidade de copiar & colar preservar a formatação também costuma dar maus resultados, com os textos a ficarem cheios de formatação inútil, desenquadrada dos estilos por omissão do site.
  • Sites com artigos sem data facilmente visível.
    Isto é algo que depende do conteúdo. Mas temos muitos artigos que facilmente se tornam obsoletos (por exemplo, um artigo sobre uma determinada versão de um produto/serviço), onde é essencial sabermos a data para se decidir sobre se vale a pena ou não ler um artigo (talvez a ideia de algumas pessoas seja evitar que alguém deixe de ler um artigo por este estar obsoleto, mas pelo menos no meu caso isso não dá grande resultado).

Time Capsule Home Made

Há 4 anos atrás publiquei um artigo descrevendo como usar o Time Machine com SMB. Usei essa estratégia para conseguir usar o meu router com dispositivo de backup. Na altura referi a tentativa frustrada de usar o protocolo AFP (através do Netatalk) em vez do SMB, visto que o AFP é suportado de forma mais transparente que o SMB pelo Time Machine.

Com a nova funcionalidade introduzida na última versão do Mac OS X (10.8), que permite definir vários dispositivos de backup, decidi configurar uma máquina Linux à qual tenho acesso como um dispositivo de backup alternativo. E também decidi tentar novamente o Netatalk, de modo a simplificar ao máximo o processo de backup. Desta vez, e com a flexibilidade adicional de estar a usar um PC em vez de um router, fui bem sucedido :). Neste artigo vou então descrever os passos necessários para configurar um PC com Linux (Debian 6 neste caso) para funcionar como uma Time Capsule.

O primeiro passo consiste em instalar o Netatalk na máquina com Linux. É recomendável instalar a versão 3, visto que adicionou algumas novas funcionalidades, que são úteis quando se pretende usar o Time Machine. A versão disponibilizada nos repositórios oficiais do Debian é bastante antiga (2.2), pelo que vamos instalar o Netatalk compilando o código fonte. Assim, começa-se por fazer o download da última versão do Netatalk (3.0.2, na presente data) a partir do site oficial do projecto. Isto deverá colocar no vosso PC um ficheiro comprimido, que, obviamente, é necessário descomprimir. Depois disto, vamos então passar à compilação do Netatalk. Para tal, temos de abrir o Terminal (no meu caso, disponível em Applications > Accessories > Terminal), e mudar para a pasta que contém os ficheiros descomprimidos (usando o comando cd /caminho/da/pasta/). Antes de passarmos à compilação, temos que instalar algumas dependências. Usando uma aplicação como o Synaptic, ou o apt-get directamente no Terminal, é necessário instalar os seguintes pacotes (e respectivas dependências):

  • libacl1
  • libacl1-dev
  • libdb-dev
  • libldap2-dev
  • libavahi-client-dev
  • libgcrypt11-dev

O último é particularmente importante para quem usa a versão 10.7 ou posterior do Mac OS X, pois na ausência do mesmo irão muito provavelmente obter erros de autenticação quando se tentarem ligar ao dispositivo de backup.

Podemos agora passar à compilação e instalação do Netatalk, que é feita usando os seguinte comandos:

./configure --enable-quota --enable-zeroconf --with-init-style=debian
make
sudo make install

No primeiro comando definimos algumas opções de compilação. O enable-quota servirá para limitarem o espaço que será disponibilizado para backup (caso não queiram disponibilizar o espaço todo disponível no volume). O enable-zeroconf permitirá que o volume de rede seja automaticamente encontrado pelo Mac OS X. A última opção é para que as scripts de inicialização automática do Netatalk quando o SO (Linux) arranca sejam também geradas. O último comando, que instala o Netatalk, necessita de permissões de administrador, e pode ser necessário introduzir a sua password.

Para termos a certeza que o Netatalk irá sempre arrancar com o SO, deve-se correr o comando sudo update-rc.d netatalk defaults no Terminal.

Depois disto, é só configurar o Netatalk. O ficheiro de configuração está localizado em /usr/local/etc/afp.conf. Vamos editá-lo usando o comando sudo gedit /usr/local/etc/afp.conf. Mais uma vez vai precisar de permissões de administrador, e poderá ser necessário introduzir a sua password. Em vez do gedit pode utilizar outro editor qualquer da sua preferência. Abaixo segue uma configuração minimalista.

[Global]
; Global server settings
zeroconf = yes
uam list = uams_dhx2.so

[time-machine]
path = /path/para/paste/de/backup/
time machine = yes
vol size limit = 80000

Primeiro temos um conjunto de configurações globais. A opção zeroconf convém activar para que o volume seja mais facilmente detectado no Mac OS X. A opção seguinte define o mecanismo de autenticação, e é necessário definir esta opção nas versões mais recentes do Mac OS X (10.7+).
Depois temos as configurações do volume de backup, ao qual chamei time-machine. Primeiro definimos o caminho para o pasta que será partilhada (e onde serão armazenados os backups). Depois indicamos que o volume suporta Time Machine. E por último definimos o tamanho do volume (que será o espaço disponível para a Time Machine usar).

Existem muitas outras opções de configuração. Para uma descrição exaustiva das mesmas, podem aceder a este link.

Depois de concluída a configuração, deverá ser suficiente ter o mac (que pretendemos fazer backup) na mesma rede que o sistema Linux, e ir às preferências da Time Machine para adicionar um novo dispositivo de backup, e deverão ter lá um volume chamado time-machine (ou com o nome que vocês escolheram).

Extra: Cifrar os Backups

O Mountain Lion disponibiliza a opção de cifrar os backups ao adicionarem o volume nas preferências da Time Machine. Em versões anteriores podem usar o este tutorial para obterem backups cifrados.

Aplicações para iPhone/iPod Touch

Existem milhares de aplicações disponíveis para os dispositivos móveis da Apple (iPhone, iPod Touch, e iPad). Se por um lado isto dá muitas opções aos utilizadores, por outro lado também dificulta a escolha da aplicação ideal para um determinado fim. Assim, pretendo aqui deixar uma análise a uma lista de aplicações que mais uso, na esperança que tal seja útil a quem está a escolher aplicações para usar.

Dropbox

O Dropbox é uma aplicação para sincronizar ficheiros entre vários dispositivos, e já aqui a referi anteriormente. Disponibiliza uma forma muito simples de copiar ficheiros entre um PC e um iPhone/iPod. Adicionalmente, também nos permite visualizar alguns dos formatos de ficheiros mais comuns.
[Gratuito s/ publicidade]

iBooks

É a aplicação disponibilizada pela Apple para ler ebooks. É uma aplicação bastante simples, e, na minha opinião, serve perfeitamente o seu propósito.
[Gratuito s/ publicidade]

Skype

Aplicação de VoIP bastante conhecida. Disponibiliza uma forma simples (e barata) de podermos falar com outras pessoas. Uma aplicação simples, mas com o essencial.
[Gratuito s/ publicidade]

Linphone

Tenho uma conta VoIP do Sapo, que me permite fazer chamadas gratuitas para a rede fixa. Para ter acesso ao serviço, só é preciso um cliente SIP. Primeiro experimentei o Fring, mas nunca o consegui ter a funcionar decentemente. Na altura, a única alternativa que encontrei foi o Linphone. Tem apenas um ecrã para marcar números, um histórico, e acesso à lista de contactos. Basicamente, aquilo que é necessário neste tipo de aplicações. Nas primeiras versões que usei, tinha problemas ao reiniciar a aplicação, mas entretanto parece que os problemas foram resolvidos.
[Gratuito s/ publicidade]

Grocery Gadget Basic

Já testei dezenas de aplicações para fazer listas de compras. Em quase todas elas, ou havia funcionalidades em falta, ou tinham muitas funcionalidades que eu não usava e que tornavam a UI desagradável/confusa, ou tinham uma UI muito mal desenhada. Durante muito tempo usei o Grocery iQ, mas comecei a achar a aplicação confusa de mais, e por isso decidi voltar a testar novas aplicações. Acabei por escolher Grocery Gadget Basic. Tem as funcionalidades que me são úteis (várias listas, categorias, quantidades), e tem uma UI bastante simples (sem confusões com lojas, códigos de barras, cupões, cartões, etc.).
[Pago ($0.99)]

Nexus Money

Esta foi mais uma categoria onde testei mais de uma dezena de aplicações até encontrar uma que me pareceu adequada ao meu uso. O Nexus Money é uma aplicações para manter um registo das nossas finanças (o dinheiro que ganhámos e que gastamos). As entradas, para além de um título, valor, e data, também têm categoria (que é automaticamente escolhida para entradas que já tenham sido usadas anteriormente), um campo para descrição mais detalhada, e a hipótese de definir repetições. O ecrã principal mostra-nos os detalhes de um dia, bem como o balanço actual, e o total de despesas e ganhos para o mês actual. Permite também mostrar alguns relatórios, por exemplo, com as despesas por categoria para um determinado período, ou um gráfico com as despesas e ganhos ao longo dos meses. Apesar de tudo, a parte dos relatórios é um aspecto onde acho que esta aplicação poderia evoluir bastante, sobretudo ao nível de gráficos. As funcionalidades da aplicações incluem também a possibilidade de definir uma password para aceder à aplicação, de escolher a moeda, ou de fazer backups (os ficheiros de backup são XML, pelo que podem ser facilmente usados noutras aplicações).
[Pago ($1.99)]

Awesome Note

O aNote é uma aplicação para guardar notas. As notas podem ser de vários tipos (como aniversários ou TODOs). Uso-a essencialmente para guardar TODOs, e ocasionalmente para simples notas. Possui a possibilidade de organizar as notas em diferentes pastas, havendo a possibilidade de proteger as pastas com password. Os TODOs podem ter data limite para serem feitos, estado (em progresso, pendentes, etc.), podem-se repetir periodicamente, e podem também ter um alarme (que podemos dizer para se repetir todos os dias depois da data limite). Também podemos associar tags às notas, e atribuir-lhe um nível de importância. Relativamente à visualização da lista de notas, oferece um amplo conjunto de opções, ao nível da informação mostrada, aos nível de filtragem de notas, e ao nível da ordenação. Por fim, também oferece várias opções de sincronização, partilha, e backup.
[Pago ($3.99)]

Converter Plus

O Converter Plus é uma aplicação de conversão de unidades. É particularmente útil quando se está num país que usa um sistema de unidades diferente do nosso (como o Reino Unido, ou os EUA). Oferece um extenso conjunto de grandezas e de unidades. Permite personalizar a UI de modo a mostrar apenas as grandezas e unidades que nos interessam.
[Gratuito c/ publicidade]

WordWeb Dictionary

O WordWeb é um dicionário de inglês offline. Não é nada de mais, mas chega para o que preciso. Já testei algumas alternativas, com bases de dados maiores, como o Dictionary.com e o Dictionary!, mas para além de terem publicidade, também tinham alguns bugs.
[Gratuito s/ publicidade]


E pronto, por agora fico por aqui. Há mais algumas aplicações que uso (desde logo as que nem podemos remover), mas fiquei-me por aquelas em que me pareceu que a sua análise seria mais útil a outras pessoas.

De referir que o que escrevi reflecte as minhas necessidades e preferências (por exemplo, normalmente prefiro as aplicações o mais simples possível, e que não poluam a UI com funcionalidades que nunca uso), assim como o dispositivo que possuo (um iPod Touch 3g, ou seja, sem ligação constante à internet, sem GPS, sem câmera, ecrã de 480×320). Noutros dispositivos, outras funcionalidades poderiam fazer sentido, tornando outras aplicações mais adequadas.

Avaliação de Websites: Algumas Ferramentas Úteis

Depois de se construir um website, é conveniente fazer alguns teste, e verificar se está tudo em ordem, ou o que ainda pode ser melhorado. Desde validar o código HTML, até verificar se o desempenho das páginas é razoável, há várias coisas que se podem fazer. Ficam então aqui algumas ferramentas que podem ser úteis neste processo.

Ferramentas do W3C

O W3C fornece um conjunto de ferramentas de validação para avaliar a qualidade de um website. Entre essas ferramentas estão o Unicorn, que permite verificar se algumas das tecnologias usadas num website (HTML, CSS, Atom, etc.) estão de acordo com os standards. Temos também o Link Checker, que permite encontrar links inválidos. Ambas são ferramentas disponíveis online, e que não requerem instalação software.

Adicionalmente, podemos também usar o W3C::LogValidator, um conjunto módulos Perl que nos permitem correr as ferramentas de validação nos nossos PCs. Esta solução será particularmente útil para quem mantém websites de alguma dimensão. Pessoalmente, só experimentei o módulo para verificar links inválidos (e que me permitiu encontrar alguns erros que não tinha encontrado com a ferramenta online).

Acessibilidade

Ao nível de verificação de normas de acessibilidade, as melhores ferramentas que encontrei foram o WAVE e o AChecker.

O WAVE mostra-nos as páginas que estamos a verificar, com algumas anotações, alertando para problemas, ou potenciais problemas (que devem ser verificados manualmente). Esta ferramenta agradou-me sobretudo pela facilidade em utilizá-la.

Já o AChecker produz um relatório textual, também identificando problemas e aspectos que requerem verificação manual. Uma vantagem do AChecker (relativamente ao WAVE), é que nos permite facilmente consultar a documentação relevante para percebermos melhor os problemas e como o corrigir. Adicionalmente, também me parece mais completo do que o WAVE.

Desempenho

Hoje em dia, com as melhorias na qualidade das ligações à internet, há quem defenda que o desempenho não é propriamente um problema. Ou pelo menos, questões como o tamanho (bytes usados) das páginas, número de imagens usadas (ou até número de ficheiros), e afins, não são muito importantes. Uma das razões para discordar desta visão, é a utilização cada vez maior de internet móvel, onde a largura de banda é muitas vezes um problema.

Para descobrir aspectos a serem optimizados, recorri sobretudo às ferramentas disponibilizadas pelos browsers, nomeadamente o Web Inspector do Safari (que é em tudo semelhante ao do Google Chrome). Em particular, a tab Audits indica-nos vários aspectos que podem ser melhorados, como a utilização de compressão e caches, a redução do tamanho de ficheiros (quer ficheiros de texto, como CSS, quer imagens), a redução do número de ficheiros, entre outras coisas.

Outras duas ferramenta semelhantes para este efeito são as extensões para Firefox Page Speed e YSlow, que também me pareceram muito boas (na verdade, até achei estas mais completas do que o Audits).

Outros

Outro aspecto importante para um website é a sua visibilidade em termos de motores de busca. Aqui, ferramentas como o Google Webmaster Tools ou Bing Webmaster Tools, podem ser úteis, permitindo submeter sitemaps, ver erros encontrados no processo de crawling, redireccionar domínios, etc.


Existem certamente muitas outras ferramentas, e provavelmente melhores do que as que indiquei, até porque na minha pesquisa dei preferência a ferramentas gratuitas, e que pudessem ser usadas online. Mesmo assim, acredito que as ferramentas aqui apresentadas podem ser bastante úteis. E é claro, não se esqueçam de uma outra ferramenta também bastante eficaz a detectar problemas: testes manuais em diferentes browsers e sistemas operativos 🙂

O Debate de Ideias na Blogosfera

Aqui há uns meses atrás, passei por um certo blog, onde escreve um ilustre deputado da nação, o João Galamba. Na altura, reparei num post que não estava muito correcto, e que alguém tinha sugerido que não estava correcto. Eu resolvi acrescentar uma fonte a confirmar a incorrecção.

No blog em causa os comentários estão sujeitos a moderação, pelo que resolvi passar por lá mais tarde a verificar se o comentário já tinha sido aprovado, e se havia mais comentários. Ainda não tinha sido aprovado. No dia seguinte, volto a verificar, e nada. Volto a repetir o comentário. Mais um dia passado, e nem o primeiro nem o segundo estão aprovados. Até que ao terceiro (não, os meus comentários não apareceram ao terceiro dia…), dizia eu, no terceiro dia aparece um comentário posterior (comentário de “Vieira a 21 de Maio de 2011 às 18:48”). Este comentário posterior tinha a particularidade de defender a posição do post inicial, pelo que comecei a suspeitar que apenas os comentários favoráveis eram aprovados.

Alguns dias depois, os meu comentários, assim como vários outros que mostravam que o post não fazia sentido, lá aparecem. Afinal, os comentários desfavoráveis sempre são publicados. Na altura fiquei sem perceber muito bem o que se tinha passado. Mas também não liguei muito à questão.

Há uns dias atrás, ao ler o blog do Marco Amado, encontrei uma explicação bastante razoável para o que me aconteceu (e que na mesma altura também aconteceu por duas vezes ao Marco Amado): os comentários não são completamente censurados, e eventualmente são tornados públicos, mas tal só acontece quando o post em causa já está bem enterrado, minimizando o número de pessoas que os vêem. É claro que entretanto os comentários favoráveis vão aparecendo.

É apenas uma teoria, é certo, mas vindo dos nossos democratas, já nada me espanta.

Mac OS X Lion: breve review

Apesar de ter instalado o Lion num disco esterno há cerca de um mês, só na passada semana é que migrei definitivamente para a nova versão do Mac OS X. Não obstante as muitas novidades anunciadas, a verdade é que não tinha grandes expectativas para a nova versão do SO da Apple, onde estava à espera de algumas funcionalidades interessantes, mas também de alguns aspectos negativos. Comecemos então pelos pontos negativos…

Uma das coisas que mais me desagradou no Lion, foi a remoção do iSync. Basicamente, isto significa que acabaram as sincronizações de contactos e calendário com a maior parte dos telemóveis (telemóveis que usam o protocolo SyncML). Ainda relacionado com os contactos e calendário, tivemos também algumas mudanças no Address Book e iCal, nomeadamente ao nível do interface gráfico. Sempre admirei o Mac OS X pela simplicidade do seu interface gráfico, simplicidade que deixou de existir nestas aplicações. Qualquer um destes problemas pode ser contornado, aproveitado as versões anteriores das aplicações, mas é apenas isso, contornar o problema…

Outra novidade foi o Mission Control, que veio substituir o Exposé e o Spaces. Pessoalmente preferia a solução anterior, que me permitia facilmente mudar de aplicação/janela, mesmo quando esta estava a correr num ambiente diferente, ou também mudar as aplicações de ambiente. Actualmente, temos pouco controlo sobre as aplicações/janelas que não estão no ambiente actual.

O Mail também disponibiliza uma nova forma de organização da interface gráfica. Ainda estou a tentar habituar-me a esta nova forma de organização, mas parece-me que faz uma má gestão do espaço, e é provável que vá voltar ao esquema antigo.

Entre as coisas que me agradaram, está a nova versão do iChat, que juntas várias contas na mesma janela, e que me fez abandonar o Adium (e já agora, as contas MSN).

Nesta última versão do SO passou também a ser possível criar disco cifrados, o que é bastante útil para manter os meus discos de backup um pouco mais seguros. Esta funcionalidade permite cifrar os backups feitos com o Time Machine. Infelizmente, parece-me que esta funcionalidade não funciona quando temos mais do que uma partição num mesmo disco… O FileVault tem também uma nova versão, que parece já funcionar decentemente com o Time Machine (mas é algo que ainda não experimentei). Ainda relativamente ao Time Machine, temos agora a possibilidade de manter backups locais, ou local snapshots (para quando não estamos ligados à unidade de backup). Nada de muito relevante, visto que no Snow Leopard já tinha uma partição local para backups do Time Machine (agora há a vantagem de não termos que configurar nada, nem trocar de unidade de backup quando nos ligamos à unidade de backup externa). Para já, vejo três aspectos a melhorar: a possibilidade de definir o intervalo temporal entre backups (até agora apenas consegui mudar este intervalo para os backups não locais), a possibilidade de definir o tamanho máximo usado por estes backups, e a possibilidade de copiar dos backups locais para a unidade de backup externa quando esta é ligada.

O novo Mac OS X é também menos restritivo no que diz respeito a máquinas virtuais, e é agora permitido ter máquinas virtuais com a versão normal do SO (anteriormente apenas era possível com a versão servidor). Isto é útil para manter um ambiente de testes, permitindo manter o SO principal (não virtualizado) mais limpo.

Para terminar, referia mais algumas novidades bastante publicitadas, mas que me parece pouco relevantes: o Launchpad, que me parece inútil (o Spotlight é bem mais prático); e o Resume, que ainda não é suportado por várias aplicações.

Resumindo, apesar de ter o preço acessível, a verdade é que o SO pouco trás de novo…