segunda-feira, 24 de março de 2008

Editores de texto simples (e alguns parentes)

Quando comecei a usar Linux há quase dez anos atrás, minha maior incomodação não era com os winmodems ou drivers de vídeo e som. Resolvi tudo isso na primeira semana, comprando um modem US Robotics externo, uma 3DFX Voodoo 3 e comprando um driver de som pela opensound.org, para o meu chipset esquisito.

Isso, meus amigos, representa a minha determinação em usar o Linux de verdade a partir daquele momento.

Também não me incomodava tanto o fato de que a dominância do Internet Explorer estava transformando a Internet em uma fossa, e aos usuários de Linux restava apenas um Netscape Navigator decadente e tão feio que fazia crianças chorarem. Eu mesmo chorava, às vezes. Me agarrei ao Opera na época, que era apenas uma criança valente e não o navegador quase impecável de hoje.

O meu maior problema era encontrar um simples editor de textos. Minhas demandas não eram grandes; aliás, eram o oposto. Eu não queria abrir o StarOffice para digitar um texto de 5 linhas. O vi, embora eu goste dele hoje, requeria muito malabarismo para um editor. Aonde estavam os equivalentes ao Notepad do Windows?

O Kedit não tinha fluxo de texto de acordo com o tamanho da janela. Era fixado em xx colunas, e gravava parágrafos maiores quebrados naquele limite. Idem Kwrite. Acabei usando um editor feito em tcl/tk, com fontes serrilhadas e tortas, mas que servia como "notepad de pobre". Passei um ano fazendo isso até me acostumar com o vi, e mais tarde o kwrite passou a suportar a função complexa de "word-wrap".

É por ter vivido esta experiência pouco digna que venho compartilhar alguns editores de texto para Linux que fazem bem o seu serviço. Descreverei-os em lista, rapidamente. Screenshots para editores de texto não vale a pena. :)
  • Leafpad: editor pequeno e rápido feito em GTK. Faz tudo que o Notepad faz, além de ter "auto-indent", numeração de linhas e permite gravar o texto com finais de parágrafo estilo Windows ou Linux. Um dos meus favoritos.

  • Notepad: sim, a equipe do Wine criou este editor como brinde, que vem junto com a instalação. Basta digitar "notepad" no console e você tem um clone praticamente perfeito.

  • Kwrite: ótimo editor de textos com coloração por sintaxe. Para pequenos scripts em BASH, por exemplo, é perfeito.

  • Gedit: versão Gnome do Kwrite. Simples e direto, uma boa opção para quem está no Gnome e não quer carregar nada do KDE para economizar memória.

  • Scite: este quase passa para o lado dos mais complexos. Editor de textos com coloração por sintaxe, busca por expressões regulares, scripts, e permite exportar para formatos como PDF, HTML, RTF ou LaTeX. É um dos favoritos dos programadores em geral, para o cotidiano.
Há várias outras opções mais complexas, como o Nvu, Kompozer ou Quanta Plus para editar HTML, ou o Texmacs, um editor de typesetting para formatação complexa e precisa, com um grande número de fãs.

Todos estes programas são OSS e estão disponíveis livremente. Se pelo menos um destes editores lhes forem desconhecidos e agradarem, a missão deste post estará cumprida. Por curiosidade, a minha mais recente descoberta, e a mais utilizada, é a do Leafpad, o editor minúsculo...

Limpe seus discos gordos com o kdirstat

Tenho uma lista de programas que classifico como: "programas que você precisa, só não sabe ainda". Um destes programas é o kdirstat, que vem com praticamente todas as distribuições do Linux há muitos anos.

Obrigatoriamente puxando o saco do Ubuntu e Debian: baixe-o pelo apt-get install kdirstat.

Quanto maior a capacidade de nossos HDs, maior a dificuldade de encontrar o que limpar. É aí que o kdirstat entra. Ele varre uma pasta ou disco inteiro, classifica todas as pastas em ordem decrescente de tamanho, e cria um gráfico em que cada bloco representa um arquivo.

Parece complicado, mas é facílimo e intuitivo. Aqui está um dos meus discos, depois da avaliação do kdirstat:



Está vendo aqueles quadrados e retângulos coloridos na parte de baixo? Cada um representa um arquivo, então o primeiro passo é sair clicando nos maiores para saber o que são.

O quadrado roxo, grande, no canto superior esquerdo, é um datafile do meu World of Warcraft. Esse fica. Vou clicando mais, e encontro um candidato a eliminação:



Essa foi fácil! Aquele bloco azul marcado na parte inferior era nada menos que um txt de 2Gb, que estava usando para testes. Já apaguei o arquivo direto do kdirstat.

Minha experiência com o programa revela que, em 90% dos casos, encontro velharias esquecidas que posso apagar ou mover para DVD. Já foram incontáveis horas de limpeza economizadas com esta conveniência.

Como sei que usuário de Windows também tem seus arquivos para manter e também sofre, ofereço um consolo: TreeSize Free. Não mostra gráficos, mas classifica as pastas por tamanho e certamente é uma grande ajuda. E é freeware. :)

domingo, 23 de março de 2008

Firefox no Linux sem o requester bizarro do GTK/Gnome

Sou um cara do KDE. Uso o Kubuntu com orgulho. Preemptivamente, declaro que:
  • Respeito o Gnome e não me importaria [muito] de usar apenas ele;
  • Acho o Miguel de Icaza um programador genial, mesmo apesar de sua inclinação perigosa para projetos da MS;
  • Tento usar e gostar do Gnome a cada nova versão que sai, e um dia deverei conseguir.
Desde o Red Hat 8, que começou a fase de "integração visual" entre KDE e Gnome, os usuários menos atentos (ou que não querem saber destes detalhes sórdidos) sequer sabem diferenciar o que vem do Gnome/GTK ou KDE/Qt na maioria dos casos. Isso é ótimo. No entanto, pequenas diferenças de funcionalidade entre os ambientes surgem de vez em quando e atrapalham a experiência no Linux.

Por tempo demais, faltou drag-and-drop decente entre Qt e GTK. Queria arrastar uma imagem do Konqueror para uma janela do Gimp? Ha ha, só "Open File" pra você, preguiçoso. Arrastar um arquivo do Nautilus para o licq para enviar o arquivo? Não! Está louco?! Use o Konqueror para isso! (Esqueça que Konqueror e Nautilus são ambos gerenciadores de arquivo e fazem essencialmente a mesma coisa.) Eram duas rodas reinventadas, que se odiavam.

Apesar das melhorias, ainda há alguns espinhos. Screenshots copiadas do ksnapshot para o clipboard só podem ser coladas dentro do kmail ou kolourpaint. Os outros 97% que usam o Gimp ou Thunderbird ficam gravando em disco antes. Ouço usuários de Windows rindo dessa patetice, com razão. Depois eles páram de rir e vão correndo fechar os popups de pessoas nuas que o IE apresenta sem pedir. Os nossos clipboards inconsistentes podem não envolver ofertas de Viagra ou imagens esporádicas de pessoas sem roupa, mas são motivos de risada, sim. O Windows já resolveu esse problema do clipboard há mais de dez anos.

Uma pedra que venho carregando em meu sapato há anos no Linux é o fato de o Firefox usar file requesters do GTK. Pode não parecer grande coisa, mas até agora os requesters do GTK são tão irritantes que ainda penso que foram piada de alguém.

Estou falando desta criatura aqui:


Cadê a barra de endereço? Não tem. Ah, você tem que digitar CTRL+L para que ela apareça. Alguns novatos ao Linux já fazem cara feia desde já, mas eu persisto. Só que, na hora de digitar o endereço que você procura, ele usa o autocompletar mais incompetente desde que tentei criar uma parecida em BASIC, aos doze anos de idade.

A aberração trabalha assim: vai completando o que você digita imediatamente, sem apagar o que você continua digitando! Procurando abrir um PDF pelo "acroread" usando a barra de endereço, recebo erros como "Could not find '/usr/bin//in/acroreadad'. Tento de novo: "Could not find '/usr/bin/acror'". O autocompletar dele mostra até o arquivo completo, mas se você dá enter, ele procura só até onde você digitou.

Se você ainda não está insultado até agora, o requester ainda reserva uma surpresa aos pacientes: quando você encara esta sessão de tentativa-e-erro e finalmente acerta o que o requester quer que você digite, ao dar enter ele passa a ler todo o conteúdo do /usr/bin inteiro. Inteiro. Durante os dois minutos de espera desnecessária, procure não lembrar que o motivo pelo qual você digitou aquele CTRL+L e brigou com o localizador foi porque você já sabia exatamente aonde se encontrava o arquivo que procurava.

Idéia estúpida? Não, só o Dalai Lama chamaria isso de "estúpido", porque ele tem várias décadas de meditação e autocontrole, e consegue medir suas palavras. Eu, no entanto, me resigno com dezenas de expletivos que considero adequados, mas que deixariam um estivador com vergonha.

Neste feriado de Páscoa, encontrei duas saídas para esta incomodação de muitos anos. Há duas formas de forçar o Firefox do Linux usar o requester do KDE. Uma delas usa um requester antigo e simples, mas que não ofende o seu intelecto quando você quer apenas pegar um arquivo. A outra é um hack mais hardcore, mas que usa o requester atual e me deixou mais satisfeito.

Para o primeiro caso, a mudança é simples. Entre no Firefox e vá no "about:config" da barra de endereços. Mude a opção "ui.allow_platform_file_picker" para "false", e dê um "Abrir arquivo" novamente. O novo requester será este:



Melhorou. Se já estiver satisfeito, pare por aqui. O requester novo requer a compilação do kgtk_wrapper, e pode dar mais trabalho do que você precisa. Eu quis fazer, porque é Páscoa e eu tive tempo.

Visite este site e pegue o Source do Kgtk. Descompacte para a pasta de sua preferência e entre nela. Para usuários do Dapper, como eu, prossiga assim como root:
apt-get install kde-devel
mkdir build3
cd build3
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
make install
Se nada explodir, você agora tem um programa chamado "kgtk-wrapper", que obriga qualquer programa GTK a usar os requesters do KDE. Funciona bem com vários programas, mas só me importei em usar com o Firefox até agora. Passe a rodar o Firefox precedendo o comando do wrapper antes: kgtk_wrapper firefox. Seus novos requesters deverão ser assim:



Missão cumprida para mim. Testei o wrapper com alguns primos do Firefox, como o IceCat e outros programas GTK como o avidemux, e deu tudo certo. Lembre-se, o wrapper não funciona com tudo. Mas só por me poupar do filereq GTK do Firefox já traz a alegria de que preciso.

Mais uma customização Frankenstein para o meu Dapper. Agora que a iminente versão LTS vai ser long-term apenas para o Gnome e o Kubuntu será short-term suportando o KDE3.5 e o KDE4, acho que vou esperar um pouco mais com a minha distro.

sábado, 22 de março de 2008

Compiz + ATI no Gutsy

Este link vem por cortesia de meu amigo Matias Leidemer, com o qual passamos horas divertidas tentando fazer o seu chipset ATI fazer o que deveria no seu notebook:

http://wiki.cchtml.com/index.php/Ubuntu_Gutsy_Installation_Guide

Na época era uma revisão novíssima de um chipset onboard, e não havia suporte 3D algum pelo Linux. Nós tentamos fazer funcionar. De verdade. Não estávamos pedindo muito... apenas queríamos que funcionasse.

A nova revisão dos drivers Linux lançada pela ATI ostenta algumas melhorias. Uso uma GeForce aqui, mas recomendo aos guerreiros que desistiram de fazer suas ATIs funcionar em 3D há alguns meses atrás, que experimentem este link.

Obs: persistência e paciência necessária. Mas e daí... nós não estamos no Linux? ;)

Abraços, Matias, e obrigado pela dica!

Programas de Windows rodando no Linux - World of Warcraft

Dual-boot com Windows não é pecado.

Tenho o Windows 2000 em dual-boot em casa para situações de desespero, mas estas situações têm se tornado tão raras que a minha média é de um boot no Windows a cada 3 ou 4 meses. Tudo que eu preciso eu faço no Linux, e várias delas eu nem poderia fazer no Windows.

De vez em quando, no entanto, é necessário sair do Linux para acomodar a insistência de empresas que só oferecem seus programas em Win ou Mac. É a vida.

Quem trabalha com Photoshop ou gosta de jogos recentes está praticamente amarrado ao Windows, e Linux é opção inviável. Ainda assim, alguns entusiastas de Linux têm a sorte de adaptar seus programas especiais e minimizar os reboots.

Minha necessidade é pouco nobre, mas me frustrava com os reboots: o jogo World of Warcraft. Já existe opção para rodar o WoW pelo Linux através do Crossover Office ou Cedega, mas ainda prefiro os reboots do que pagar por um Wine modificado.

Resolvi meu problema pelo Wine atual (free) e alterando um config .wtf do jogo. Agora rodo WoW direto do meu Dapper sem reboots, com suporte completo a voice-chat, e com features que o Direct3D não me oferece no Windows, como lighting effects. Nada mal!

É provável que você já tenha o WoW instalado em alguma partição do Windows. Pode deixá-la lá, desde que possua permissão de gravação lá dentro. Com estas sugestões, será possível rodar o WoW tanto pelo Win quanto pelo Lin.

No Dapper, adicionei a linha abaixo no /etc/apt/sources.list para pegar o Wine mais recente no repositório:
deb http://wine.budgetdedicated.com/apt dapper main
Depois, apt-get update;apt-get install wine

Estamos quase prontos. Entre na pasta do jogo, subpasta wtf, e renomeie o Config.wtf para Config-win.wtf. Depois copie este arquivo para a pasta, e renomeie-o para Config.wtf. O arquivo que você acabou de baixar é uma versão modificada, que passa o jogo para OpenGL e modifica algumas opções visuais com tendência a dar problemas pelo Linux. No meu caso específico, meu jogo roda perfeitamente bem.

Volte à pasta raiz do jogo e rode:
wine Wow.exe
Isso deve bastar, pelo que eu me lembro. Há mudanças a se fazer pelo winecfg, como mudar o áudio de OSS para ALSA e permitir o uso de voice, mas se há algum curioso por aí, é só deixar recado nos comments. É possível fazer, roda bem, e conheço dois casos em que não apenas se roda tão bem quanto no Win, mas roda melhor. Parece papo de xiita, mas é verdade. :)

Aqui está uma screenshot. Nada impressionante, mas mostra a iluminação variável no mar que não aparece para o meu setup no Windows:



Se quiser voltar ao Windows, volte à pasta wtf e renomeie o Config-win para Config.wtf. Isso garante que o jogo volte a usar o Direct3D, exatamente como antes.

Boa sorte e aproveitem a conveniência de reiniciar menos. Comentários são bem-vindos.

quinta-feira, 20 de março de 2008

Seja ainda mais feliz com seus MHTs

Complementando o post anterior sobre a extensão UnMHT para o Firefox: ela combina muito bem com a Nuke Anything Enhanced.

Interessados em salvar uma página para a posteridade podem marcar apenas o que querem salvar, selecionar a opção "Remove everything else" no menu de contexto, e salvar apenas o necessário clicando no menu "File" e marcando "Save as MHT (current state)". A página é salva com as edições temporárias do Nuke, e você acaba com um arquivo mais legível do que a página original.

Com o Nuke, também pode-se selecionar alguma tabela, bloco de texto ou banner, e marcar "Remove Selection" ou "Remove this object" no menu. Extensão perfeita.

Caso você tenha removido material demais, um simples reload recarrega a página original.

sábado, 1 de março de 2008

Conversor de capítulos de DVD para MP3

Este script aqui é velho e feio, mas substitui quase qualquer software do tipo e faz o que algum shareware de Windows de $30 cobra para fazer pior.

#!/bin/bash
# Conversor - converte faixas de audio de DVD para MP3
# Requer mplayer e lame
# Raphael Kiekow Hickenbick - feito em 2006

#Definido range com seq -w para garantir que numeros de menos de 3 chars sejam prefixados com 0
for X in `seq -w $1 $2`
do
        if [ $X -gt "0" ]
        then
        mplayer dvd:// -hardframedrop -chapter $X-$X -vc dummy -vo null -ao pcm:file=faixa$X.wav
        lame -V5 faixa$X.wav
        rm faixa$X.wav
        mv faixa$X.wav.mp3 faixa$X.mp3
        fi
done

Fácil de usar: monte o DVD no seu drive, e rode "conversor <faixa inicial> <faixa final>". Colem o script acima em algum editor de textos, salvem como "conversor", dêem um chmod +x. Para instalar permanentemente, dê um mv conversor /usr/bin .

Exemplo, com o conversor instalado no /usr/bin:
Com o DVD montado na unidade, recomendo fazer assim:

mkdir mp3-dvd (se a pasta já não existe)
cd mp3-dvd
conversor 2 25

Com isso, as faixas 2 até a 25 do DVD serão convertidas para MP3 dentro da pasta mp3-dvd. Quem quiser maior ou menor qualidade, ajustem o parâmetro -V no comando do Lame.

Postei o script porque, curiosamente, encontrar algo que faça exatamente isso é difícil, e muita gente conhece este script como a única opção. Tá certo, eu poderia fazer um autoinstalador, usando o Kdialog c/ barras de progresso para tornar tudo praticamente gráfico, mas sinceramente, quem já acostumou com o console aprecia a simplicidade.

Espero que gostem.