Transformando Scripts em Apps no Mac OS X

Scripts em geral são úteis na automatização de tarefas, na organização de processos e tarefas de longa duração. No Mac OS X, existe a possibilidade de se transformar um script em um aplicativo (.app), que pode ser utilizado na inicialização do sistema, logo após o login do usuário. Esta tarefa pode ser realizada utilizando-se o Automator, um programa embutido do Mac OS X que auxilia o usuário a automatizar tarefas, sem a necessidade de se programar um script. Neste post, entretanto, mostrarei como utilizar o Automator para transformar um script em um “App”.

Preparando o Script

Em primeiro lugar, é necessário preparar o script em questão. Se o script recebe argumentos para a sua execução, por exemplo, se ele é executado da seguinte forma:

$ ./script.sh argumento

então, é mais fácil simplificar um pouco o script, se possível, para que seja eliminado o argumento e o script seja executado sem ele. Neste caso, o argumento de entrada – caso seja apenas um tipo único, deve ser “hadrwired” dentro do código. Isso não é interessante em um script, mas para transformá-lo em um “App”, é mais fácil 🙂

Quando o script estiver pronto, sendo possível executá-lo sem a necessidade de argumentos, pode-se abrir o Automator do Mac OS X para preparar o App.

Preparando o App

Abra o Automator (ele fica dentro da pasta Utilities, que fica dentro da pasta Applications). Na tela inicial, selecione “Application”:

Selecionando o tipo Aplicativo no Automator

Selecionando o tipo Aplicativo no Automator

A seguir, selecione a opção “Utilities” (ou Utilitários) e depois a opção “Run Shell Script” (ou Executar Script Shell). Estas opções ficam no painel esquerdo do Automator:

Selecionando a opção a ação "Run Shell Script" no Automator.

Selecionando a opção a ação “Run Shell Script” no Automator.

Depois, clique e arraste a ação “Run Shell Script” (ou Executar Script Shell) para o painel direito do Automator:

Arrastando a ação "Run Shell Script" para o painel direito do Automator.

Arrastando a ação “Run Shell Script” para o painel direito do Automator.

No painel esquerdo do Automator, será aberta uma janela na qual deverá ser digitado o script:

Digite o script na janela posicionada no painel direito do Automator.

Digite o script na janela posicionada no painel direito do Automator.

Depois disso, basta clicar na barra de menus e salvar o “App”:

Salvando o Script em App no Automator.

Salvando o Script em App no Automator.

Depois de salvo, o App se comporta como qualquer outro no Mac OS X, sendo possível – inclusive, adicioná-lo na inicialização do Mac OS X!

catastrophic error: cannot open source file “malloc.h”

Esse erro apareceu quando uma rotina que eu estava tentando compilar não conseguiu abrir o “malloc.h” (uma função para alocamento de memória) no OS X Mountain Lion:

bacio.v1.3.c(14): catastrophic error: cannot open source file "malloc.h"
  #include 
                     ^

compilation aborted for bacio.v1.3.c (code 4)
make[1]: *** [bacio.v1.3.o] Error 4
make: *** [linux] Error 2

Pesquisando na internet, encontrei que uma solução é modificar a rotina com um condicional, o qual funcionou perfeitamente para o meu caso. Basta fazer o seguinte: abra a rotina que está dando o problema (no meu caso, uma rotina chamada “bacio.v1.3.c”), localize a linha de include do “malloc”.h e edite da seguinte forma:

Forma original:

#include

Forma modificada:

#if !defined(__APPLE__)
#include 
#endif

Fazendo isso, o header “malloc.h” poderá ser encontrado no Mac OS, que fica alocado em “/usr/include/sys”.

É isso!

Referências:

Habilitando o servidor Apache no Mac OS X Mountain Lion

Ter um servidor Apache instalado na sua máquina, seja um notebook ou desktop, é uma mão na roda quando se precisa testar um website, permitindo até que outros computadores na rede possam acessá-lo, ajudando-o a testar o site em diferentes navegadores, em diferentes sistemas operacionais (acredite, o Firefox, o Opera  e o Chrome do windows, podem rendererizar diferentemente no linux).

Quando eu comprei o meu MacBook Pro, logo descobri como habilitar o Apache com PHP, e isso foi muito fácil, tal como descrevi aqui.

Mas depois que atualizei para o Mac OS X Mountain Lion, não percebi um detalhe: a opção para habilitar o “Web Sharing” (ou Compartilhamento Web) no painel de controle do Mac OS X, sumiu! Procurando na internet, encontrei este link que ensina a habilitar o servidor Apache do Mac OS X Mountain Lion, mesmo sem ter a opção no painel de controle. Se você está acostumado com o Linux, vai perceber que os procedimentos são muito parecidos – para não dizer praticamente os mesmos. Para facilitar um pouco as coisas, vou resumir os comandos aqui.

Procedimentos

O primeiro passo, é entrar na pasta “/etc/apache2/users/” e criar um arquivo de configuração com o seu nome de usuário:

$ cd /etc/apache2/users/
$ sudo touch `whoami`.conf

A seguir, inclua as seguintes linhas nesse arquivo:

<Directory "/Users/usuario/Sites/">
     Options Indexes MultiViews
     AllowOverride All
     Order allow,deny
     Allow from all
</Directory>

Observe que a palavra “usuario” deve ser substituída pelo seu nome de usuário, que pode ser obtido a partir do comando “whoami” 🙂

Depois, basta iniciar o Apache com o seguinte comando:

$ sudo apachectl start

Dessa forma, o Apache será desabilitado quando você desligar o computador. Caso queira encerrar o Apache antes, basta executar o seguinte comando:

$ sudo apachectl stop

Para terminar a configuração, ajuste as permissões de acesso ao Apache com os seguintes comandos:

$ sudo chown root:wheel /etc/apache2/users/*
$ sudo chmod 644 /etc/apache2/users/*

Para acessar os sites que você estiver editando/testando, basta colocá-los na pasta “Sites” no seu home (se ela não existir, basta criá-la) e digitar o seguinte endereço no seu navegador:

http://localhost/~usuario

Lembrando que “usuario” é o seu nome de usuário. Para que outros computadores da rede possam acessar o seu computador a partir do navegador, basta fornecer o endereço de IP ou o nome da máquina. Exemplos, “http://nome.da.maquina/~usuario&#8221; ou “http://123.456.789/~usuario&#8221;.

Dicas

Se você quiser deixar o Apache ativo o tempo todo, mesmo depois de reiniciar o computador, basta executar o comando:

$ sudo defaults write /System/Library/LaunchDaemons/org.apache.httpd Disabled -bool false

… e se quiser desfazer esse comando (ou seja, fazer com que o Apache não inicie sozinho depois de ligar o computador), basta fazer:

$ sudo defaults write /System/Library/LaunchDaemons/org.apache.httpd Disabled -bool true

Referência

AppleScript + Dropbox = BlogThisTrack!

Rá!

Eu sempre quis colocar em meu blog os livros que leio, os discos que escuto e as coisas que gosto. Fazer uma resenha sobre um disco ou livro, é praxe e mandatório, mas como mostrar – em tempo real – o que estou escutando?

Sabendo das possibilidades e da linguagem AppleScript, como por exemplo, controlar o iTunes e outros programas através da linha de comando, decidi que colocaria na sidebar do meu blog, uma área com a capa do disco que eu estivesse escutando no iTunes. E é bem simples!

Vamos aos ingredientes:

  • Você vai precisar do Dropbox;
  • E do iTunes (a princípio é necessário estar no Mac OS X para executar o script).

A ideia é a seguinte: utilizar um link público do dropbox para disponibilizar uma imagem (a capa do album) no seu site/blog. O AppleScript vai servir para recuperar a capa do Album da música que está sendo tocada no iTunes e colocá-la em um pasta pública do Dropbox; o Dropbox, por sua vez, fornece um link público que será colocado no site. Mas como manter o mesmo link se a imagem é atualizada sempre que uma novo Album estiver tocando? Simples: o link (url) aponta para um link simbólico na pasta pública do Dropbox! Nada como uma bela gambiarra 🙂

O código AppleScript utilizado para recuperar a capa do Album que está tocando no iTunes e copiar para a pasta pública no Dropbox, segue mais abaixo e você deve colocá-lo em:

/Users/$USER/Library/iTunes/Scripts

Se esta pasta não existir, basta criá-la:

$ mkdir -p /Users/$USER/Library/iTunes/Scripts

Feito isto, copie o ApplScript “BlogThisTrack” (download mais abaixo) para a pasta:

$ cp BlogThisTrack.scpt /Users/$USER/Library/iTunes/Scripts

Para fazer tudo funcionar, execute uma vez o AppleScript e, na pasta BlogThisTrack (dentro da pasta pública do Dropbox), crie um link simbólico da imagem do Album recuperada com um nome qualquer, por exemplo:

$ cd ~$USER/Dropbox/Public/BlogThisTrack
$ ln -s iTunes.png albumart.png

Observe que o link “albumart.png” será atualizado sempre que o script AppleScript for executado.

Exemplo dos arquivos que ficam dentro da pasta BlogThisTrack, dentro da pasta pública do Dropbpox. Observe que o arquivo albumart.png é um link simbólico para o arquivo de imagem iTunes.png.

Agora uma parte importante, o link: quando se coloca arquivos dentro da pasta Public do Dropbox, é possível obter um link público para qualquer arquivo. Para fazer isto, pelo Finder, dê um clique de “dois dedos” (clique sobre o arquivo utilizando dois dedos, assim você terá acesso ao menu de contexto do Finder) sobre o arquivo, aponte para o menu do Dropbox e selecione a opção “Copy Public Link”:

Obtendo o link público que será usado para linkar a imagem no seu site/blog.

Feito isto, no site, escolha algum lugar (como uma barra lateral) em que será colocada a capa do Album. Na área escolhida, coloque o código:

<img src="https://link.que.o.dropbox.criou/albumart.png" />

Sinta-se livre para incrementar, adicionando uma borda ou mesmo limitando o tamanho da imagem – assim todas as capas poderão ter o mesmo tamanho 😉

Se você estiver no wordpress, e caso você não tenha acesso ao código-fonte do seu site/blog, a melhor forma de fazer a inserção desse código – e é aí que a coisa fica esperta!, é usar a widget de texto.

Insira uma widget de texto na área que você quiser e insira o código acima.

Insira uma widget de texto na área que você quiser e insira o código acima.

Agora, sempre que você quiser mostrar que Album está escutando no iTunes, basta executar o AppleScript que a capa do Album será atualizada no seu site/blog!

Executando o AppleScript BlogThisTrack dentro do iTunes.

E e resultado (no seu site/blog):

Capa do Album no site/blog!

AppleScript

Para utilizar este código, não copie este abaixo, mas utilize o link de download a seguir.

--BlogThisTrack - script para recuperar a capa de um Album tocando 
  no iTunes e escrever em um arquivo
--AppleScript original em 
  http://www.macosxtips.co.uk/geeklets/collections/
  itunes-seperate-info-mail-infos-/
--Créditos para http://www.macosxtips.co.uk 
  (usuário 
  http://www.macosxtips.co.uk/geeklets/user/profile/csoul/) 
  e craftmind.wordpress.com (usuário 
  https://craftmind.wordpress.com/about/)
--Linguagem: AppleScript (compilador v.2.2.3)
--Data: 13/11/2012

--A variável "myPath" define onde se encontra a pasta 
  "BlogThisTrack" (para o script funcionar, ela deve ser criada 
  manualmete):
set myPath to ((path to home folder) as text) & 
  "Dropbox:Public:BlogThisTrack:"
--A variável "artworkItunes" define o caminho absoluto para 
  o arquivo "iTunes.png" que será escrito ao final do script:
set artworkItunes to POSIX path of myPath & "iTunes.png"
--A variável "defaultPic" define um arquivo intermediário
set defaultPic to POSIX path of myPath & "default.png"

if running of application "iTunes" then
    --Na estrutura abaixo, literalmente é dito ao programa 
      iTunes executar as seguintes ações:
    tell application "iTunes"
        --Define-se a variável "artData" para receber a 
          informação da capa do Album da música que está sendo 
          executada no iTunes:
        set artData to data of artwork 1 of current track
        --Define-se a variável "fileRef" que irá abrir atribuir
          à variável "artworkiTunes" (que aponta para o arquivo
          alvo iTunes.png) a informação da capa do Album:
        set fileRef to (open for access artworkItunes with 
        write permission)
        --Utiliza-se o método try:
        --Caso o iTunes esteja tocando alguma música e esta
          possui uma capa de Album definida, a informação da 
          capa do Album será escrita na variável "fileRef":
        try
            write artData to fileRef starting at 0
            close access fileRef
            --Caso alguma música não esteja tocando ou se
              não houver capa de Album disponível, uma mensagem
              de erro padrão será mostrada:
            on error errorMsg
            --Novamente usa-se o método try, agora para fechar 
              o arquivo iTunes.png:
            try
                close access fileRef
            end try
            --Caso algum erro de escrita ocorra (devida a um disco 
              cheio, por exemplo):
            error errorMsg
        end try
    end tell
else
    --Utiliza-se o programa Image Events (pode-se utilizá-lo 
      em outros scripts para a manipulação de imagens):
    tell application "Image Events"
        set defaultData to open defaultPic
        --Salva o arquivo final na variável principal 
          "artworkiTunes":
        save defaultData as PNG in artworkItunes with replace
        --Fecha o arquivo final:
        close defaultData
    end tell
end if

Download

Aqui: BlogThisTrack!

Dicas

  • Como o “BlogThisTrack” utiliza o iTunes, tire proveito disso: utilize-o para manter as capas dos seus Albuns atualizadas, assim não correrá o risco de não ter nenhuma imagem para mostrar;
  • Há outros AppleScripts que podem ser utilizados para ajudar a manter a sua biblioteca de músicas organizada e atualizada, veja aqui.

Observações

  • Este método depende do Dropbox. Para que a atualização das capas do Album no seu site/blog funcione, é necessário que o Dropbox esteja funcionando.

Referências

Instalando GCC, GFORTRAN, ZLIB, HDF5, NETCDF4 e OpenMPI no Mac OS X

Quem trabalha com programas compilados a partir do código fonte sem ter a disposição um gerenciador de pacotes tal como o apt-get ou o port sabe o trabalho que dá instalar os pré-requisitos e dependências para preparar o ambiente de execução do programa principal. Muitas vezes, os gerenciadores de pacotes facilitam, automatizando as tarefas e principalmente, tratando automaticamente as dependências dos pacotes. Mas nem tudo são vantagens: muitas vezes, há a necessidade de se instalar um novo compilador e nem sempre será possível fazer com que todos os outros pacotes instalados sejam recompilados utilizando as bibliotecas e utilitários do novo compilador; ou ainda, pode ser que seja mais complicado fazer com que o gerenciador de pacotes utilize o novo compilador para recriar os novos executáveis etc (para ver como fazer com que o HomeBrew do Mac OS X trabalhe com um compilador diferente do gfortran clique aqui).

O objetivo deste post é tentar mostrar uma forma objetiva de se utilizar o MacPorts para a instalação de alguns programas, mantendo-se mais de um compilador fortran instalado na máquina. Com isso, pode-se pensar na vantagem de se instalar um programa pelo MacPorts ou manualmente. Em ambos os casos a instalação é feita a partir do código fonte, mas com a diferença de que pode-se especificar o local, o compilador e as bibliotecas (versões) a serem utilizadas.

Para exemplificar, serão instalados os pacotes gcc, gfortran, zlib, hdf5, netcdf4 e openmpi no Mac OS X. É possível pensar da mesma forma em qualquer sistema tipo UNIX em que se tem (ou não) um gerenciador de pacotes. Salienta-se, no entanto, que a instalação de alguns pacotes pode levar algumas horas, como é o caso da compilação do pacote gcc.

O gcc é um conjunto de programas essenciais para um sistema em que serão compilados quaisquer tipos de programas a partir do código fonte. Este pacote possui compiladores para as linguagens C, C++ e fortran. Há diversas versões disponíveis do gcc e a que será utilizada será a versão 4.4, sendo que a última versão mais recente (até outubro de 2012, pelo menos) é a versão 4.8. Sua compilação não é muito complicada, sendo feita com a utilização típica dos comandos configure, make e make install. Mas como o gcc é o pacote base para a instalação dos demais, ele será instalado primeiro e isso será feito a partir do MacPorts (se você não tem o MacPorts instalado, baixe o instalador correto para o seu Mac OS X aqui), que já ajusta todas as flags de compilação e otimização automaticamente.

Para instalar o gcc4.4 no Mac OS X utilizando o MacPorts, basta fazer:

$ sudo port install gcc44

Como mencionado acima, o gcc é um pacote que traz os compiladores das linguagens C, C++ e fortran. Este comando poderá demorar várias horas para terminar de ser executado, portanto é uma boa idéia deixar esta tarefa para ser feita durante a noite. A compilação do gcc4.4 é feita através do compilador nativo do Mac OS X, uma versão do gcc (versão 4.2.1 no OS X Mountain Lion) fornecida pela Apple, que vem junto com o Xcode4.X.

Depois da instalação do gcc4.4, é necessário fazer com que toda a suíte trazida pelo gcc4.4 esteja disponível no shell do Mac OS X por padrão. Para isso, basta fazer:

$ sudo port select gcc mp-gcc44

Este comando fará com que as versões dos compiladores do gcc não conflitem (eg, gcc4.2 nativo com o gfortran4.4 instalado pelo port) e que tudo passe a ser compilado com a mesma versão dos programas da suíte do gcc. Para testar os comandos, basta abrir uma nova aba ou um novo terminal e digitar os comandos:

$ gcc -v
$ g++ -v
$ gfortran -v

Em todos os casos, as versões devem ser identificadas como “gcc version 4.4.7 (MacPorts gcc44 4.4.7_6)”. É possível que algum número de versão se altere caso alguma atualização do port seja feita.

Com o gcc4.4 instalado e configurado, é possível começar a instalação dos programas zlib, hdf5, netcdf4 e openmpi. O programa zlib é um software de compressão, uma espécie de “zip”, que pode ser utilizado por qualquer outro programa que trabalhe com algum formato padronizado que utilize compressão; o hdf e o netcdf são bibliotecas utilizadas para armazenamento de dados geofísicos. Eles serão instalados por uma necessidade específica, e este pode não ser o seu caso. O openmpi é uma implementação aberta do mpi (Message Passing Interface) e é utilizado para executar programas em paralelo. Entre estes quatro programas, o openmpi é o único que tem dependência apenas do compilador C, C++ e fortran instalados na máquina; os demais possuem uma ordem específica de compilação, a qual será abordada mais adiante. É importante ressaltar que todos estes programas estão disponíveis na árvore de programas do MacPorts. No entanto, eles serão compilados manualmente com o gcc4.4 para permitir, porteriormente, que sejam também compilados com outros compiladores (eg., pgi, intel), caso haja necessidade.

Para a instalação do openmpi, é necessário obter o pacote da última versão do openmpi (atualmente na versão 1.6.2), descompactar e executar o comando:

$ wget -c http://repository.timesys.com/buildsources/o/openmpi/openmpi-1.6.2/openmpi-1.6.2.tar.bz2
$ tar -xvf openmpi-1.6.2.tar.bz2
$ cd openmpi-1.6.2
$ ./configure CC=gcc CXX=g++ F77=gfortran FC=gfortran \ 
--prefix=/opt/openmpi-gcc_gfortran4.4

O último comando irá compilar o openmpi com as flags CC, CXX, F77 e FC que indicam, respectivamente, os compiladores que serão utilizados no processo (gcc, g++ e gfortran). Observe que não foi necessário especificar a versão do gcc, pois isso já foi feito anteriormente com um comando interno do MacPorts (port select). O argumento “–prefix” permite especificar o local em que serão instalados os executáveis e demais arquivos criados na compilação do openmpi. É importante escolher um nome que reflita a configuração escolhida para a compilação do pacote, por exemplo, “openmpi-gcc_gfortran4.4”. Caso seja necessário instalar uma nova versão do gcc, uma nova compilação do openmpi será necessária para que se possa utilizar os comando mpif90, mpicc, mpicpp etc com a versão correta dos compiladores C, C++ e fortran. Isso é necessário porque nem sempre os módulos e bibliotecas são compatíveis entre as diferentes versões dos compiladores.

Depois de configurar o openmpi, basta executar os dois comandos abaixo para iniciar a compilação do pacote e finalizar a instalação, respectivamente:

$ make all
$ sudo make install

Com isso, o programa openmpi estará instalado. Os executáveis estarão em /opt/openmpi-gcc_gfortran4.4/bin. Para fazer com que esta versão seja a versão padrão disponível no seu Mac OS X, basta exportar as variáveis de ambiente necessárias, conforme este post. Caso você tenha outras versões do openmpi instalada, basta ajustar as variáveis de ambiente (PATH, MANPATH, C_INCLUDE_PATH e LIBRARY_PATH) para refletir os caminhos da instalação desejada.

Para a instalação do netcdf4, é necessário instalar o hdf5. Mas para instalar o hdf5, é necessário instalar primeiro a zlib.

A instalação da zlib é bastante simples e rápida também. Para baixar, configurar e instalar, execute:

$ wget -c http://zlib.net/zlib-1.2.7.tar.gz
$ tar -zxvf zlib-1.2.7.tar.gz
$ cd zlib-1.2.7
$ ./configure --prefix=/opt/zlib-gcc_gfortran-4.4 
$ sudo make check install

Com a zlib instalada, o próximo passo é a compilação do hdf5. Para baixar, configurar e instalar, basta fazer:

$ wget -c http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.9/src/hdf5-1.8.9.tar.gz
$ tar -zxvf hdf5-1.8.9.tar.gz
$ cd hdf5-1.8.9
$ ./configure --with-zlib=/opt/zlib-gcc_gfortran-4.4 \ 
--prefix=/opt/hdf5-1.8.9-gcc_gfortran-4.4
$ sudo make check install

Com o hdf5 instalado, finalmente pode-se instalar o netcdf4. Para baixar, configurar e instalar, basta fazer:

$ wget -c http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-4.0.1.tar.gz
$ tar -zxvf netcdf-4.0.1.tar.gz
$ cd netcdf-4.0.1
$ ./configure CPPFLAGS="-I/opt/zlib-gcc_gfortran-4.4/include \
-I/opt/hdf5-1.8.9-gcc_gfortran-4.4/include" \ 
LDFLAGS="-L/opt/zlib-gcc_gfortran-4.4/lib \ 
-L/opt/hdf5-1.8.9-gcc_gfortran-4.4/lib" \ 
--prefix=/opt/netcdf-4.0.1-gcc_gfortran-4.4
$ sudo make check install

Observe que na instalação do netcdf4, foram especificadas as flags CPPFLAGS e LDFLAGS que representam, respectivamente, as pastas include e lib das instalações da zlib e do hdf5.

Feito isto, seu sistema estará pronto para utilizar o netcdf4, hdf5, zlib e openmpi. Estas mesmas instruções podem ser aplicadas em um sistema Linux ou BSD.

Referências

Removendo GCC e GFORTRAN (pacote HPC, não nativo) do Mac OS X

Se você instalou os pacotes do gcc e do gfortran no seu Mac OS X disponíveis no site http://hpc.sourceforge.net deve ter percebido que a instalação é bastante simples, mas a desinstalação é um pouco mais complicada. Como os pacotes estão no formato .tar.gz, então não é um desinstalador que remova todos os arquivos que foram instaladas. No site http://web.mit.edu/mfloyd/www/computing/mac/gfortran/ é uma dica que é a seguinte:

$ sudo rm -f `tar tfz [tar-file]`

Este comando lista todo o conteúdo do arquivo [tar-file] (eg., gcc-mtlion.tar.gz) e executa o comando rm -rf com permissão de superusuário. Mas há uma falha: o comando não é bem executado porque a listagem dos arquivos que estão dentro do arquivo tar não inclui a barra “/” no início, fazendo com que o arquivo “usr/local/bin/gcc” seja apagado ao invés do arquivo “/usr/local/bin/gcc”. Portanto, esse comando não funciona porque o arquivo “/usr/local/bin/gcc” não existe!

Para resolver isso, utilize o comando abaixo:

$ for i in `tar tfz [tar-file]`; do sudo rm -rf '/'$i; done

No comando acima, listamos o conteúdo do arquivo [tar-file] (eg., gcc-mtlion.tar.gz) e utilizamos o comando for para executar o comando “sudo rm -rf ‘/’$i” em todos os arquivos que forem listados, incluindo a barra “/” no início.

Referências

Abrir aba do iTerm2 no mesmo diretório

O iTerm2 é um excelente substituto do Terminal.app nativo do Mac OS X. Entre várias outras configurações, ele permite dividir o terminal tanto na horizontal quanto na vertical. Mas uma coisa que me incomodava um pouco, era que ele nunca abria uma nova aba no mesmo diretório. Isso pode parecer bobagem, principalmente se ele é capaz de dividir as janelas, mas acredite, isso poupa bastante tempo. Para resolver esse detalhe, basta ajustar um configuração de perfil do próprio iTerm2, quem desabilitada por padrão. Veja na imagem abaixo, para acessar as preferências mostradas, abra o iTerm2, clique em preferências (no painel do Mac OS X, em iTerm2) e depois clique em Profiles – ou Perfis):

Preferências de perfil do iTerm2: configurando para abrir uma nova aba no mesmo diretório

Basta clicar na opção “Reuse previous session’s directory” (ou Reutilizar o diretório da seção anteriror).

É isso!

Abrir o Terminal em uma determinada pasta do Finder

No Nautilus e até mesmo no Windows Explorer é possivel clicar sobre uma pasta e abri-la no terminal, facilitando a vida de quem não vive sem o terminal e precisa de mais agilidade no processamento de arquivos. No Finder do Mac OS X, também é possível fazer a mesma coisa. Caso o menu de contexto do seu Finder não apresente as opções “New Terminal at Folder” e/ou “New Terminal Tab at Folder” (ou Novo Terminal na Pasta), siga os passos abaixo para habilitá-las:

1) Abra o Painel de Preferências do Mac OS X e clique na opção “Keyboard” (ou Teclado):

Preferências do teclado

2) Nas preferências do teclado, selecione o submenu “Services” (ou Serviços), e role a página até a seção “Files and Folders” (ou Arquivos e Pastas):

Opções para Arquivos e Pastas

Se as opções “New Terminal at Folder” e/ou “New Terminal Tab at Folder” (ou Novo Terminal na Pasta) não estiverem marcadas, marque-as para habilitar as novas opções no menu de contexto do Finder. Inclusive, é possível ajustar atalhos do teclado para abrir pastas no Terminal 🙂

3) Depois disso, experimente clicar sobre uma pasta qualquer no Finder e selecionar a opção “New Terminal at Folder” (ou Novo Terminal na Pasta):

Novas opções no menu de contexto do Finder!

Pronto, agora você pode navegar pelo Finder a abrir suas pastas no Terminal 😉

É isso!

Utilizando a VPN através do Tunnelblick

O Tunnelblick é um software que utiliza o openvpn e fornece uma interface gráfica simples e funcional para gerenciar conexões VPN. Ele é bastante útil para quem precisa gerenciar várias conexões VPN. No meu caso, tenho apenas uma conexão disponível e por isso utilizava um script fornecido pelo administrador dos sistemas que eu uso. Aliás, por utilizar o Mac OS X, um dos requisitos para que minha conexão VPN funcione é a utilização do Tunnelblick, porque o script fornecido pelo administrador utiliza o openvpn que vem junto com o Tunnelblick. Mas isso não é uma necessidade real, pois pode-se instalar o openvpn através do port do Mac OS (sudo port install openvpn), embora a versão disponível no port seja mais antiga.

Neste artigo, vou mostrar rapidamente como configurar uma conexão VPN através do Tunnelblick para poder aproveitar melhor o que este software tem de bom.

Se você não tem o Tunnelblick, pode baixá-lo neste link (link direto). Como estou utilizando o OS X Mountain Lion, preciso da versão 3.3 beta 21a do Tunnelblick. Se você utiliza outra versão do Mac OS X, verifique qual versão melhor se adequa ao seu Mac. Instale o Tunnelblick e inicie a configuração da sua VPN.

Depois de instalar o Tunnelblick e abrí-lo pela primeira vez, o configurador irá perguntar se você tem arquivos de configuração ou não. Vou clicar na opção “I have configuration files” (ou Eu Tenho Arquivos de Configuração), pois vou aproveitar os arquivos de configuração do meu script VPN:

Configurando o Tunnelblick: utilizando arquivos de configuração externos

No passo seguinte, o Tunnelblick perguntará se os arquivos de configuração que você tem já são arquivos do Tunnelblick ou não. No meu caso, não são e eu configurarei minha conexão manualmente, que é o que valida este artigo 😉 Se este for também o seu caso, escolha a opção “OpenVPN Configuration(s)” (ou Configurações OpenVPN):

Tunnelblick: criando uma conexão VPN com as informações prévias da sua conexão

Depois disso, o configurador perguntará qual tipo de configuração você quer criar. Escolha a opção “Open Private Configurations Folder” (ou Abrir Pasta de Configurações Pessoais). Com esta opção, uma pasta do Finder será criada no desktop e é nela em que serão colocadas as informações que temos sobre a VPN:

Tunnelblick: criando pasta de configurações personalisadas

Nesta etapa, as informações que deverão ser colocadas nesta pasta são as seguintes:

  • Um script de configuração openvpn (eg., config.ovpn)
  • Uma chave criptografada para a conexão com o servidor (eg., chave.key)
  • Um certificado de segurança (eg., certificado.crt)

Lembre-se que estas informações são fornecidas pelo seu administrador de sistemas e que são pessoais e intransferíveis. Portanto, se você não tem estas informações, peça-as ao seu administrador de sistemas.

Depois de ter colocado as informações (arquivos) dentro da pasta que o configurador do Tunnelblick abriu no seu desktop, clique em “Done”(ou Pronto) na janela anterior, renomeie esta mesma pasta para um nome que você queira para a conexão e adicione a extensão “.tblk”. Feito isto, terá sido criado um arquivo de configuração VPN do Tunnelblick. Para adicioná-lo ao Tunnelblick, basta dar um duplo clique sobre ele (que na verdade é a pasta em que foram salvas as configurações da VPN):

Configurações salvas para uso no Tunnelblick (clique duas vezes para adicionar)

Depois disso, basta utiliza o Tunnelblick através do ícone que fica no painel do Mac OS, próximo ao ícone do Spotlight:

Tunnelblick: menu com as conexões disponíveis

Ao clicar no ícone do Tunnelblick, um menu com as conexões disponíveis será aberto. Para conectar, basta clicar no nome da conexão configurada e realizar a conexão:

Conectando com o Tunnelblick à esquerda (em amarelo) e à direita, conexão relizada (em verde)

Depois que o Tunnelblick estiver ativo em uma conexão, i ícone do painel fica com uma cor diferente (o que pode ser alterado depois):

Ícone de atividade do Tunnelblick

Para desconectar, basta clicar no ícone do Tunnelblick e clicar em “Disconnect NOME_CONEXÃO” (ou Desconectar NOME_CONEXÃO).

Vale lembrar que, caso o seu administrador de sistemas requer alguma camada extra de segurança, e esta não estiver contemplada nas configurações do Tunnelblick, será necessário ativá-las antes de se realizar a conexão.

É isso!

Mouse e Trackpad com rolagem diferente no Mac OS X

No Mac OS X é possível configurar a direção de rolagem das páginas ou de qualquer coisa que possa ser rolada com a rodinha do mouse, com o trackpad do MacBook ou com o Magic Trackpad da Apple. Por padrão, o sistema utiliza a direção “natural”, em que a página sobe quando move-se os dedos para cima e desce quando move-se os dedos para baixo. Utilizando o trackpad neste modo me pareceu bastante confortável e intuitivo, mas o problema começou quando pluguei um mouse: a direção de rolagem da rodinha ficou invertida e difícil de se acostumar, além disso, se você alterar a direção de rolagem do trackpad, também vai alterar a direção de rolagem do mouse! Até parece que é uma falha do sistema, mas o fato é que a Apple pensa em seu Magic Mouse, que possui as mesmas “gestures” que o trackpad do MacBook e Magic Trackpad.

Configurações de rolagem nativa iguais para mouse e trackpad no Mac

Mas ainda sim, é possível separar as coisas e atribuir configurações diferentes para o trackpad e o mouse (seja ele qual for, Blutooth ou não). Procurando aqui e ali, encontrei um programa chamado “Scroll Reverser” que faz o trabalho de ajustar um opção de rolagem para o trackpad e outra para o mouse. Assim, pode-se plugar o mouse e utilizá-lo sem se preocupar em alterar a configuração de rolagem no Mac OS X:

Scroll Reverser: permite atribuir uma configuração de rolagem diferente para o Mouse e para o trackpad do Mac (fonte: http://pilotmoon.com/scrollreverser/)

Referência

http://pilotmoon.com/scrollreverser/