Primeiras impressões sobre o Mac OS X Lion

OS X LionOntem saiu a versão 10.7 do OS X. Juntamente com cerca de 1 milhão de pessoas, perdi o amor a cerca de 24€ na App Store. Ao fim de dois dias já tenho alguma noção do que gosto e do que não gosto nada. Não é que a minha opinião (ou qualquer outra) tenha alguma influência: a Apple é famosa por seguir o seu caminho, com o sem o consentimento dos seus utilizadores. No final, a maioria de nós será mais um carneirinho às ordens do Deus Jobs, e os defeitos (antigos ou recentemente introduzidos) do OS X serão esquecidos ou aceites. Sad, but true.

Sobre o processo de instalação, só tenho a dizer bem. O download demorou um pouco, mas é normal visto que são quase 4GB. O processo de instalação é seamless e dura cerca de meia hora. Até aqui, tudo perfeito. Quando finalmente entramos no sistema operativo, é apresentada uma caixa para testarmos o scroll. Fui apanhado de surpresa ao verificar que o inverteram verticalmente! Esta alteração vai de encontro com a estratégia da Apple de tentar aproximar o OS X com o iOS, visto que nos dispositivos tactéis como o iPad e o iPhone o scroll é feito ao “empurrar” o conteúdo. A habituação tem sido relativamente fácil, devido (penso eu) à utilização regular do meu iPad.

Após o ambiente de trabalho carregar, uma das primeiras coisas que saltou à vista foi que os Spaces tinham desaparecido. Para além disso, o Exposé foi substituído pelo Mission Control e foi introduzido o Launchpad para gerir as aplicações instaladas. Vamos por partes:

Mission Control: eu era bastante Exposé-dependente. Usava e abusava desta feature para trocar entre várias janelas, que era acessível através de um swipe para baixo. Agora podemos aceder ao Mission Control com swipe para cima. Não percebo bem porque é que inverteram a direcção. Para além disto, já não é possível afastar as janelas, mostrando o ambiente de trabalho, com um swipe para cima (3 dedos), que também era extremamente útil. Agora temos que fazer um pouco de malabarismo com um gesto rebuscado: uma espécie de pinch para fora com o polegar e 3 dedos. 80% das vezes activo o Mission Control em vez de conseguir afastar as janelas, talvez devido ao pequeno touchpad do meu Air. Useless!

Spaces: demorei um pouco a descobrir como se adicionavam novos Spaces. É necessário ir ao Mission Control e  arrastar uma janela em direcção ao canto superior esquerdo. Se antes podiamos ter Spaces verticais e horizontais, agora só é possível serem horizontais. O Dashboard de widgets vem por default como um Space, mas removi-o imediatamente. Por default também vem a opção de reordenar os spaces de acordo com os que são mais usados. Também removi isto porque prefiro saber exactamente em que space é que está determinada aplicação. Apesar do novo sistema não me parecer tão flexível, penso que me vou adaptar bem.

Launchpad: Quase nem vale a pena falar disto. Para quem usa o Quicksilver ou o Alfred (ou outro launcher qualquer) esta feature é inútil. No entanto não é possível ignorá-la totalmente: ao instalar uma aplicação, o Launchpad abre para mostrar o progresso, quer queiramos quer não. Uma minor annoyance.

Outra coisa que reparei é que as aplicações que tenho abertas não estão a ficar nos spaces onde as deixo. Gosto de ter um space para o Mail.app e Twitter, outro para o browser, outro para o Photoshop e ainda outro para o Coda/TextWrangler. Por vezes ao clicar numa dessas aplicações, em vez de ir para o space correspondente, a aplicação abre no space actual e tenho que a arrastar para o sítio certo. Não sei se é por o Lion fechar aplicações que não estão a ser usadas, mas torna-se chato.

As alterações cosméticas são súbteis mas agradáveis. Deixámos de ter barras de scroll explícitas e é necessário fazer scroll para que apareçam. Algumas aplicações que usava deixaram de funcionar: o cliente de VPN da Cisco crasha com estilo e o TotalFinder recusa-se a iniciar. Ainda não tive oportunidade de experimentar bem algumas funcionalidades como o AirDrop, Resume, Auto Save e Versions, mas já ouvi dizer que funcionam bem.

Uma coisa que me irrita profundamente foi terem arruinado a aplicação DigitalColor Meter. Antes era possível ver o código RGB em hex, bem como copiá-lo. Agora nem uma coisa, nem outra. Esta aplicação era excelente para webdesign, porque podíamos rapidamente pegar no valor de uma cor para aplicar no CSS ou mesmo no Photoshop. Gostaria de saber quem foi o [escolher um daqui] que olhou para a aplicação e pensou “Hmm… Isto é bastante útil. Vamos tirar features, só para os lixar”, principalmente quando o OS X é utilizado en masse por designers.

Esta foi a primeira migração de versão pela qual passei no OS X. Não sei se as outras foram assim tão leves, mas não se compara à alteração de um Windows XP para um Windows Vista, por exemplo. É mais parecido com a passagem do Windows Vista para o Windows 7, na medida em que não há assim tanta diferença. É óbvio o esforço que a Apple está a fazer para tentar fundir o iOS com o OS X. Não sei se esse caminho é o mais correcto, mas safaram-se (bastante) bem com as escolhas que fizeram ao longo dos últimos anos, pelo que irei dar-lhes o benefício da dúvida. É esperar para ver.

Mann–Whitney U com a ferramenta de estatísticas R

Por vezes é necessário comparar 2 data sets independentes para saber qual é o maior. Um algoritmo muito utilizado para isto é o Mann–Whitney U (também conhecido por Mann–Whitney-Wilcoxon). Neste post deixo um script que utiliza 2 ficheiros, cada um com um data set, e que os compara utilizando este algoritmo. Para isto é necessário recorrer a um script que é executado com o R.

Primeiro, um sample de um dos ficheiros de input:

O script está preparado para receber um valor por cada linha e deverão haver 2 destes ficheiros. Depois basta criar o ficheiro wilcox.r que recebe 2 argumentos e os compara utilizando o Mann-Whitney U:

O script deverá ser executado com o seguinte comando, no terminal:

O resultado, caso seja inferior a 0.05, indica que os valores do primeiro ficheiro são maiores que os do segundo ficheiro. Quanto mais perto de 1, menor os valores do primeiro ficheiro são. Quanto mais perto de 0.5, mais os valores são equivalentes.

Como usar o gnuplot num Mac

Há pouco tempo necessitei de utilizar a excelente ferramenta gnuplot no meu Mac. Aqui deixo um guia de como instalar e utilizar alguns comandos. Primeiro, instalem o MacPorts. Depois, basta abrirem o terminal e correrem o seguinte comando:

sudo port install gnuplot

É normal que demore bastante tempo a instalar, pois são necessárias muitas dependências. No final do processo de instalação, deverão poder escrever gnuplot no terminal e entram na aplicação.

A maneira mais fácil de utilizar o gnuplot é ter um ficheiro com os valores separados por espaços e por linhas. Em baixo está um exemplo de um ficheiro com 2 data sets numerados:

1 2 5
2 3 5
3 7 6
4 6 6
5 9 7

Neste caso, a primeira coluna irá ser utilizada para o eixo do x e as outras colunas pertecem a data sets individuais, que serão mapeados no eixo do y. Admitindo que estes valores estão guardados no ficheiro test.txt no working directory actual, poderemos mapeá-los desta maneira:


plot "test.txt" using 1:2, "test.txt" using 1:3

Aqui dizemos para mapear o data set 2  e o 3 usando o data set 1 como eixo do x. No entanto, tal como podemos ver em baixo, o resultado não é muito impressionante.

gnuplot  - exemplo 1

Existem alguns problemas com o resultado: os títulos dos data sets não estão correctamente configurados, não se percebem bem os dados por causa dos pontos, e o eixo do y poderia começar a partir do 0, e não do 2. Começando a passar os pontos para linhas, com o parametro with lines:


plot "test.txt" using 1:2 with lines, "test.txt" using 1:3 with lines

gnuplot - exemplo 2

Em alternativas ao with lines temos o smooth bezier e smooth csplines, que fazem aproximações de maneira a criar uma linha mais fluída:


plot "test.txt" using 1:2 smooth bezier, "test.txt" using 1:3 smooth csplines

gnuplot - exemplo 3

De maneira a corrigir a escala e os títulos, corremos os seguintes comandos:


set yrange[0:10]
plot "test.txt" using 1:2 smooth bezier title "primeiro", "test.txt" using 1:3 smooth csplines title "segundo"

gnuplot - exemplo 4

E pronto, o básico do gnuplot encontra-se explicado. Esta ferramenta é bastante complexa e poderosa, mas estes comandos devem chegar para análises rápidas e simples.

Desmistificando o mundo do LaTeX

O LaTeX (pronunciado “latek”) é um sistema de preparação de documentos bastante utilizado para artigos científicos e matemáticos. Apesar de poder ser um pouco intimidante ao início, é muito melhor que o Word na maioria das situações. Não só é mais fácil de usar e formatar os documentos sem subjectividade, como ficamos com uma apresentação muito mais profissional.

Neste post pretendo introduzir alguns dos comandos básicos que podemos utilizar para formatar um documento, começando por um pequeno hello_world.tex:

\documentclass{article}
\title{Hello LaTeX}
\author{Miguel Duarte}
\date{Junho 2011}
\begin{document}
\maketitle
\begin{abstract}
Aqui podem, opcionalmente, escrever um abstract.
\end{abstract}
Olá mundo!
\section{Secção}
\subsection{Subsecção}
Conteúdo
\end{document}

Para produzir um documento é necessário ter o LaTeX instalado no vosso sistema. Gerar um documento PDF é tão simples como correr o seguinte comando no terminal:

pdflatex hello_world

Para criar secções, basta utilizar o comando \section{Nome da Secção} e \subsection{Nome da Subsecção}. Isto torna a nossa vida muito mais fácil do que andar a brincar com os headers do Microsoft Word.

Se o documento for muito grande ou se utilizarem um sistema de versões para histórico ou colaboração, torna-se uma boa prática separar cada capítulo/secção em ficheiros separados. O ficheiro capitulo_um.tex pode ser referenciado no ficheiro principal colocando \input{capitulo_um} na zona correspondente.

Se quisermos referenciar uma imagem, podemos fazê-lo com o comando figure:

Existem bastantes alterações que podemos aplicar à imagem. Visto que as imagens são flutuantes no LaTeX, não podemos garantir que ficará no sítio exacto onde a colocamos. Para tentar força-la a ficar num determinado local, podemos usar \begin{figure}[h!]. Se quisermos alterar o tamanho ou ângulo da imagem, podemos indicá-los com:
\includegraphics[width=45mm,angle=-90]{figures/imagem_um.png}
Também pode ser necessário colocar várias imagens no mesmo local. Isto pode ser feito com uma ou mais scaleboxes. Ao usar o \setlength estamos a colocar uma border:

Podemos referenciar estas imagens facilmente no texto, sem ter que colocar o número hardcoded, o que nos poderia trazer problemas ao inserir/remover imagens. O comando \ref{fig:imagem_dois} irá ser substituído pelo número da imagem na altura da compilação do documento, facilitando o referenciamento.

Neste sistema, existem vários caracteres especiais que podem ser acedidos através do backslash (\). O símbolo utilizado para comentários é o de percentagem (%), pelo que se quisermos utilizá-lo normalmente no texto temos que fazer o escape com o backslash(\%). Existe também um poderosíssimo sistema de fórmulas. Aqui fica um exemplo:


\begin{equation*}
b_{i,s} = \frac{N_{i,s}}{T_{i,s}} \cdot 10^{-1} +
\sum_{j=1}^{\mbox{n$^\circ$ P}}\frac{\Delta_{\phi} - dist(p_j,\mbox{$\theta$})}{L}
\end{equation*}

Fórmula em LaTeX

Estas são as funcionalidades básicas. Existem muitas mais opções que podem ser pesquisadas à medida que vão sendo necessárias. Caso seja necessário de uma secção de referências no documento, o mais indicado é o BibTeX. Aviso também que fazer tabelas pode ser doloroso! Dois recursos bastante bons são o StackExchange para TeX (o TeX é um subset do LaTeX) e um livro em formato wiki, totalmente gratuito.

Ver vídeos .mkv no iPad

O iPad não suporta os ficheiros .mkv directamente. Existem algumas aplicações que permitem visualizar estes ficheiros, mas normalmente não conseguem ser reproduzidos à frame rate desejada. Os vídeos em .mkv são bastante populares para conteúdos em alta definição, pelo que é apetecível a sua visualização num iPad.

A solução passa por mudar estes ficheiros para .mp4, sem perder qualidade. Isto pode ser feito em 5 minutos com o programa MKVtools visto que não é necessário reconverter o vídeo, mas sim mudar o container. Assim que tiverem instalado esta ferramenta, abram o ficheiro em questão e escolham as seguintes configurações:

  • Tab MP4
  • Vídeo Pass Thru
  • Audio AAC (2 ch)
  • Device iPad

MKVtools

É importante não escolher AC3 (5.1) no Audio, porque o iTunes não deixa copiar o ficheiro para o iPad. Tem mesmo que ser usado AAC (2 ch), visto que o AAC (5.1) pode trazer problemas de audio. Seleccionem a faixa de vídeo e audio e depois cliquem em Convert. O processo é bastante rápido e no final ficam com um ficheiro .mp4 que podem colocar no iTunes para ser sincronizado com o iPad. Tudo isto sem perder um único pixel!