EPx professional blog and repository for braindumps

2008/11/22

Caixona de felicidade

Já vi muita gente chamar os antidepressivos de "caixinhas de felicidade", então achei oportuna uma comparação com uma "caixona de felicidade" que Papai Noel trouxe. Ao contrário do Cymbalta, o iMac não tem contra-indicações, não precisa de receita do psiquiatra e não causa queda de libido. Só tem um problema: quem toma Cymbalta vê tudo gozado que nem faxineira de motel. Já quem compra iMac passa a enxergar quão feio é o resto do mundo da informática...

Ok, falando sério agora. Este já é meu terceiro Mac; tive um iBook G4 ainda no tempo dos PowerPC, estava com um Mac Mini Intel, e agora este iMac. A decisão pelo iMac foi mais ou menos racional: o Mac Mini estava precisando de um monitor maior e um disco Firewire externo. Acabou ficando mais atrativo trocar de computador. Claro que houve aí um componente de impulso nerd-consumista.

O hardware Apple é como sempre aquela coisa linda e com todos os detalhes muito bem pensados. Como eu pretendia comprar um monitor 22", estava levemente temeroso do iMac 20" não ser grande o suficiente. Mas que nada, a tela de 20" já é grande o suficiente para me dar vertigem. Deve ser porque eu estava até agora com uma tela de 15".

O iMac vem com teclado e mouse. O Mighty Mouse é ergonomicamente ok mas praticamente descartável, devido ao wheel estragar logo com a captação de sujeira -- que seja infinito enquanto dure. O teclado é o modelo mais novo, apelidado de "chiclete" pelos detratores, com as teclas separadas. Achei que não ia gostar dele, mas no cômputo geral ele é melhor que o teclado Mac anterior, por conta do curso das teclas, bem curtinho, como teclas de notebook. Talvez fosse perfeito se as teclas ocupassem toda a área disponível ao invés de serem separadas (o teclado do iBook era assim: curso curto e teclas grandes). Outro ponto positivo do novo teclado é o layout mais enxuto, com menos teclas (e.g. os controles de volume de som perderam as teclas dedicadas). Outra novidade bem-vinda mas quase óbvia: o novo teclado é um hub USB 2.0.

A performance é naturalmente superior à do Mac Mini, mas nada do outro mundo. A verdade é que velocidade de CPU é o que menos faz falta hoje em dia (até meu notebook Pentium M ainda parece "rápido o suficiente"). A maior diferença fica por conta do I/O de disco, já que o iMac pode acomodar um disco rígido muito mais rápido e calorento. O iMac possui uma GPU de verdade; os efeitos do Quartz não mudam muito, mas certamente a presença da GPU poupa a CPU.

Pela primeira vez usei o Assistente de Migração, só pra ver se funcionava. Funcionou até demais: muita coisa que eu nem queria veio junto, como o gerenciador de boot rEFIt. O resultado é que o EFI mostrou a temida pasta com um ponto de interrogação no boot seguinte. Até determinar e consetar e solucionar o problema, deu tempo de achar dois workarounds para dar boot: um usando o disco de instalação, o outro com um CD de imagem do próprio rEFIt. De resto foi perfeito, até aplicativos como o VMWare Fusion que certamente instalam coisas no coração do sistema funcionaram sem precisar de reinstalação. E o Mac Mini rodava Tiger; o iMac é Leopard.

Depois que a Apple migrou para Intel, acabou aquela mística estúpida que os usuários Mac cultivavam em torno do Power PC. Mas é certo que o Mac ainda tem "algo mais", e agora está claro que este algo mais é o Mac OS X. É impossível resistir à sensação de que o OSX é o "Linux feito do jeito certo". Primeiro, por ter herdado do BSD o que ele tem de bom. Segundo, por criar APIs padrão (e de boa qualidade) para os componentes extra-kernel. (Dei um exemplo no post anterior, sobre a facilidade de se desenvolver widgets.). Sem precisar criar uma nova linguagem só para isso. Terceiro, por ter conseguido "matar a charada" do relacionamento entre uma empresa a comunidade de software livre. Quarto, por ensinar como é que se faz uma transição de arquitetura sem quebrar os usuários (e sem impingir uma máquina virtual abstrata, como o .NET ). Quinto, por ter um design e "human interface guidelines" (HDI) realmente boas, a ponto de serem contagiantes.

Explico o "contagiantes". É interessante notar como quase todos os aplicativos portados para OSX fazem um grande esforço para apresentar um design legal e congruente com o resto do ambiente, bem como seguir a HID. Aplicativos que no Linux e no Windows têm aquela aparência "so-so", ou são difíceis de usar, viram um pacote bonito e fácil de usar na versão OS X. Dois exemplos: o Adium, cujo "engine" é herdado do Gaim; e o OpenVPN, empacotado pelo TunnelBrick no OSX (o TunnelBrick traz no bojo até um driver de kernel, já que o OSX não tem TUN/TAP). No Linux, distrbuir algo como o TunnelBrick seria quase impossível pois não há ABI estável para drivers de kernel, é preciso compilar in loco.

É visível também que a Apple preocupa-se em agradar os desenvolvedores tanto quanto preocupa-se com o design. Documentação excelente, exemplos de código, boas APIs, suporte à maioria dos padrões, feramentas e linguagens do mundo do software livre, e a alma UNIX BSD isso tornam o OSX o sonho de todo nerd. Não é à toa que muita, muita gente está adotando o OSX como plataforma primária de desenvolvimento -- com uma ajudinha do VMWare Fusion, ou do Virtualbox (finalmente apareceu um software livre de VM).

O chato de tudo isso é a constatação insofismável de quão patéticas são quase todas as demais plataformas e sistemas operacionais. E sem necessidade de sê-lo, já que boa parte dos padrões adotados pelo OSX é público, gratuito e estava por aí há muito tempo -- como diria Raul Seixas, "tá tudo pronto aqui é só vir pegar". Pior que isso: muitas dessas plataformas-patetas são mantidas mediante massivas quantidades de dinheiro, o que subtrai-lhes a surrada desculpa de carência de recursos.

2008/11/18

HP-12W: the HP-12C emulator as a widget for Mac OS X Dashboard

This if my first "true" Mac OS X development inroad (not counting Python and UNIX-like things I've done in the past). Following the success of the HP-12C emulator for Web, and having heard that it was relatively easy to convert a HTML page into a Dashboard widget, I decided to give it a try. Tou can download the widget here.

As I have state several times in the past, desktop applications should be developed in interpreted languages these days, instead of using 90ish things like C++, Java or .NET. And the Mac OS X widgets were really architected in the right way. A widget "application" is nothing more than a HTML "page" that really governs applet's appearance. That page in turn refers to Javascript and/or CSS additional files.

Almost everything that Web developers are used to in Javascript, indeed works in the widget context, like keyboard and mouse events. Things that don't fit in the model like pop-ups, cookies etc. simply do nothing instead of raising errors, so in general the HTML widget remains testable inside a normal browser. And the most important, preexisting HTML and Javascript code is easily reausable in widget environment.

As anyone would expect, the Javascript code in the widget context has more privileges than in browser context. It can invoke system commands, and can call Cocoa (Objective C) methods.

Who knows, maybe I try now to convert this applet to iPhone...

2008/11/05

Sonho realizado

Eu não tinha reparado ainda, mas hoje vi no monitor do sistema um "suspeito" processo Python. Fui conferir de que se tratava, e era o applet de painel do Ubuntu Intrepid para monitor a carteira de ações:

6431 ? S 0:03 python /usr/lib/gnome-applets/invest-applet

Com uns bons anos de atraso, os aplicativos desktop baseados em linguagem interpretada começam a aparecer.

2008/11/03

Palestra na FURB

Amanhã (4/11 às 21:00) vou ministrar palestra no Seminário de Computação SEMINCO da FURB (Universidade Regional de Blumenau).

A palestra vai ser aquela mesma de sempre: Python para Dispositivos Móveis, agora um pouco expandida na parte que trata da linguagem Python em si, já que nas últimas duas apresentações, a quase totalidade dos ouvintes não conhecia Python, então é interessante aprofundar um pouco mais neste aspecto.

Como o trânsito de Blumenau é notoriamente difícil (pesado e intrincado), estudei detidamente o caminho no Google Earth para tentar chegar lá sem maiores percalços. Este é o teste de fogo para ver se a ferramenta de ruas e itinerários do Google realmente presta :)