quinta-feira, 30 de agosto de 2007

Extensões para o Thunderbird

O meu "regresso ao Ubuntu" teve como consequência, entre outras coisas o regresso ao Thunderbird e o abandono do Mail.app. Isto levou-me a pesquisar algumas extensões para tornar o uso do Thunderbird mais simples.
Para não variar, a minha pesquisa acabou por devolver um resultado no lifehacker com uma lista de plugins bastante interessante.

quarta-feira, 29 de agosto de 2007

Emacs org-mode

Descobri hoje o org-mode para o Emacs e parece-me que finalmente tenho a solução que queria para as TODO list.
Segui este tutorial mas como o autor por vezes se esquece de dizer como se fazem certas coisas, convém ter o manual por perto para consultar a secção 2.2. Descobri também um tutorial para usar o org-mode com o GTD que ainda não tive oportunidade de ler.

Entretanto tive também oportunidade de experimentar o TaskFreak que me foi sugerido num comentário. O TaskFreak para mim tem dois problemas base. O facto de todas as tarefas terem que estar associadas a um projecto e assim obrigar à criação de projectos e também o facto de ser na prática uma lista "plain" de tarefas por projecto , com um certo feeling que cada tarefa é uma linha de texto mas que dá mais trabalho a criar. Parece-me o parente pobre do dotproject (não se deixem enganar pelo nome, é em PHP) que mesmo sendo mais completo não se encaixou no meu método de trabalho.

terça-feira, 28 de agosto de 2007

Script para um pipe menu no openbox

Fiz um script para colocar qualquer output de um comando de shell num pipe menu do Openbox

#!/usr/bin/python

import os
import sys

# Example
#
# /generic.py "df -h -x tmpfs -x usbfs"
# /generic.py "ps ax"
# /generic.py cal
#
# "cal" output shows up unformated due to non monospaced fonts

# Set the default command
cmd = "ls ~/ -1"
if len(sys.argv) > 1:
  # Replace the default command with the one given on the command line
  cmd = sys.argv[1]

# Execute the command
sf = os.popen(cmd)
# Get the command stdout output
cal = sf.read()
# Generate the menu item
menu = "\n".join(['<item label="' + ln + '"></item>' for ln in cal.split("\n") if ln and not ln.isspace()])
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
print "<openbox_pipe_menu>"
print menu
print "</openbox_pipe_menu>"

O próximo passo será colocar opções para definir um script que faz o handling do click sobre cada item do menu e opção para não cortar as linhas em branco ou só com espaços. Falta também substituir as concatenações por %s e um bug que faz com que não apareça nada nos menus quando o output do comando de shell contém um caractér & porque o XML fica inválido, penso eu.
Tal como está escrito nos comentários, há problemas com a formatação dos outputs porque a fonte que uso nos menus não é monospaced nem tenho intenção que seja, o que faz com que as linhas do output fiquem desalinhadas.

domingo, 26 de agosto de 2007

obpager 1.8 no ubuntu feisty

Andei a experimentar o obpager, basicamente a única coisa que eu queria era algo que me dissesse em que desktop estou. Como o link para o .deb que está na página do projecto não funciona tive que o compilar. Apesar de ter instaladas as poucas dependências e respectivos headers a compilação falhava.
Primeiro não encontrava o header da xlib Xlib.h, porque o local onde este ficheiro se encontra não estava definido na Makefile. A solução foi editar o ficheiro Makefile e alterar a linha 18 de
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src
para
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src -I/usr/include/X11
Isto fez com que passasse a ter outro erro, o shape.h também não era encontrado, mais uma vez pelo mesmo problema. De novo a solução foi colocar a path no Makefile na mesma linha.
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src -I/usr/include/X11 -I/usr/include/X11/extensions/
Agora tinha um novo problema, ao compilar falhava com o seguinte erro:
g++: ./objs/src/main.o: No such file or directory
Um erro anterior sugeria qual o problema:
src/main.cc:161: error: `errno' undeclared (first use this function)
Uma pesquisa no google dizia que o problema se deve à versão do gcc. A solução seria então acrescentar ao ficheiro src/main.cc o seguinte:
#include <sys/errno.h>
Aqui está a thread que me levou à solução, o comentário que tem o diff, o 3º é o que resolve o problema apesar de o meu gcc ser o 4.1.2 e não o 3.4.
Após tudo isto o obpager ficou a funcionar.

sexta-feira, 24 de agosto de 2007

Thunderbird 2

O Ubuntu Feisty vem com o Thunderbird 1.5 nos repositórios, ontem andava a tentar instalar o dicionário PT_pt e aquilo dizia-me que só dava no 2.0.
Encontrei aqui a solução para quem quiser ter o 2.x em vez do 1.5, entretanto instalei-lhe também um biff

quinta-feira, 23 de agosto de 2007

Mais um passo nas to-do lists

Há que tempos que eu ando a tentar arranjar uma TO-DO list mais eficaz do que fazer tudo de memória. Desde o GTD até a anotações num papelinho, nada tem resultado. Por esse motivo, vale sempre a pena dar mais uma olhadela a qualquer coisa que apareça. Manter a TO-DO list pequena, gosto da ideia de ter várias listas separadas, uma pequena para acções imediatas, outra para acções a fazer um dia e a lista de pequenas tarefas não prioritárias a despachar num intervalo da principal ou quando esta estiver concluída.
Só falta um software que implemente isto.

terça-feira, 21 de agosto de 2007

Gnome e OpenBox

Eu utilizo o OpenBox no meu ubuntu tanto em casa como no trabalho. Em ambos algumas features como o Ctrl-Alt-L fazer lock ao ecrã ou a roda do teclado controlar o som, como referi no post anterior, são-me fornecidas por qualquer coisa do gnome que me anda a correr nas máquinas e que eu não sei bem o que é.
Um "ps ax" sugere que seja o gnome-settings-daemon o causador destas coisas, a verdade é que não sei porquê que isto está a correr já que um colega que usa o mesmo setup ubuntu->gdm->openbox não tem estas features activadas.
Por mim fico contente que isto aconteça mas já agora gostaria de perceber porquê!

segunda-feira, 20 de agosto de 2007

Mixer no gnome com SB Live

O meu PC já tem uns aninhos, a placa de som talvez ainda mais. É uma SB Live 5.1. Isto raramente é um problema para mim já que utilizo o OpenBox ou o Windowmaker mesmo em computadores mais recentes.
Hoje um bocado por acidente descobri que a "rodinha" para controlar o volume que está no meu teclado funciona sem que eu me tenha dado ao trabalho de a configurar. Infelizmente esta feature é grandemente prejudicada pelo facto de nem a mixer do gnome nem o volume.app controlarem o volume de som da minha placa.
Pus-me a investigar e finalmente encontrei a solução, que afinal é simples mas pode custar a descobrir.
Um bocado a provar que a linha de comandos é mais fácil do que qualquer ambiente gráfico, a solução que apareceu primeiro foi a do volume.app em forma de uma opção que é passada no arranque desta aplicação. Primeiro corri o alsamixer e alterei os settings todos até descobrir que o volume nesta placa (e com este driver) não é alterado pelo "master" mas sim pelo "wave". Daqui a descobrir o que fazer no volume.app foi um passo. Um simples:

$ volume.app -l
Mixer device: TriTech id 3 (EMU10K1)
Available sources:
1. Master volume (100%)
2. Bass (50%)
3. Treble (50%)
4. FM Synth volume (100%)
5. PCM Wave volume (100%)
6. PC Speaker (0%)
7. Line In level (0%)
8. Microphone level (0%)
9. CD volume (81%)
10. PCM Wave 2 volume (64%)
11. Input gain (0%)
12. Line In 1 (0%)
13. Digital In 1 (0%)
14. Phone input (0%)
15. Phone output (100%)
16. Video volume (0%)

Revelou que a source que eu necessitava alterar era a Nº10, daí foi só arrancar a aplicação com o seguinte parâmetro:

volume.app -c 10

Agora restava descobrir como fazer o mesmo com a mixer do gnome já que concerteza era o gnome-session que estava a fazer com que a "rodinha" do teclado funcionasse. Primeiro arranquei com o controlador de som do gnome. Como não estava a usar o gnome e sim o OpenBox fi-lo da seguinte forma:

$ gnome-sound-properties

Aqui foi onde perdi mais tempo pois não estava a perceber como funcionava o interface. Até que num momento de inspiração percebi que na lista que se encontra em baixo bastava selecionar a source que seria controlada pela mixer e o problema ficou resolvido. A opção que tive que selecionar foi "Wave" como se pode ver no screenshot.

sexta-feira, 17 de agosto de 2007

A saga continua...

A minha saga no uso do emacs continua. Agora consegui descobrir como instalar um emacs mas em bonito.

Emacs

Apesar de eu ser utilizador do vi já há alguns anos, resolvi dar uma hipótese ao emacs de me distender um tendão ou dois...
Deixo aqui e aqui uns links que me têm dado uma ajudinha.

quarta-feira, 15 de agosto de 2007

Slick 'n Slide fans

Seja em Windows, Mac ou Linux... animem-se

segunda-feira, 13 de agosto de 2007

Essenciais de um windowmanager

Ainda em relação aos windowmanagers que utilizo deixo aqui a lista de features que assim de repente me ocorrem como indispensáveis:

  • Ser leve

  • Permitir configurar as teclas de atalho directo para os desktops (consegui reduzir para 6 e uso normalmente Alt-Fn para lhes aceder)

  • Permitir mudar de desktop com a roda do rato, rodar para cima "next desktop" e para baixo "previous desktop", no OpenBox isto é configurável e por omissão vem ao contrário

  • Suportar dockapps

  • Permitir definir que aplicações abrem em que desktops e não as abrir noutro que não o definido

  • Ter uma maneira rápida de lançar as aplicações mais usadas. No Windowmaker arrasto o icon dessas aplicações para junto do clip no desktop correspondente. Como existem coisa tipo iDesk, praticamente qualquer wm tem uma solução fácil para isto. Entretanto defini o Alt-r como shortcut para correr o gmrun o que é ainda melhor do que ter icons para lançar as aplicações.


E pronto, penso que são só estas as carecterísticas que considero fundamentais num windowmanager, se me lembrar de mais alguma eu aviso.

Openbox

O meu regresso ao Ubuntu no computador do trabalho tem tido as suas consequências. Ao regressar ao Linux começo a utilizar o Windowmaker, isto causa logo algum entusiamo a um colega que larga o Beryl e muda também para o Windomaker. Não que ele desconhecesse o Windowmaker mas porque ele acha que o Windowmaker é muito poderoso e eu ter-lhe relembrado disso foi o que faltava para o regresso.
Mas a coisa não se fica por aqui, ele começa a experimentar windomanagers e chega ao OpenBox, e ao mostrar-me o OpenBox eu decidi dar uma hipótese ao dito windowmanager.
Como eu raramente faço reboots ou logoff, ainda só entrei duas vezes no OpenBox. Uma quando o acabei de instalar e outra quando lhe coloquei no script de arranque a lista de software que quero correr juntamente com o OpenBox. De ambas as vezes o OpenBox arrancou imediatamente, de tal modo que eu fiquei à espera convencido que ainda faltava alguma coisa... mas não, de facto ele já tinha terminado de arrancar. Para ajudar à festa os menus são extensíveis em python.
Estou a utilizá-lo neste momento e já o tenho a fazer praticamente tudo o que tinha no Windowmaker. Pelo menos nos próximos tempos, se tudo correr bem, vou estar a bombar no OpenBox.

quinta-feira, 9 de agosto de 2007

terça-feira, 7 de agosto de 2007

Google Peganhento

Com o Google peganhento só falta mesmo lembrar-me qual foi a pesquisa que fiz...

O que me tem mantido ocupado

O meu recente regresso ao Ubuntu teve as suas consequências. Eu apesar de ser utilizador do Ubuntu não uso o Gnome, prefiro o Windowmaker.

Quanto aos editores, costumava utilizar o vim, gvim e nedit. Fui verificar e descobri que o Nedit está parado desde 2004 e que ficou para trás, não tem auto-complete entre muitas outras features a que me habituei no Textmate e os 3 anos parados sugerem que nunca as terá. A verdade é que o Textmate elevou a fasquia de qualidade que um editor precisa ter para me convencer e, como eu não me consigo habituar ao emacs, o vi continua a ser a única solução.Esta conclusão não chegou sem que antes experimentasse o gedit, que parece estar no bom caminho mas... ainda tem muitos problemas. Problemas suficientes para que o descartasse numa tarde.

Tendo em conta que eu trabalho muito em servidores remotos, andar a copiar ficheiros por FTP para os editar localmente e depois voltar a colocar no servidor, etc..., não é uma solução viável.
Desde logo surgiu uma solução que não sendo péssima também não me agradava. Como eu me decidi pelo vi ou dependendo do contexo o gvim, descobri que este pode editar directamente ficheiros remotos utilizando a seguinte sintaxe:

gvim scp://server_address//server_path/filename

Não é uma má solução mas sem autocomplete não era opção.

Seguiu-se uma segunda solução, durante os meus testes com o gedit utilizei o nautilus para navegar no filesystem remoto por ssh, assim bastava fazer duplo clique sobre o ficheiro e editar, mas... o gvim não suporta vfs logo isto não funciona. Mas encontrei uma versão alternativa só que não consegui descobrir como atribuir um shortcut para isto, logo tinha que selecionar o ficheiro, clicar com o botão direito selecionar a opção "scripts" e depois "Open With Gvim". Não, isto também não é uma opção válida, não há produtividade que aguente este tipo de coisa, isto assim mais parecia o Windows.

A terceira foi de vez, a solução que encontrei foi montar a ligação ssh como se fosse uma drive. Daqui para a frente passei a poder abrir os ficheiros com o gvim, ou outro editor à escolha, usar o autocomplete do terminal ou se perder totalmente a cabeça até usar o nautilus.

quinta-feira, 2 de agosto de 2007

De volta ao ubuntu

Devido ao cabo do meu carregador ter derretido e ao carregador para o Powerbook G4 custar €130, se bem que consigo uns manhosos por menos de €50. o que continua a ser caro, vou estar uns dias sem o portátil, o que me leva a voltar a usar o Ubuntu no trabalho.
Este post já está a ser escrito a partir do CD de instalação do Ubuntu ;)