Arquivo da Tag: mac

Time Capsule Home Made

Há 4 anos atrás publiquei um artigo descrevendo como usar a 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 pela Time Machine.

Com a nova funcionalidade introduzida na última versão do MacOSX (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 a 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 MacOSX, 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ção 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 encontrada pelo MacOSX. 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 MacOSX. A opção seguinte define o mecanismo de autenticação, e é necessário definir esta opção nas versões mais recentes do MacOSX (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.

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 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).

Neste ú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 relavante, 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 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 Resume, que para alguns utilizadores poderá ser bastante útil, mas no meu caso não me tem servido para nada; 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…

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 MacOSX é 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 MacOSX.
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.

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

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 changelog (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/MacOSX, 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 MacOSX

O Dicionário era um dos widgets que mais falta me fazia no MacOSX. 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.

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 a 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 a 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 na Time Machine: backups das últimas 24 horas, backups diários dos últimos 30 dias, e backups semanais no resto (no entanto, alterando algumas vará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 MacOSX, 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 2 anteriormente citados.