Eclipse theme under Ubuntu Unity

Looks like there are a lot of complaints about Eclipse look-and-feel under Ubuntu Unity (10.10 and 11.04). The main problem is that there are a few inconsistencies with default Eclipse coloring and Ubuntu system colors. Some interface objects have low color contrast, like tooltips and selection lists.

I’ve found a few solutions on the web to this problem, but none solved the whole problem. Some suggested to edit a file and force a color only to tooltips but this is counter-productive because tooltips are not the only object with color problems in this situation.

So, if you don’t mind having to change all colors in your Ubuntu, I’ve found out a simple solution to the problem. Install gtk-chtheme, open it and choose a theme that works better with Unity theme. I’ve found out that the Human theme works very well. ;)


$ sudo apt-get install gtk-chtheme
$ gtk-chtheme

See ya!

Dicas de segurança para usuários Windows

Como muitos geeks de computador, eu tenho alguns amigos e familiares que são leigos na maioria dos assuntos relacionados ao dito PC e estes sempre possuem aquele medo de pegar alguma virose digital. Foi então que uma amiga me pediu uma recomendação de um bom antivírus para ela utilizar. Como eu não sou usuário de Windows muito menos de antivírus há alguns anos e, inspirado pela vontade de escrever a explicação “definitiva” para meus amigos leigos, com o benefício de não ter que repetir a mesma resposta diversas vezes, acabei escrevendo as dicas abaixo:

  1. Mantenha o Windows sempre atualizado! Se você não pode porque está usando um Windows “Jack Sparrow”, eu sinto muito. Apesar de haver formas de você conseguir fazer as atualizações, a chance de pegar um vírus é muito grande e é bom instalar todos os antivírus existentes no mercado com o risco de não conseguir usar o computador para mais nada;
  2. Mantenha seus programas sempre em dia com suas respectivas atualizações de segurança;
  3. Não confie cegamente em emails pois estes podem ter seu remetente forjado. Se receber algum email contendo seu nome e CPF, isso não significa que a fonte é confiável. Hoje em dia é possível comprar dados privados de qualquer um no mercado negro, graças à excelente segurança dos sistemas de nossos órgãos governamentais (DETRAN, Fazenda, etc);
  4. Se o email faz alarde e pede que você clique em algum lugar, suspeite e em caso de suspeita, tire a dúvida com a instituição que foi forjada no e-mail. Ex.: Se você recebeu e-mail de um Banco onde você tem conta, com seu nome e CPF, mandando você clicar em algum link, não clique. Entre em contato por telefone com o Banco para questionar a veracidade do email. Provavelmente o banco lhe pedirá que você lhes encaminhe o email suspeito como anexo para que este possa ser analisado e utilizado em investigações de crime digital;
  5. Seja mais crítico com os links que você pretende clicar. Veja o endereço do remetente (além do nome). Ex.: “Atendimento Banco <atendimento_banco123@hotmail.com>. Notou o que está errado com este endereço? O banco não enviaria um e-mail com rementente do Hotmail;
  6. Veja o real endereço para onde aponta link que você pretende clicar. Passe o mouse em cima do link e veja o endereço para onde ele aponta na barra de status do seu navegador ou software de e-mail. Senão, utilize a função “Copiar endereço do link” e cole num editor qualquer para vê-lo. Muitos tentam enganar mostrando um endereço falso para onde o link não aponta. Por exemplo: No corpo do e-mail está como “Clique aqui” ou ”www.banco.com/trocadesenha” e quando você passa o mouse no link vê que o endereço de destino é ”http://site.invadido.la.da.china.com.ch/banco/atendimento/“;
  7. Muitos links levam navegadores à fazer downloads. Se você não esperava um download, melhor não abrir o arquivo;
  8. Não instale programas de fontes desconhecidas. Se for baixar algum programa, procure baixar diretamente do site do fornecedor do programa;
  9. Pirataria provavelmente é a principal fonte de problemas com programas maliciosos (vírus, trojans, etc). Se não puder evitar, é bom arrumar um bom antivírus pois até um inocente arquivo PDF pode ser malicioso;
  10. Se puder, use Linux. A mudança pode ser um pouco difícil no começo, mas compensa. Para os leigos, recomendo o Ubuntu. Se você tem dinheiro sobrando, pode arriscar comprar um Mac. Ambos sistemas não estão totalmente imunes à problemas de segurança, mas alvos bem menores de hackers do que o Windows;

Estas são minhas regrinhas básicas de segurança. Se tiver alguma sugestão, contribua nos comentários… ;-)

Extraíndo arquivos de um RPM sem instalá-lo

Já me deparei com situações em que precisava de algum arquivo existente dentro de um RPM mas não queria instalá-lo. A solução é extrair o conteúdo do RPM, só que o comando RPM não tem nenhuma opção padrão para fazer isto. É necessário então utilizar outras ferramentas.

Para fazer isto, basta utilizar o comando abaixo, substituindo o “arquivo.rpm” pelo nome do seu arquivo RPM:

rpm2cpio arquivo.rpm | cpio -vdim

Alterando rapidamente a saída de som do Mac

Faz um bom tempo que não posto nada aqui, então pra tirar as teias de aranha do blog, aqui vai uma dica.

Eventualmente eu utilizo um headset USB em casa para ouvir som e fazer ligações com Skype. Isso significa que o headset aparece como um dispositivos separados de saída e entrada de som e tenho que selecioná-los como tal se quiser utilizá-los.

O jeito tradicional e óbvio de selecionar as saídas e entradas de som no Mac é através do “System Preferences”, só que isso pode ser um tanto dispendioso.

Mas existe um jeito rápido e prático de alterar estas configurações. Basta segurar o botão Alt/Option e clicar no ícone do auto-falante na barra de menus do Mac. Ali aparecerá uma lista de dispositivos de entrada e saída de som que podem ser rapidamente alterados.

É isso…

Script para embutir legendas em arquivos MKV

Já faz algum tempo que o VLC para Mac não carrega as legendas automaticamente. Nem a última versão 1.1.0 faz isso mais. E o Mkvtoolnix não é muito prático para utilizar com muitos arquivos, para juntar filmes e legendas. Foi por este motivo que resolvi fazer um pequeno script que utiliza o mkvmerge que acompanha o próprio Mkvtoolnix para automatizar a inclusão de legendas em filmes.

Ele está bem simples e é recomendado para aqueles que tem algum conhecimento de shell scripts. Ele pode ser facilmente utilizado em Linux também, possivelmente sem nenhuma necessidade de adaptação.

O padrão de funcionamento é o seguinte:

  • O script deve estar no mesmo diretório dos arquivos MKV e SRT;
  • Os arquivos MKV e suas respectivas legendas SRT devem ter o mesmo nome de arquivo (ignorando-se a extensão);
  • Eu fiz o script para juntar legendas em português. Caso a legenda seja em outro idioma, ajuste o trecho do comando “–language 0:por” para o idioma correto. Para saber qual o código correto do idioma, utilize o comando “mkvmerge –list-languages”;

Com pouca adaptação é possível melhorar o script para rodar de qualquer diretório, ser mais inteligente em achar legendas, etc., mas o meu problema este aqui já foi suficiente para resolver. Aproveite e boa sessão cinema! ;-)

#!/bin/bash

export IFS=$'\t\n'
for mkv in `ls -1 *.mkv`
do
	bname=`basename -s '.mkv' $mkv`
	srt=`echo "${bname}.srt"`
	newmkv=`echo "${bname}.MERGED.mkv"`

	mkvmerge -o "$newmkv" "$mkv" \
		--sub-charset 0:ISO-8859-1 --language 0:por --default-track 0:yes "$srt" \
		--track-order 0:1,0:2,1:0
		
	mv "$mkv" ~/.Trash/
	mv "$srt" ~/.Trash/
done

Ícones em branco no Mac? Simples…

Você já se assustou com o Finder mostrando ícones em branco em vários lugares ao mesmo tempo?

Aconteceu comigo umas duas ou três vezes. Me parece que quando utilizamos alguma aplicação graficamente intensa ao lado de outras aplicações, o Finder fica meio atrapalhado.

A solução é bem simples. Basta reiniciar o Finder. Não precisa reiniciar o computador inteiro.

Para fazer isto, pressione Command+Option+Esc, selecione o Finder na janela que aparecerá e clique em Relaunch.

Pronto, problema solucionado. Pelo menos funcionou comigo. Caso não funcione com você é só deixar um recado aqui, pois existe uma segunda possibilidade, um pouco menos simples.

Ejetando CDs ou DVDs presos em seu Mac

Eventualmente CDs e DVDs (mídias) danificados ficam presos no drive de um Mac e este não consegue ejetá-los.

Isto acontece porque o Mac OS X fica tentando ler as mídias e não consegue. Enquanto ele ficar tentando, ele não ejeta a mídia. Já me ocorreram algumas vezes, principalmente após uma sessão de gravação mal sucedida por conta de mídia de baixa qualidade ou riscada.

Fuçando na interwebs encontrei os comandos abaixo que podem ser utilizados para resolver este problema, sem precisar reiniciar o Mac.

Abra o Terminal e digite os comandos a seguir:

$ drutil open
$ drutil eject

Após alguns segundos a mídia será cuspida para fora do drive. ;-)

Instalando a gem IDN no Mac OS X

A gem IDN serve para conversão de nomes de domínios no formato IDN. Ela depende da presença da libidn que normalmente não está presente no Mac OS X.

O processo de instalação é simples, mas tem um truque necessário para que a instalação da gem funcione.

$ sudo port install libidn
$ sudo gem install idn -- --with-idn-dir=/opt/local

O truque é a especificação do parâmetro –with-idn-dir que é necessário para que o instalador da gem encontre a libidn no diretório onde ela se encontra quando é instalada com o MacPorts. O diretório /opt/local/ é o padrão  do MacPorts. Caso tenha alterado este caminho quando configurou o MacPorts, é necessário alterar este parâmetro no comando.

Domain Anagrams

Em algum dia entre 2003 e 2004 eu precisava inventar um nome legal para registrar um domínio e estava ficando cansado de achar uma idéia e na hora de verificar descobrir que o domínio já estava registrado. Foram tantas verificações que eu resolvi automatizar este processo. E para aproveitar eu resolvi fazê-lo em Perl já que não era muito proficiente nesta linguagem de programação.

Recentemente comecei a pensar em um outro domínio para registrar e utilizar em uma idéia de projeto e quando vi o código do script antigo eu percebi o quanto aquilo poderia ser melhorado. Resolvi então refazê-lo em Ruby para praticar e incluir algumas funcionalidades novas.

O resultado pode ser encontrado no GitHub em http://github.com/hgfischer/domain-anagrams.

O script é simples e até que tem um número razoável de opções.

Cidade Flutuante

Este é o primeiro trabalho gráfico que desenvolvi junto com minha esposa e utilizando apenas fotos (nada de 3D como nos anteriores). Utilizamos uma foto do Mt. St. Michel na França e uma foto de montanhas dos Estados Unidos para compor o elemento principal. Também utilizamos uma foto de nuvens e algumas brushes para compor o restante da cena.

Cidade Flutuante

Cidade Flutuante

Snow Leopard, AppleScript e Adobe Unit Types

2009-11-10 22:30:49.907 osascript[5298:307] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types:  dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found.  Did find:

/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper

osascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.

Caso você esteja tendo problemas em executar algum AppleScript e o erro seja algo parecido com o erro acima, aqui vai uma possível solução para o problema:

  1. Baixe a nova versão do Adobe Unit Types.osax (2.1.0) aqui;
  2. Faça uma cópia de segurança do arquivo /Library/ScriptingAdditions/Adobe Unit Types.osax em outro diretório, fora desde diretório;
  3. Descompacte o novo Adobe Unit Types.osax (caso não tenha sido descompactado automaticamente pelo navegador);
  4. Mova o novo Adobe Unit Types.osax para o diretório /Library/ScriptingAdditions/;
  5. Não é necessário reiniciar o computador, mas como pode haver algum programa aberto que depende deste arquivo, é recomendado fazê-lo.

Referências

Error about unit type conversion occurs when you run an AppleScript in Photoshop (Mac OS X 10.6) – acessado em 11/nov/2009

VLC media player no Snow Leopard

Com o lançamento do Snow Leopard, muitos softwares que funcionavam bem com versões anteriores do Mac OS X tiveram alguns problemas. Isto se deve ao fato de que o Snow Leopard é um passo importante na adoção da plataforma 64bits como padrão. Além disso o Snow Leopard introduziu alterações consideráveis em algumas APIs e novos recursos internos.

Uma das aplicações que utilizo que tem dado mais dores de cabeça é o VLC. O VLC é um media player fantástico. Ele tem versões para as principais plataformas (Mac, Win, Linux, etc) e é super leve e poderoso. O VLC também inclui suporte para centenas de formatos de arquivos.

No Snow Leopard o VLC, na versão 1.0.2, vem apresentando diversos problemas com estabilidade, exibição de legendas, etc. O principal motivo é que o VLC deu um passo adiante e criou uma versão 64bits para o Snow Leopard.

Se, assim como eu, estes problemas estão atrapalhando seu horário de entretenimento e lazer, aqui vai algumas dicas que me ajudaram bastante:

  • Baixe a versão 32bits do VLC até que versões futuras do VLC 64bits estejam funcionando melhor;
  • Limpe as preferências com a ferramenta que acompanha o VLC (dentro do DMG);
  • Utilize legendas com codificação ISO-8859-1. Há programas que convertem a codificação de caracteres para você. Um deles é o iconv que pode ser instalado com MacPorts. O TextMate também pode ser utilizado para converter a codificação das legendas.
  • Se mesmo assim os problemas continuarem, acesse o fórum do VLC e informe o problema que está tendo para conseguir alguma ajuda.

Por enquanto é só.

Separadores no Bash

Quantas vezes já foi obrigado a refazer um script em outra linguagem quando se deparou com um for que recebia valores com espaços e não sabia como resolver isto diretamente no Bash?

Eu mesmo já fiz isto algumas vezes. Mesmo quando sabia que era possível consertar o problema no próprio Bash eu acabava partindo para o novo script pois encontrava um pouco de dificuldade de encontrar documentação sobre isto. O manual do Bash não ajuda muito na forma correta de se configurar a variável IFS.

IFS (Internal Field Separator) é uma variável que permite configurar quais são os caracteres que o Bash considera serem separadores de campos. E é com o IFS que o loop for sabe separar os itens dentro de uma string ou dentre várias linhas.

O IFS padrão é configurado para separar campos com espaços, tabulações e linhas.

Para alterar o valor do IFS para não separar campos com espaços, basta utilizar o comando abaixo:

export IFS=$'\t\n'

Agora quando quiser efetuar alguma tarefa numa lista de arquivos que tem espaços em seu nome, não terá problemas. Veja o exemplo:

export IFS=$'\t\n'
for f in `ls -1`
do
    echo $f
done

A arte Steampunk

Você consegue imaginar o que aconteceria com o mundo se a revolução da informação tivesse ocorrido na era vitoriana? Consegue imaginar como seria nossa tecnologia se ela tivesse evoluído com base na energia a vapor? Sabe aquele filme com tecnologias estranhas que parecem ser de um mundo paralelo e que chegam a ser absurdas e paradoxais perto da nossa história ou realidade? Isto é Steampunk!

Como em todos os movimentos artísticos, há controvérsias na definição do que é Steampunk. Há até quem diga que Steampunk pode surgir de invenções reais que não deram certo (muitas vezes por motivos óbvios). Não é a toa que este tipo de arte se destaca entre as invenções reais apresentadas em encontros de nerds que mexem com hardware como a Maker Faire.

Os aparatos tecnológicos criados neste movimento artístico são alguns dos que mais me atraem e eu não sei o motivo exato. Não são as maluquices com vestuário, música, etc. São apenas os objetos e que até poderiam funcionar. Imagine como seria um submarino, uma moto, um carro, se tivessem sido inventados neste mundo paralelo?

Pois bem, criar estes aparatos é uma arte e o resultado chega a ser impressionante. A seguir alguns trechos de filmes e imagens que em minha opinião estão associados com Steampunk:

Steamboy

Wild Wild West

City of the Lost Children

The Time Machine (1960)

Fantastic World of Jules Verne (1958)

20,000 Leagues Under The Sea (1954)

Fallout 3

Fotos de objetos diversos (Infelizmente sem referências)

1-Steampunk-379

1-Steampunk-381

steampunk10-2

steampunk-webcam

Tom_Banwell_Steampunk_Mask-thumb-600x757-36956

radial

steampunk-watch_1_42KfF_3342

Se você também gosta de ver estes objetos feitos de bronze, cobre, aço, couro, muitas engrenagens e que funcionem com vapor veja também os links abaixo e deixe um comentário neste artigo. Fique à vontade para citar outros exemplos de onde encontrar mais referências desta arte.

Dicas

Horário de Verão e o PHP

Há algum tempo atrás eu publiquei um artigo em outro endereço sobre como atualizar a base de fusos horários do PHP para suportar novas variações do horário de verão no PHP, pois o mantenedor do PECL timezonedb estava um pouco ocupado.

Pois bem. Dia 13/10 o timezonedb foi novamente atualizado. Talvez seja hora de atualizar este componente em seus servidores para obter os novos horários corrigidos.

E se você chegou neste blog através de links quebrados, procurando mais sobre este assunto, eu sinto dizer que não irei verificar se o timezonedb foi realmente atualizado com as datas brasileiras. A dica que eu deixo é que finalmente o governo brasileiro fixou as datas do horário de verão, o que possibilita que o timezonedb não precise ser atualizado anualmente.

Resumo da ópera:

# pecl install timezonedb

ou

# pecl upgrade timezonedb