Carregando bibliotecas adicionais no SciLab, o “MatLab” OpenSource

3, Abril 2009

Acesse o artigo no meu novo blog.

Já tinha citado no post Ferramentas MatLab no Linux, sobre o programa SciLab, uma ferramenta
OpenSource, semelhante ao MatLab, para operações com matriz, com versões para Linux, Mac e Windows.
Eu baixei a mesma via apt-get e estou usando para trabalhar com processamento de imagens. Porém, ao tentar usar algumas funções para essa finalidade, descobri que ele não vem com bibliotecas padrões para isso.
Desta forma, precisei procurar no Google, até que encontrei as bibliotecas SIP ToolBox (SciLab Image Processing) e SIVP (SciLab Image and Video Processing) ToolBox. A diferença do SIVP pro SIP é que o primeiro permite fazer processamento também em arquivos de vídeo. Encontrei essas bibliotecas também a partir da página ToolBox Center do SciLab.

As duas ToolBox precisam da biblioteca OpenCV. Tentei baixar o arquivo opencv-linux lá no site oficial, mas o mesmo não existia, então tive que procurar no google por opencv-linux1.1, que encontrei nesse site.
Você precisará compilar o pacote e fazer todo o processo manual de instalação, assim, abra um terminal na pasta onde baixar o arquivo e digite os comandos abaixo:

# descompactar o arquivo
tar -zxvf opencv-1.1pre1.tar.gz

# configurar o OpenCV para compilação
# os parâmetros passados para o configure são:
# –enable-apps = compilar aplicações de exemplo
# –with-ffmpeg = habilitar suporte para manipulação de vídeos com a biblioteca ffmpeg, como explicado antes
# –without-quicktime = não usar bibliotecas do QuickTime, acredito que só seja é necessário se você não tiver o QuickTime
# alguns dos parâmetros não sei pra que são, fico devendo :)
# para ajudar digite ./configure –help
./configure –enable-apps –with-ffmpeg –with-gnu-ld –with-x –without-quicktime CXXFLAGS=-fno-strict-aliasing

# compilar
make

# instalar
sudo make install

Os parâmetros de instalação retirei desse site. Mas lá são informados mais passos que não foram necessários para mim.

A biblioteca SIVP tem disponível no Sypnatic do Ubuntu 8.10, mas ocorre um erro na instalação que não consegui resolver.
E pra priorar, nem deixou remover e causau um problemão, pois toda vez que tentava baixar um programa via apt-get, ele dava erro tentando terminar a instalação do SIPV. Tentei fazer o download a partir do SourceForge, mas o arquivo para a versão 0.5 não existia. Encontrei em um site, que não lembro mais, os fontes dessa versão, mas ao tentar compilar, ocorria também um erro. No repositório LauchPad tem a versão 0.5 para Ubuntu 9.04, mas funcionou no 8.10 sem problemas. Existem alguns pré-requisitos que são listados na página e que existem pacotes deb deles também, mas no meu caso, todos já estavam instalados no meu sistema. Se você desejar trabalhar com vídeo, precisará instalar antes a biblioteca ffmpeg, para manipulação desse tipo de arquivo. Você pode baixá-la via apt-get.

No caso dessa versão 0.5.0 do SIVP, a biblioteca é instalada em /usr/lib/sivp-0.5.0. Para carregar bibliotecas externas no SciLab você precisar carregar um arquivo .sce, normalmente de nome loader.sce. Para a biblioteca SIVP, você deve digitar o comando load no SciLab, seguido do nome do arquivo .sce a ser carregarado. Assim, digite exec(“/usr/lib/sivp-0.5.0/loader.sce”) que as funções estarão prontas para uso. Você encontra documentação das funções da biblioteca em http://sivp.sourceforge.net/doc.php.

O SIP, a outra biblioteca para processamento de imagens, na versão atual 0.4, não compila no SciLab 5.1, a versão atual, e não há um pacote deb para ela. Encontrei um pacote deb para a versão 0.3.99rc2 no repositório do Ubuntu, não tão menor que a versão 0.4 disponibilizada no site oficial. Já tendo instalado o OpenCV, como mostrado anteriormente, todos os outros pré-requisitos são encontrados na página para download do pacote deb do SIP, mostrada logo acima.

Esta versão é instalada no diretório /usr/lib/scilab/contrib/sip, que acredito ser o correto, diferente do diretório do SIVP. Assim, para carregar a biblioteca no SciLab, digite nele o comando exec(“/usr/lib/scilab/contrib/sip/loader.sce”). Você encontra documentação, inclusive em portugês, na página inicial do site oficial. Encontrei um tutorial nesse link.

Testei a biblioteca SIP e fiz algumas brincadeiras iniciais. O mais legal é que as funções tem a mesma assinatura das do MatLab (nome e parâmetros são iguais), assim, fica fácil pegar exercícios propostos para MatLab e executar no SciLab facilmente.

Tenho que descobrir ainda como fazer para carregar essas bibliotecas de forma automática. Se descobrir, postarei aqui.

Para finalizar, todos sabem que essas ferramentas OpenSouce não são tão completas e poderosas quanto o MatLab. Elas tem suas deficiências. Uma análise comparativa entre o SciLab e o MatLab pode ser vista aqui.


Definindo o GMail como cliente de email padrão no Linux Ubuntu

28, Março 2009

Veja o artigo no meu novo blog.

Todo mundo que tem Gmail adora ele, quem ainda não tem, não sabe o que tá perdendo. Assim, para aqueles que, como eu, abandonaram os clientes de email como Outlook Express e Mozilla Thunderbird há anos, é muito chato você clicar num link de email em uma página e abrir um programa cliente de email. No Windows você pode resolver isso instalando o GMail Notifier e tornar o GMail o cliente de email padrão.

Para quem usa alguma distribuição linux como o Ubuntu, não precisa nem se quer de um programa para isso, basta usar este script aqui e seguir os passos abaixo:

  1. Salve o arquivo no seu diretório home. Depois, no Ubuntu, vá no menu System >> Preferences >> Preferred Applications.
  2. No primeiro campo abaixo de Mail Reader escolha Custom
  3. No campo Command logo abaixo digite /home/nomeDoSeuUsuario/open_mailto.sh %s
    por exemplo /home/manoel/open_mailto.sh %s
    Preferred Applications no Ubuntu

    Preferred Applications no Ubuntu

    Agora pode fechar a janela
  4. Abra um terminal para adicionar permissão de execução no seu script, digitando o comando chmod u+x ~/open_mailto.sh

Pronto, agora, ao clicar em um link maito:, será aberta a página de envio de email do GMail no Firefox.

Os comandos no script sh são mostrados abaixo:

#!/bin/sh

firefox “https://mail.google.com/mail?view=cm&tf=0&to=
`echo $1 | sed ’s/mailto://’`”

O segundo comando não possui quebra, deve ser digitado numa linha só.

Observe que é chamado o firefox, na página de envio de email do gmail, passando o email recebido do mailto: como parâmetro para o script. Se você usar outro navegador, basta alterar nesse arquivo. Mais detalhes são dados dentro do arquivo disponibilizado acima.

Para mim, ao clicar num link maito:, ele sempre abre uma nova aba no firefox. Se não abrir, troque o comando
no script pelo exibido abaixo (digite numa única linha):
firefox -remote “openurl(https://mail.google.com/mail?view=cm&tf=0&to=`echo $1 | sed ’s/mailto://’`,new-tab)”

Fonte: http://www.howtogeek.com/howto/ubuntu/set-gmail-as-default-mail-client-in-ubuntu/


Juntando PDF no Linux

20, Março 2009

Você sabia que a Biblioteca Virtual da USP disponibiliza arquivos PDF do Telecurso 2000?

Pois é, mas o que isso tem a ver com juntar PDF no linux? Bem, é que eu passando por lá para baixar o curso de matemática do ensino médio para dar uma revisada em muitos conceitos, descobri que para cada capítulo havia um PDF separado e eu gostaria de ter isso num PDF só. Então aí vai a dica. No terminal de uma distribuição linux como o Ubuntu, digite o comando abaixo:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf file1.pdf file2.pdf

Veja o significado de cada parâmetro informado:

* gs — Nome do programa a ser executado, o Ghostscript
* -dBATCH — Fechar o Ghostscript ao terminar o processo
* -dNOPAUSE — Não pausar o processo solicitando interação do usuário
* -q — Não mostrar nenhuma mensagem durante o processo
* -sDEVICE=pdfwrite — Usar o gerador de PDF do Ghostscript para realizar o processo
* -sOutputFile=finished.pdf — Nome do arquivo final com o conteúdo de todos os outros PDF’s informados

Você pode usar caracteres curingas para juntar todos os PDF’s de um diretório para um único arquivo, como
mostrado no comando abaixo:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf *.pdf

Se você não tiver o Ghostscript instalado, baixe-o por apt-get, executando os comandos abaixo no terminal:

apt-get install gs
apt-get install pdftk

Referências: Decio Blog e Every Joe.


Plugins para GEdit

11, Março 2009

O GEdit permite a instalação de diversos plugins. Você pode baixar plugins a partir do site http://live.gnome.org/Gedit/Plugins.

A instalação dos plugins deve ser feita dentro do diretório ~/.gnome2/gedit/plugins. Se o sub diretório plugins não existir, crie-o.
Os plugins normalmente vem em arquivos .tar.gz, que devem ser descompactados na raiz da pasta plugins, sem um subdiretório.

Após isso, basta fechar o GEdit e abrir novamente, entrar no menu Edit >> Preferences e habilitar o plugin na aba Plugins.

No Synaptic do Ubuntu, acessado pelo menu do Gnome System >> Administration >> Synaptic Package Manager,
você pode digitar gedit plugins e instalar o pacote que baixa e instala um pacote com vários plugins interessantes, principalmente para desenvolvedores, como um terminal embutido na parte inferior da janela, acessível depois de habilitar o plugin e ir no menu View >> Bottom Pane do GEdit. Outro plugin interessante instalado nesse pacote é o Session Saver, que salva a sessão com os documentos atualmente abertos, para, ao fechar e reabrir o GEdit, os últimos documentos serem automaticamente abertos.


Impressora Virtual de PDF no Linux

4, Março 2009

No Ubuntu 8.10 (pelo menos o meu :) ), a impressora virtual de PDF não vem instalada. Mas para resolver isso é simples, basta no console digitar sudo apt-get install cups-pdf para baixar e instalar.

Pronto, agora você já pode imprimir PDF a partir de qualquer aplicação.


Rippar CD para MP3 com Sound Juicer no Linux

9, Dezembro 2008

O Sound Juicer é um aplicativo, que já vem instalado no Ubuntu, para ripar CDs de áudio. Porém, por questões legais, o mesmo não vem com suporte para rippar CDs para MP3, apenas para Ogg e outros formatos, que não rodarão na maioria dos aparelhos de som caseiros e automotivos.

Para habilitar o suporte para mp3, instale a biblioteca lame via apt-get com o comando:
$ sudo apt-get install liblame0

Depois instale o plugin do lame para o GStreamer, uma biblioteca usada para construção de componentes de gerenciamento de mídias como áudio e vídeo, utilizada pelo Sound Juicer:
$ sudo apt-get install gstreamer0.10-lame

Você pode verificar se existe uma versão mais recente executando o comando sudo apt-get install gstreamer* e vendo os resultados para escolher a versão mais atual para instalar, e depois digitar o comando novamente com a versão desejada.

Pronto, agora basta abrir o Sound Juicer (no terminal, digite sound-juicer &), ir no menu Edit >> Preferences, e no campo “Output format” escolher “CD Quality, MP3 (MP3 audio)”

Fonte: http://ubuntuforums.org/archive/index.php/t-957.html


Celular Sony Ericsson K800i no Linux Ubuntu – USB e Blutetooth + Controle Remoto

25, Outubro 2008

É, depois dessa, vi que no Linux tudo é possível. Nunca imaginei que meu celular Sony Ericsson K800i, que possui muitas funções legais como controle remoto para ser utilizado em aplicações de apresentação como Microsoft Office e Open Office, funcionaria no Linux.

Bem, vamos começar pelo básico. Você pode acessar o cartão de memória adicional e o interno do celular via Bluetooth. Se não me engano, no Ubuntu, os recursos de bluetooth já são instalados por padrão. Caso não esteja instalado, no terminal digite:

$ sudo apt-get install gnome-bluetooth bluez-utils bluez-gnome bluetooth

Existe um espaço entre as duas opções finais, o bluez-gnome e bluetooth. Devendo ser digitado tudo em uma mesma linha

Para iniciar o daemon bluetooth digite:
$ sudo /etc/init.d/bluetooth start

No meu caso ele já está iniciando automaticamente no boot.
Após iniciar o daemon, aparecerá o ícone no System Tray do Gnome automaticamente. No meu caso, como meu Bluetooth é USB, não é onboard na placa-mãe, somente após conectá-lo na USB é que aparece o ícone.

Após o término da instalação clique no menu do Gnome em Sistemas >> Preferências >> Bluetooth e modifique as configurações caso deseje. Algumas abas só aparecerão se o já houver algum dispositivo blutetooh ligado. O ícone do Blutetooth deve aparecer no System Tray do Gnome.

Habilite o bluetooth no menu do celular, em Definições >> Conectividade >> Bluetooth, habilitando e deixando vísivel o celular. Agora clique com o botão direito no ícone do bluetooth no System Tray do Gnome e mande localizar dispositivos. A senha padrão dos dispositivos Bluetooth é 1234, que será solicitado pra você digitar no celular. Após ser exibido o dispositivo, clique em Conectar e será aberto um diretório automaticamente para você acessar os dados no seu celular.

No Ubuntu você pode usar a aplicação gMobileMedia, que fica no menu Aplicações >> Acessórios do Gnome para acessar os dados no celular a partir da USB, mas usando o outro método é mais prático. Para testar, conecte o celular na USB, abra a aplicação e clique no botão Preferências. No campo porta você deve informar qual a porta para acesso o dispositivo, no caso, o Celular. Não lembro como descobri qual era a porta, mas basta ir escolhendo uma da lista e testar. A que estou usando é /dev/ttyACM0.

Após clicar em OK, clique no botão Conectar na janela principal. Você poderia imaginar que deveria clicar em Atualizar antes, imaginando que apareceria o nome do celular na lista, mas não é. Eu cometi o mesmo erro. Após conectar, o nome do celular é mostrado e você pode acessar os arquivos na memória interna ou no cartão de memória dele.

Você pode também acessar os arquivos no K800i, a partir da USB, sem precisar usar o gMobileMedia, porém, só quando o celular for conectado a USB no modo “Transferência de arquivos”, opção que aparece no celular, após você conectá-lo via USB. No Modo Telefone, que permite que você receba e faça ligações, esta técnica não funciona, apenas as anteriores. As informações deste tutorial obtive em neste link.
Estes passos só são necessários para Ubuntu 8.04 ou anterior. No Ubuntu 8.10, a memória interna e o cartão de memória já são automaticamente reconhecidos quando você conecta o celular via USB e o coloca em modo “Transferência de arquivos”. Bem, se você estiver usando uma versão do Ubuntu anterior a 8.10, então vamos lá. Você precisa criar uma regra para o udev (o deamon que detecta dispositivos plug and play, que substituiu o hot plug). Estas regras devem ser criadas no diretório /etc/udev/rules.d/. O nome dos arquivos deve seguir um padrão, iniciando com um número que categoriza as regras. Veja o arquivo README no diretório para mais detalhes. Eu criei um arquivo chamado 60-sony-ericsson-k800i.rules, onde o 60 indica uma regra para adicionar links simbólicos para dispositivos.

Então, adicione o conteúdo abaixo no arquivo criado para permitir acessar a memória interna do celular:

# sony ericsson k800i phone
SUBSYSTEMS==”usb”, ATTRS{manufacturer}==”Sony Ericsson”, ATTRS{idVendor}==”0fce” \
ATTRS{idProduct}==”e039″, KERNEL==”sd*”, SYMLINK+=”sonye%n”, GROUP=”users”

A opção GROUP=”users” é pra definir que os usuários do grupo users poderão montar o dispositivo.

Para acessar o SD Card do celular adicione o conteúdo a seguir no arquivo criado:

#k800i sd card
SUBSYSTEMS==”usb”, ATTRS{manufacturer}==”Sony Ericsson” \
ATTRS{idVendor}==”0fce”, ATTRS{idProduct}==”e039″, ATTR{size}==”3995273″ \
KERNEL==”sd*1″, SYMLINK+=”sonye-sd%n”, GROUP=”users” OPTIONS=”last_rule”

SUBSYSTEMS==”usb”, ATTRS{manufacturer}==”Sony Ericsson” \
ATTRS{idVendor}==”0fce”, ATTRS{idProduct}==”e039″ \
KERNEL==”sd*1″, SYMLINK+=”sonye-int%n”, GROUP=”users”

O valor 3995273 na terceira linha indica a capacidade de memória do cartão. Este é o valor para um cartão de 2GB, o máximo suportado por este celular. Não sei qual ligação tem esse valor com os 2GB, não faz sentido pra mim. Se você usa um cartão de capacidade diferente, veja este link. Após alterar ou criar novos arquivos no diretório do udev, você deve reiniciá-lo com o comando a seguir:

$ sudo /etc/init.d/udev restart

Depois disso, basta conectar o celular na USB, escolher nele o Modo de Transferência de Arquivos e pronto, será aberto um diretório para você navegar nos arquivos da memória interna e do cartão de memória do celular, além de serem adicionados ícones para eles no Desktop. Deve ser aberto automaticamente a aplicação F-Spot, para gerenciar as fotos no celular. Eu não gostei, ainda mais que ela dava uns erros ao abrir. Aí removi ela. Você pode fazer isso pelo menu Aplicações >> Adicionar/Remover  do Gnome, ou deve funcionar como sudo apt-get remove f-spot

E agora, o mais interessante: permitir usar os recursos de controle remoto do celular Sony Ericsson K800i no Linux, via Bluetooth. Estas informações obtive a partir deste link também. Com este tutorial, você poderá usar estes recursos de controle remoto bluetooth do seu K800i. Logo, o bluetooth deve ser configurado e conectado como mostrei anteriormente.

Primeiro você precisa conectar no celular com este comando:

$ rfcomm connect 0 aa:bb:cc:dd:ee:ff

onde aa:bb:cc:dd:ee:ff é o MAC do seu celular. Para descobrir qual é o do seu faça:

$ hcitool scan

Após conectar com o comando rfcomm, o celular pedirá permissão de acesso e talvez a senha
(padrão é 1234). Conceda a permissão. Em seguida, o celular exibe a tela "Controle Remoto"
onde você pode escolher, por exemplo a opção Presenter, para controlar uma apresentação
do Open Office, escolher MediaPlayer para controlar um player que esteja rodando, ou Desktop
para usar o celular como mouse. Eu não testei o MediaPlayer, mas os outros recursos funcionaram
perfeitamente. Assim, você usa os botões do celular para controlar o computador
(os botões laterais também funcionam).

Este celular funciona como modem 3g e você pode usufruir deste recurso também.
Mas não testei isso. Você pode testar lendo o post original que citei, neste link.

Testei o recurso Presenter e funcionou muito bem, mas se a bateria do celular tiver
com carga baixa, você vai precisar estar mais próximo do computador para conseguir controlar.