Roteiro pós-instalação do Kubuntu 12.10

Então, aderindo à moda (e também sucumbindo à preguiça), juntei num pequeno script tudo que eu fiz logo após instalar o Kubuntu 12.10 Beta 1 em minhas máquinas.

Tá tudo lá num gist: https://gist.github.com/3706813

Basicamente, instalo meus softwares favoritos, removo algumas coisas desnecessárias e configuro o que conseguir. O script atualmente faz o seguinte:

  • Instala o Xmonad e o configura como gerenciador de janelas padrão do KDE
  • Instala umas “coisas de Python”: python-dev, python2, ipython, virtualenvwrapper, etc.
  • Instala o VIM (juntamente minhas configurações)
  • Google Chrome
  • Clementine Music Player
  • VLC e seu backend pro Phonon
  • Re-habilita a função “Hibernar”
  • Gimp, Inkscape e Pidgin

Além disso, há algumas configurações que eu faço manualmente: hinting das fontes, painel do KDE, coisa e tal. Esses itens eu ainda não sei como automatizar via shellscript.

E é isso aí. Deve haver mais algumas coisas das quais eu não me lembro agora, portanto aquele gist provavelmente será atualizado.

ies4linux and Wine 1.4

This is my first post in that category of posts that are tips that you write for yourself, like if you were saving a message in a bottle in the hope that you will find it again when you need.

If by any reason you want to run IE6 on your Wine 1.4 you can use ies4linux. It’ll probably tell you that there is something wrong with wineprefixcreate, but you can fix that by using wineboot to create the prefix. Just edit create_wine_prefix in ies4linux/lib/functions.sh to use wineboot instead of wineprefixcreate.

If you are wondering why that is necessary: wineprefixcreate was deprecated [1].

Well, at least it worked for me.

[1] http://wiki.jswindle.com/index.php/Wineprefixcreate

PythonBrasil[7]

Ontem recebi meu certificado de participação na PythonBrasil [7], e isso me lembrou de que eu deveria tentar escrever algo sobre as impressões que tive do evento.

Antes de mais nada, essa foi minha primeira PythonBrasil e meu primeiro contato com a comunidade. Fiquei muito satisfeito com o evento, que efetivamente superou minhas expectativas. Foi ótimo conhecer o pessoal da comunidade, ver todos reunidos trocando experiências, incentivando uns aos outros e falando sobre Python.

A organização do evento esteve de parabéns. A estrutura, as salas, a sonorização, tudo foi muito adequado, apesar de alguns atrasos nas palestras e de eu não ter conseguido tormar café no primeiro dia (quando cheguei ao evento, o café tinha acabado).

Os palestrantes também estão de parabéns. Houve uma grande variedade de temas, e palestras adequadas para pessoas com diferentes níveis de conhecimento em programção e Python. Aliás, achei interessante como alguns palestrantes se preocuparam em adequar suas palestras ao público, que em sua maioria era composto por iniciantes em Python ou pessoas que participavam do evento pela primeira vez.

Além disto, esta PythonBrasil foi particularmente marcante, pois foi minha primeira oportunidade de participar de um Coding Dojo. Em resposta à despretensiosa pergunta que fiz na palestra do Thiago Garcia o pessoal decidiu organizar um dojo ali mesmo, e no final do dia tinham sala, projetor, disposição de ensinar e até mesmo um semáforo!

Enfim, parabéns a todos que estiveram envolvidos no evento, obrigado e até 2012!

Efeitos do KWin e placas da Intel

Já faz algum tempo que venho usando o KDE, e por incrível que pareça, não comecei a usá-lo por causa dos efeitos visuais ou de sua beleza. Por muito tempo nem mesmo soube que o KWin, o gerenciador de janelas do KDE, possui aqueles efeitos visuais bacanas.

Recentemente, contudo, comecei a usar um efeito do Compiz que exibe todas as janelas abertas lado a lado na tela. Achei-o muito útil, e portanto fui procurar algo semelhante no KDE. Habilitei lá os efeitos do KWin, troquei umas teclas de atalho e apliquei. Confesso que a primeira impressão foi decepcionante. O painel inferior, o menu e algumas janelas ficaram meio escuros e o sistema ficou muito lento. Para piorar, eventualmente quando eu tentava exibir todas as janelas lado a lado, o sistema travava e tinha que ser reiniciado. Ao reboot seguia outro problema: a tela de login simplesmente não aparecia. E por fim, após o segundo reboot, os efeitos eram automaticamente desabilitados.

Como bom jovem entusiasta de tecnologia, software livre e tudo mais, googleei um bocado procurando a solução para todos os meus problemas. Não saber qual era meu problema foi o maior deles, até que, depois de todo um carnaval enfiado no quarto tentando diferentes combinações de distribuição, versão do KDE, efeitos habilitados/desabilitados e hacks propostos em listas de discussão obscuras, finalmente descobri que o problema estava nos drivers da Intel.

Munido da minha recente descoberta, de alguns dados que pesquei no glxinfo e de algumas xícaras de café, googleei as palavras-chave mágicas e cheguei a este tópico no fórum do Ubuntu, onde alguém tinha problemas parecidos com os meus. O cara disse que eles eram solucionáveis com os novos drivers da Intel, disponíveis em um repositório ppa. Instalei o novo driver e pimba! Meu KDE ficou mais bonito do que nunca, com efeitos de transparência e tudo mais.

Então eu recomendo a quem for usuário do Ubuntu com problemas gráficos num sistema com placa Intel, tentar instalar os drivers mais atuais, disponíveis no ppa xorg-edgers. Há instruções de instalação aqui, embora eu ache mais simples usar o seguinte comando (que instala o repositório ppa), seguido da famosa dupla apt-get update, upgrade:

# apt-add-repository ppa:xorg-edgers/ppa

Atualização – 1/5/2011

Desde o lançamento do Kubuntu 11.04, meu vídeo quebrou. Eu fiquei muito triste, pois o Natty traz o KDE 4.6.2, que está muito mais rápido e estável que as versões anteriores, e infelizmente, depois de alguns dias de alegria, meus efeitos simplesmente pararam de funcionar – nem mesmo o glxgears rodava! Mesmo assim, não tive coragem para voltar para os drivers “padrão” do Kubuntu, e encontrei um ppa (indicado na própria página do xorg-edgers) que se diz “estável”. Ei-lo: ppa:ubuntu-x-swat/x-updates. Vou deixar esta nota aqui como um fallback. Quem tiver problemas com o xorg-edgers pode usar esse x-swat.

Que linguagem de programação “você é?”

You are Python You are slower than others, but easier to understand. You are a minimalist, who doesn't like clutter.
Which Programming Language are You?

Juro que não manipulei o resultado!

GVim como editor padrão no Ubuntu

Sempre que instalo um novo sistema Ubuntu para uso pessoal, faço o seguinte, para dizer ao sistema que quero abrir arquivos de texto, script, código-fonte, etc com o GVim.

# update-alternatives --config editor
# update-alternatives --config gnome-text-editor

Mas isso não basta, por causa de um tal arquivo defaults.list, que fica em algum lugar aí em sua pasta pessoal e diz ao GNOME com qual programa abrir cada tipo de arquivo. O certo seria sair substituindo todas as entradas no tal arquivo pelo GVim, mas como sou preguiçoso, simplesmente esqueço o tal arquivo e altero (clique com o botão direito no menu “Aplicativos”, “Editar menus”) o item do menu intitulado “Editor de textos” para o seguinte comando:

gvim %f %F

Simples assim. A dica eu vi aqui: http://ubuntuforums.org/showthread.php?t=7370

jQuery UI Closable Tabs

There is a feature request at ticket #3924, but I wanted it to be more flexible and compatible with jQuery UI 1.4.2. So I modified it. You can get the file at gist:

http://gist.github.com/506264

To create a closable tab panel, just call tabs with the close option properly set. You can also set it as a callback that return boolean. A simple example of use would be:

$(document).ready(function() {
    $('#tabs').tabs({
        closeTemplate: '<span><img src="/images/icons/close.png" /></span>',
        close: function(ui) {
            return confirm('Are you sure you want to remove ' + ui.tab.text + '?');
        }
    });
});

To make it look better, use the following CSS:

.ui-tabs-close { float: left; margin: 0.5em 0.4em 0 0;  }

Available options:

  • closeTemplate: the close “button” template. Default is <span>(x)</span>.
  • close: simply set to true to allow tabs to be closed or to a callback that will be called with a ui argument when the close button is pressed.

Update: there is a simpler and smarter example of closable tabs at http://www.stilbuero.de/jquery/tabs_3/close.html.