Month: December 2008

Best Bash tip ever!

Posted by – 31/12/2008

While googling for something completely different (which I cannot remember right now), I passed by what is probably the best Bash tip I ever read:

bash$ head -10 /etc/apache2/sites-available/default
(...)
bash$ ^10^20^
(...)

What happens in the second command is that the previous one is repeated, replacing “10” by “20”! How great is that?!

Bluetooth presence detection

Posted by – 27/12/2008

This is the follow-up on my Asus EEE PC configuration. Next on my TODO list was to make the webcam work, and as Ben Armstrong had pointed it worked fairly well, proving to be a non-issue.

After that, I decided it would be a good thing if the presence of my bluetooth-enabled cellphone were tested, so that if I walk away from the PC, it called xscreensaver -lock. After some googling, I found a tool that did just that: BlueProximity. It really seemed a good idea, except that my cellphone (a Palm Treo 650) kept warning me about a connection going on, which was quite unpleasant. This happens because BlueProximity tests the RSSI of a bluetooth connection… Beautiful, but a little overkill for what I wanted: I just wanted to know if it is there or not.

First I tested the bluetooth discovery with hcitool scan, but for that I would have to keep my cellphone Discovery On, which is not a smart thing to do… So I tested other things, and found out that hcitool name XX:XX:XX:XX:XX:XX only returned the name of my cellphone if it were around. So that was what I used. This is treo-presence.sh script:

#!/bin/bash
 
TREO='XX:XX:XX:XX:XX:XX'
NAME='name_of_my_cellphone'
CMD="/usr/bin/hcitool name $TREO"
 
if [ "`$CMD`" = "$NAME" ]; then
  exit 1
fi
 
exit 0

It returns 0 or 1 if the TREO device is absent or present, respectively. I use it from the following cron script:

#!/bin/bash
 
/usr/bin/w | /bin/grep $LOGNAME > /dev/null 2>&1
 
if [ $? -ne 0 ]; then
  # Running user is not logged in
  exit 1
fi
 
CMD="/usr/local/bin/treo-presence.sh"
LOCK_CMD="/usr/bin/xscreensaver-command -lock"
FILE="/tmp/no-treo-lock.txt"
TMPFILE=`/bin/tempfile`
 
/bin/touch $FILE
/usr/bin/tail -2 $FILE > $TMPFILE
$CMD; echo $? >> $TMPFILE
/bin/mv $TMPFILE $FILE
/bin/rm -f $TMPFILE
 
for line in `cat $FILE`; do
  if [ "$line" = "1" ]; then
    exit 1
  fi
done
 
# Got here: all 3 lines are not 1
$LOCK_CMD > /dev/null 2>&1
exit 0

This is run from the user crontab file every minute, recording the last 3 runs in a file in /tmp. If all 3 runs indicates the absence of my cellphone, xscreensaver -lock is called. Simple enough and doesn’t give me connection warnings in my Treo.

Other approaches are surely possible. Also, I am not sure treo-presence.sh would work for other devices… This is just what works for me…

Waiting for the end of days

Posted by – 24/12/2008

Wow! I woke up this morning and, while browsing my usual feeds I got a nice (although odd) surprise: Rails and Merb will merge !!! Should we all wait for the end of days? 😉

Seriously… That is really something I’d never have expected. Rails 3 will be such an interesting framework! What a nice Christmas gift!

Merry Christmas.

Culpado até prova em contrário

Posted by – 22/12/2008

Aqueles que desistem da liberdade essencial para obter uma pequena e temporária segurança não merecem nem liberdade nem segurança (Benjamin Franklin).

Estou deprimido. Perturbadoramente deprimido. Sim, eu sei que estou com um brinquedinho novo e tal. Sim… eu sei q estou devendo o restante do relato, mas estou tão deprimido que nem consigo pensar nisso.

O motivo de tamanha depressão? Juscelino Kubitschek.

É… eu sei que o cara é um “herói nacional” e tal… Mas para mim ele cometeu um erro importantíssimo. Talvez o mais grave erro que um estadista de um país democrático pudesse cometer: Ele criou Brasília.

Peraí!!! Já posso antecipar a quantidade de flames que o parágrafo anterior vai gerar… Antes de me flamear, deixa eu explicar… (Antecipadamente, peço desculpa aos brasilienses que provavelmente são tão gente boa quanto o resto de nós, brasileiros).

Um país democrático precisa que suas instituições de poder estejam “a disposição” do povo, e não somente “a serviço”. Com isso quero dizer que eu, enquanto povo, devo ter o direito de olhar na cara de meu representante, eleito com o meu voto, e mandar ele praquele lugar, se assim desejar. Não digo impunemente (provavelmente enfrentaria alguma acusação de desacato ou algo assim), mas livre e democraticamente.

Não parece ser suficiente que mais de 126 mil pessoas tenham expressado por escrito seu descontentamento com o vigilantismo que paulatinamente cresce na pauta legislativa brasileira… Talvez se a capital federal ainda fosse no Rio de Janeiro (ou em algum lugar acessível pelo povo de outra forma que não o avião), uma boa parcela dessas 126 mil pessoas poderiam fazer um piquete na frente do Congresso Nacional para se expressar verbalmente: um gigante VÃO TOMAR NAQUELE LUGAR! talvez surtisse mais efeito.

Estou deprimido porque a proteção de vítimas de um crime hediondo (embora muitíssimo mais infreqüente do que tantos outros de que somos vítimas) seja usada para alimentar a paranóia geral, e para subverter a presunção de inocência a que todos têm direito constitucional. Sim… obviamente acho que a pedofilia é uma doença e um crime e, como tal, sou contra… mas também sou contra a destruição das liberdades civis. George Orwell já havia alertado o quão perigoso é a cedência das liberdades civis em nome do Estado; os últimos dois mandatos executivos estado-unidenses nos mostraram isso com riqueza de detalhes; a mais recente Olimpíada, da mesma forma. Agora, ao que parece, o Brasil também entra no rol dos exemplos negativos.

(Se Brasília não fosse tão longe, vocês acham que isso aconteceria? Talvez sim, o que desabonaria Juscelino… Mas agora nunca saberemos.)

Estou deprimido porque as “proteções” a que todos estaremos submetidos a partir de tal medida são tão facilmente ultrapassáveis que não precisa nem ser muito geek para fazê-lo. Estou mais deprimido porque, mais uma vez, atacamos um problema pelo lado, sem enfrentá-lo de frente; porque mais uma vez vamos atrás dos “peixes pequenos”… Quem realmente fatura com a pedofilia (esse sim, um criminoso e não um doente) vai apenas acrescentar mais uma camada de proteção (se é que já não o fez).

Estou deprimido porque não paro de imaginar qual será o próximo passo… Não paro de pensar que o cenário Orwelliano parece estar inexoravelmente no fim dessa estrada, ainda que os quilômetros finais talvez sejam apenas vistos pelos meus netos (será?).

Enfim, estou deprimido…

(que me desculpem os fãs de Juscelino… É que um cara deprimido culpa qualquer um…)

Lenny in the Asus EEE PC 901 – day 2

Posted by – 18/12/2008

Really, now is the day 3… I am just considering this day 2 for I had to do a lot of things again due to my dumbness. Let me explain:

I had a desktop environment in place (with fluxbox), wired network, and most of my daily softwares (Iceweasel, X-Chat, Pidgin, GkRellM), then I decided to test the Suspend-to-Disk… At first, it seemed to work well: I made a swap file for uswsusp, just as documented… what is not documented is that this file must be outside the encrypted partition!

So, when I turned it on again, an error telling me about some corruption in the opened luks partition. I though “OK, something gone mad, just a matter of running an e2fsck”. So I booted with the netinst pendrive, opened the luks partition and ran it with -y. Everything seemed to be corrupted!!! It spend almost 5 minutes fixing bogus inodes and stuff before I decided to interrupt the process… this “fixed” filesystem would never work anyway.

So I began from scratch… All over again. When I got into a working base-system, some other thought stroke me: what if Brenda were to use rohan (have I mentioned the name is rohan? I name all my machines after places in Middle-earth)? So, a minimal “user-friendly” desktop is needed… After some research, I decided to go for LXDE. This is a minimalist desktop with OpenBox as the window-manager. I’ve been using FluxBox for a long time now, so running another BlackBox-based would not be such a problem.

LXDE is quite good. So far, everything I expected is working fine….

Then I decided it’s time to move on to configure the Wi-Fi stuff. I installed the RT2860 modules from Debian/EEEPC Repository and added rt2860sta to /etc/modules. At first I was worried that some reports of it not working with WEP showed up in a Google Search… But nothing could be smoother! I installed wicd and it detected our WEP AP like a charm (and a bunch of other APs nearby)… after entering our key it just connected fine and I’ve been using it since… no glitches so far.

I would like to play a little more, but I called the day since I got a lot of work going on… Next item planned is the webcam…

Lenny in the Asus EEE PC 901 – day 1

Posted by – 16/12/2008

Following my previous post, today I began to turn my brand new Asus EEE PC 901 into a Debian Machine. At first I wanted to do all in one day, but since work is taking too much out of me (and everything seems to take more time than expected), I’ll have to split this in different days…

So, first things first. I read Debian Wiki on the issue and began by doing the most important: backing it up. So I got a daily netinst iso, put it on a USB Pendrive and followed the tip on backup over the network using netcat. Easy and effective, and took only 8 minutes on the 901 (I think the 35 minutes described on the wiki were for models with slower NICs).

From there, I had to decide which version of the installer I’d use. I chose Standard, since I want an encrypted disk on my EEE. So I run the installer and, on the partition manager, I deleted /dev/sda1 (where Xandros was installed), turning it into a 300 MB /dev/sda5 (to use as /boot) and a 3 GB /dev/sda6 building a Logical Volume over an LVM Volume Group with it and /dev/sdb1 (where the user directory was), and enciphering it. This took a long time, since, I believe, random data were being written to the device to increase crypto strength. I left /dev/sda{2,3,4} as they were, since they can belong to the Asus EEE Recovering System (and they don’t take too much space 🙂 )

Now base system is installed, and wired network works like a charm… Next steps will have to wait until tomorrow.

It arrived!

Posted by – 15/12/2008

I got an Asus EEE PC 901 Linux. Unfortunately it arrived just now, at the end of the day. I’ll document the process of turning it into a Debian machine as I go, beginning tomorrow. So, stay tuned!

Versão somente áudio da Audiência Pública do PLC 89/2003

Posted by – 10/12/2008

Como eu havia prometido em um comentário antigo (depois de devidamente “lembrado” pelo João Sérgio), acabo de fazer o upload da versão “somente áudio” para a Audiência Pública sobre o PLC 89/2003.

A idéia de uma versão “somente áudio” é economizar o download, evitando que um arquivo tão grande quanto os de vídeo seja transferido quando somente o áudio já é suficiente. Então ajustei meu objetivo em reduzir o arquivo original para 20% do seu tamanho na versão “somente áudio”… A seguir descrevo os passos que usei para obter essa versão:

1. Extraindo o arquivo original do Google Video.

Graças ao leitor Gilson Karas, obtive o endereço para o vídeo da audiência. Utilizei o plugin UnPlug do Firefox para extrair o arquivo em Flash Video – um arquivo de 365,9 Mb. Meu objetivo passou a ser 73-74 Mb.

2. Cortando o vídeo e deixando somente o áudio.

O arquivo resultante (chamarei de audiencia.flv) tinha um stream de vídeo em formato Flash e um stream de áudio em formato MP3. Usando o ffmpeg:

bash$ ffmpeg -i audiencia.flv -vn -acodec copy temp.mp3

Infelizmente isso resultou em um arquivo MP3 muito grande (129 Mb, ou 35% do original com vídeo)…

3. Recodificando o arquivo MP3

Resolvi aplicar alguma mágica e recodificar o arquivo para tentar reduzir os 15% que faltavam. Usei o LAME que está empacotado para o Debian. Aproveitei e coloquei algumas tags (lembre que no site da TV Câmara está explícito que a reprodução é autorizada mediante citação da mesma… que maneira melhor de citar a TV Câmara em um arquivo de áudio do que em suas tags?). Eis o comando resultante:

bash$ lame --vbr-old -V 4 -m m --tt "Audiencia Publica PLC 89/2003" --ta "TV Camara 13/Nov/2008" --ty "2008" --tl "PLC 89/2003" --tg 12 --tc "Originalmente no Google Video - http://video.google.com/videoplay?docid=7432623562478685874" -c --resample 16 --highpass 0.125 temp.mp3 audiencia.mp3

As opções que representam tags são auto-explicativas… A “mágica” está no “resample” (reduzi de 22.05 no original para 16), no filtro “passa-alta” setado em 0.125 e na utilização de VBR. Essas opções serviram para reduzir o tamanho do arquivo e, ao mesmo tempo, cortar os ruídos baixos (abaixo de 125 Hz) que nem seriam ouvidos de qualquer forma.

O arquivo resultante ainda manteve razoável qualidade e com apenas 79 Mb. Não atingi os 20% almejados, mas com 21,6%, encerrei a sessão 😉

O resultado pode ser encontrado aqui.

Debian crashing the Internet!?

Posted by – 05/12/2008

I just read on Slashdot a pointer to an article about GitTorrent and it made me wonder about these “meta-distributed” systems. Although I don’t share the article’s author enthusiasm, it’s a really good idea.

Anyways, browsing that article, I ended up on another one about Debtorrent. This I’ve already read about and decided to keep an eye on for some time now… It happens that one line on that article called my attention (and I quote):

At the last major upgrade of Debian/Stable, all the routers at the major International fibreoptic backbone sites across the world redlined for a week. (emphasis added)

Well… that was a surprise. Of course I know of the size and importance of Debian, but I thought our systems were more efficient (or that our “release-generated-traffic” were not of that magnitude). I began googling for a pointer on that… Anything: a quote, an URL, a list message… anything that could make that claim verifiable: Guess what: I found none!

Meanwhile, on Slashdot, other people started following the same subject

So, is it true? Does anyone have any pointers to that? It seems quite unlikely to me… But hey! That’s just me: maybe the Internet is not that big 🙂

It’s done: I am a serious man now

Posted by – 03/12/2008

Some of you might be wondering where I’ve gone (my last post was on 2008-11-18), but I have a short explanation for that: I got married!

Yes… It was on November 22nd, in a non-religious ceremony among the majority of my close friends and family. Brenda and I are together for more than 6 years already, so it was about time! After the party we went on honey moon to Bariloche (Argentina), undoubtfully one of the most beautiful parts of the planet, for one week. We were back just Monday… and back to real life just now.

Pictures of the party and the trip will follow…