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/


Ferramentas para MatLab no Linux

26, Março 2009

Veja o artigo no meu novo blog.

Bem, mais um semestre começa no mestrado em Engenharia Elétrica na UnB. Esse semestre estou cursando as disciplinas de Sistemas Multiagentes (agentes inteligentes, agentes móveis, multi agentes, programação distribuída, inteligência artificial), Introdução a Sistemas Inteligentes (inteligência artificial, redes neurais, lógica fuzzy, algoritmos genéticos) e Processamento de Imagens.

Sem querer, todas as disciplinas envolvem álgebra relacional, que estou tendo que estudar novamente, pois vi isso a muito tempo na faculdade e não apliquei pra nada no meu curso de tecnologia (infelizmente). Por isso, o título do post, sobre MatLab. Inicialmente eu não estava querendo trabalhar com MatLab, eu queria implementar tudo em C ou Java. Até que um amigo me falou que algo que você faz em MatLab em segundos, você vai gastar muito mais tempo fazendo em outra linguagem. Depois disso, vi a necessidade e importância de se aprender MatLab, que no fim das contas não é nada difícil e agiliza muito o desenvolvimento dos trabalhos.

Para quem não sabe (como eu não sabia), o MatLab é ideal para trabalhar operações sobre matrizes, como somas, multiplicações, inversão e tudo o mais. Porém, esta é uma ferramenta proprietária e para Windows. No Linux temos duas ferramentas semelhantes: o Octave e o SciLab.

Inicialmente testei o octave, que baixei via apt-get. Ele é uma ferramenta de linha de comando (o MatLab nunca vi). O Octave tem uma interface gráfica chamada QtOctave (que usa a biblioteca gráfica Qt4). Acho que baixei ele também pelo apt-get. O SciLab possui uma interface gráfica simples, mas as principais tarefas nessas ferramentas são feitas a partir de comandos em uma tela semelhante a um terminal. No caso do SciLab, ele lhe permite executar comandos do sistema operacional de dentro dele. Os comandos linux que testei e funcionaram foram pws, cd e ls. Outros como rm não funcionaram. Ele permite também, depois que você digitou o inicio de algum comando, pressionar tab para exibir o recurso de autocompletar, válido também para completar nomes de arquivos e diretórios do sistema operacional.

Bem, a grande finalidade dessas ferramentas é facilitar a realização de operações com matrizes, como já citei. Para iniciar o Octave basta digitar num terminal a palavra octave e para o SciLab, digitar scilab. Testei inicialmente o Octave. Conseguir facilmente criar duas matrizes a e b (por exemplo, a = [1 2 3; 4 5 6], matriz de 2 linhas e 3 colunas), mas ao tentar multiplicar duas matrizes compatíveis (ou seja, a quantidade de linhas da segunda tem que ser igual a quantidade de colunas da primeira) não consegui. Tentei o operador padrão de multiplicação *, fazendo a*b, mas não funcionou. Tentei o help via linha de comando e nada. Obviamente se eu pegasse qualquer manual básico iria conseguir. Porém, parti logo para o SciLab pois não achei o octave intuitivo.

No SciLab, meu primeiro teste, a multiplicação de duas matrizes, funcionou de primeira. Assim, achei a ferramenta mais intuitiva, pois nunca tive contato com MatLab e sua linguagem, apenas instalei o programa e sem nenhuma consulta a manual algum, consegui fazer uma operação básica. Assim, recomendo o SciLab, que funciona em Windows, Linux e Mac.


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.


Editando PDF no Linux

18, Março 2009

Recentemente, assistindo as aulas do meu curso de mestrado, tive a idéia de procurar um editor de PDF para que eu pudesse adicionar os meus comentários durante as aulas, diretamente no arquivo PDF das apresentações disponibilizadas pelos professores. Como vou pra aula sempre com o notebook, posso fazer isso em tempo real enquanto o professor fala.
Assim, fui buscar por um editor de PDF para linux. Achei um chamado pdfedit, que pode ser baixado via apt-get no ubuntu. Instalei mas não consegui fazer nem o básico como queria, adicionar texto em um PDF. Até achei a ferramenta pra isso, mas o texto saia na vertical e não consegui mudar isso. Encontrei uma explicação para isso no manual de usuário da ferramenta, mas nenhuma solução de como resolver. Quando tentava usar uma opção de visualização das propriedades do texto adicionado, o programa dava pau e fechava.

Achei neste site outras opções. Vale a pena testar.

Encontrei também a ferramenta PDF X-Change Viewer. É uma ferramenta gratuita para Windows. Das ferramentas desktop para Windows que testei, esta foi a com a melhor usabilidade. Existe na página uma versão portable que não necessita de instalação, basta descompactar e usar. Consegui rodar no Ubuntu com o Wine instalado. Ele tem um recurso para digitar texto livremente no PDF e outro para criar uma caixa de texto que permite colocar textos em múltiplas linhas de forma fácil, em um único objeto. Estava tudo indo muito bem, até eu salvar o PDF, fechar e abrir novamente. Ao reabrir o PDF, os textos adicionados ficavam invisíveis. Só depois de clicar duas vezes no texto que ele aparecia em preto (e o fundo era branco mesmo), mas ao sair, o texto voltava pra branco. Outro problema foi quando tentei abrir o PDF alterado em leitores de PDF padrão como o Acrobat e o Document Viewer no Ubuntu, deu erro na abertura.

A ferramenta Okular (para KDE) promete fazer isso, mas no Ubuntu (que usa Gnome), pelo menos comigo, os menus não apareciam. Muito tempo depois descobri que o problema é que ele abria em tela cheia (pressionei ctrl+shift+f para voltar ao normal). O mesmo problema ocorria com o editor kate rodando no Gnome. Bem, depois de ter encontrado a barra de ferramentas para edição, tudo funcionou bem, mas o pdf alterado não abria mais em nenhum visualizador de pdf padrão (tentei no acrobat e no Document Viewer do Gnome), o que pra mim foi um grande ponto negativo.

Por fim, depois de muita busca, encontrei uma ferramenta que realmente funcionou. O Xournal, uma ferramenta para Gnome que permitiu realmente adicionar anotações em um PDF, porém, as alterações são salvas num arquivo separado, com extensão xoj, que abre com o Xournal, e assim, resolveu todos os problemas. Se depois você quiser gerar um novo PDF, ele tem uma opção para exportar o arquivo xoj para PDF. Um amigo instalou e não conseguiu adicionar notas em nenhum PDF. Eu estava editando os PDF’s normalmente, até que, do nada, ao reabrir o arquivo xoj gerado por ele, os comandos de edição não funcionavam. Apenas depois de reiniciar o x server com ctrl+alt+backspace voltou a funcionar. Mas o problema persistiu posteriormente. Encontrei uma possível solução nesse post aqui. Eu baixei o arquivo wacom-tools_0.7.9.8.orig.tar.gz (ou pode baixar aqui), descompactei, configurei, compilei e instalei, com os comandos abaixo executados num terminal (estando na pasta onde baixou o arquivo):
tar -zxvf wacom-tools_0.7.9.8.orig.tar.gz
cd wacom-tools-0.7.9.8/
./configure
make
sudo make install

Reiniciei o servidor x e voltou a funcionar, temporariamente. Acho que foi no post citado acima, que comentaram sobre uma opção XInput que deveria ser desabilitada, mas não tinha entendido como desabilitar isso. Fuçando no programa encontrei a bendita opção que no menu Options do Xournal. Desabilitei a opção “Use XInput” e instantaneamente consegui voltar a editar o PDF.

Achei o site www.pdfescape.com que possui uma aplicação Web para edição de PDF’s online, com menus e barras de ferramentas, bem legal, e funciona mesmo.


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.


Reinstalando o Grub a partir de um Live CD

2, Março 2009

Eu sempre utilizei sistemas Linux com o Lilo (Linux Loader) como gerenciador de boot. Depois que começei a usar o Ubuntu, que tem o grub como gerenciador de boot, não sabia como fazer para reinstalar o grub, necessário, por exemplo, quando se instala o Windows após ter instalado um Linux. Então, segue os passos abaixo a partir de um Live CD como o do Ubuntu:

1) Rode o live CD e deixe iniciar o sistema normalmente
2) Abra um terminal e execute os comandos a seguir
3) grub //para iniciar o aplicativo grub para configurar o gerenciador de boot
4) root (hd0,0) //indica que a imagem de boot está no hd 0 e na partição 0
5) setup (hd0) //instala o grub na mbr do hd 0
6) quit //sai do grub

Se desejar alterar as opcões de boot, basta alterar o
arquivo /boot/grub/menu.lst

Pronto, agora basta reiniciar o PC e o grub aparecerá na inicialização.

Referência: http://raulpereira.wordpress.com/2006/05/12/tutorial-re-instalando-o-grub/


ls, clear e outros comandos do Linux no Windows

2, Março 2009

Você tá tão acostumado com Linux que quando está num prompt de comando Windows, a toda digita ls ou clear, sendo que estes comandos só existem no Linux, sendo respectivamente dir e cls no Windows?

Pois bem, para ter esses comandos e qualquer outro do linux que tenha um similar on Windows é bem simples. Crie um arquivo .bat na pasta system32 do Windows com o nome de ls.bat, sendo que seu conteúdo deve ser apenas a palavra (comando) dir. Para o comando clear, crie um arquivo bat de nome clear.bat na mesma pasta, sendo que seu conteúdo deve ser a palavra (comando) cls.

Agora, a partir do prompt do Windows você pode digittar ls para executar um dir ou clear para executar um cls.

Bem esta é a forma mais lógica que você pode resolver isso, mas há outra maneira que não está na cara que é abrir o arquivo c:\AutoExec.bat no bloco de notes e adicionar aliases para os comandos desejados como mostrado abaixo:

@doskey n=notepad
@doskey ls=dir
@doskey clear=cls

Onde ao digitar n, no prompt de comando, executará o notepad, ls executará um dir e clear, um cls.

Para que entre em ação essas configurações, sem precisar reinicar o PC, basta no prompt de comando executar c:\AutoExec.bat

No Linux pode-se utilizar o mesmo recurso de aliases. Para que isso valha para todos os usuários, edite o arquivo /etc/bashrc e adicione os aliases. Podemos adicionar aliases dos comandos Windows, citados anteriormente, para que funcionem no Linux, como mostrado abaixo:

alias cls=”clear”
alias dir=”ls”


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


Google Calendar no Gnome

25, Outubro 2008

Acesse o artigo no meu novo blog

Os serviços do Google como Gmail e Google Calendar são excelentes. Um recurso muito útil é permitir acessar seus eventos do Google Calendar a partir do seu Desktop no Gnome. No Ubuntu, a aplicação Evolution, um cliente de email, rss e agenda já vem instalada por padrão. Para permitir que você possa acessar sua agenda a partir dele, e visualizar a partir do relógio no System Tray do Gnome, você pode pegar o link para o seu calendário e adicionar no Evolution. Assim, acesse sua agenda em calendar.google.com, em minhas agendas, cliquem em Configurações. Na aba agendas, clique em uma agenda (normalmente tem apenas uma agenda com seu nome). Mais embaixo você tem as opções Endereços da Agenda e Endereço privado. Clique no botão ICAL para pegar o link para uma das agendas. O primeira é para a sua agenda pública, que você pode não ter definido nenhuma nas configurações do Google. O segunda é para a sua agenda privada.

Para mais informações sobre o formato ICAL, clique no link Saiba Mais.

Agora, abra um terminal e digite:

$ /usr/lib/evolution-webcal/evolution-webcal SUA_URL_ICAL

Com isto você adiciona sua agenda do Google ao Evolution. Você pode fazer o mesmo a partir da interface do Evolution, clicando no botão Novo  e escolhendo a opção Calendário, bastando apenas escolher a opção Gmail no campo Tipo e informar seu login e depois a senha do Gmail, simples assim.

Veja imagem da agenda no Ubuntu.

Google Calendar no Gnome com Evolution Mail

Google Calendar no Gnome com Evolution Mail

Provavelmente o Mozilla Thunderbird e o Outlook/Outlook Express devem possuir este recurso.

Referência: http://altinkaya.org/wp/linux/google-calendar-gnome/