Eréseva – Screenshots!

Tirei um bocado de screenshots do Ereséva. Por exemplo…

Ereséva 18

As outras você vê na wiki. BTW, o Ereséva vive agora no Google Code.

Anúncios

Habemus VoIP!

Finalmente consegui fazer minha primeira chamada de VoIP com o Ereséva! Viva!
Mas antes de explicar o problema, deixe-me mostrar a arquitetura da coisa toda.

Tapioca-Ereséva
Álvares de Azevedo é uma cara conectado

Funciona assim: o Ereséva usa Tapioca-Python (que é um binding para Tapioca-GLib) para conectar às redes de IM e estabelecer sessões de VoIP; o framework Tapioca se comunica via D-Bus usando a especificação do Telepathy para solicitar serviços aos Connection Managers, que “traduzem” as solicitações recebidas para o protocolo relevante, e o mesmo no sentido oposto; para estabelecer uma sessão de VoIP entra em cena o Stream Engine, que usa GStreamer para montar um pipeline com os codecs necessários e controlar o fluxo de mídia entre a aplicação cliente e a rede.

Estava tentando voipar faz alguns dias, atormentando muitas pessoas no processo (ver lista dos voipadores no final), mas toda vez que um dos meus testadores atendia não se ouvia nenhum som, e a ligação caía. Analisando mais de perto, descobri que o Stream Engine estava dando erros de fluxo de dados, mas Birunko e Tester, do canal #tapioca-voip no Freenode, me mostraram que o problema estava no processo de build. Corrigido isso pude voipar em paz. Com uma ressalva: consegui ouvir, mas não ser ouvido. Pode ser um problema de configuração no microfone ou ainda um problema do Stream Engine. Mas vou deixar pra descobrir mais tarde pois o dever acadêmico chama!

Instalação

Para usar o Ereséva você precisa de instalar o que está descrito no Installation Guide do Tapioca, (incluindo o Tapioca-Python), então baixe:

svn co https://tapioca-voip.svn.sourceforge.net/svnroot/tapioca-voip/trunk/ereseva ereseva

e instale o Ereséva com aquele processo de build de sempre: ./autogen.sh, make, sudo make install, não esquecendo de instalar o pacote pylint (sudo apt-get install pylint).

O Ereséva ainda tem vários pequenos e irritantes bugs, então sinta-se a vontade pra bug-reportar os problemas que te incomodarem.

Heróicos VoIPeiros

Como disse antes, enchi o saco de várias pessoas com os testes, e a esses bravos e pacientes VoIPeiros eu presto homenagem. Principalmente porque o sofrimento deles está longe de acabar! MuaHAHAHa

Como prometido, vou agora torná-los famosos:

  • Chicoti
  • Davi “Mestre” Pires
  • David Aragão
  • Ian Moreira
  • Pedro Leite
  • Renata “Cachinhos” Garcia

Foi Renata a primeira com quem consegui falar usando o Ereséva (ela estava usando o GoogleTalk no Windows) e por isso exibo aqui o avatar simpsoniano que ela fez.

Avatar Renata Cachinhos

Update: obrigado a Renata Bezerra, por ter pacientemente ajudado a corrigir as altamente bugadas e incompletas (pelo lado do Tapioca-Python) instruções de instalação da wiki do tapioca!

Renatas ajudam! 🙂

Ereséva – codinome Azevedo (ex-Colligo)

No último episódio o Colligo havia sido citado positivamente no Ars Technica, mas logo após aconteceu de descobrirmos através de um comentário que o nome Colligo pertencia a uma empresa gold parceira da Microsoft. O humor do universo em que vivemos é mesmo insuperável, me pergunto se existirá algum universo chato onde só aconteceriam coisas sem graça.

Depois de muita procura Kenneth apareceu com o nome Ereséva, que em Tupi quer dizer algo como “o quê você quer dizer”. O problema de trademark estava acabado, mas não o de pronúncia, então durante uma reunião onde todos falaram o nome das formas mais variadas e criativas, Lauro (não o Moura, mas o Lauro sênior, que acha que blog é coisa de miguxo) saiu com Azevedo. Birunko (que é um miguxo que também não tem blog), acrescentou que numa linguagem há muito esquecida Azevedo significava “aquele que faz VoIP”. E assim foi escolhido o codinome totalmente não oficial do projeto.

AzeVoIP
Álvares de Azevedo, o garoto propaganda totalmente não oficial do Ereséva

Desde a última vez que falei do Colligo Ereséva várias coisas (além do nome) mudaram, e apesar de ter uns bugs menores vou deixá-los quietos e me concentrar em fazer o VoIP funcionar, porque tá todo mundo perguntando disso. 🙂

Agora o screenshot obrigatório pra mostrar o estado do codinome Azevedo:

Ereséva

Pra baixar e instalar (e testar e relatar bugs! :D) siga as instruções aqui, lembrando de trocar colligo por ereseva.

Colligo, Tapioca, Python

Depois de entender e explicar o que era Tapioca, meus chefes no INdT (devido a minha condição de estagiário, quase todos são meus chefes :P) me destacaram pra ajudar Kenneth (que faz um código muito bom e foi muito paciente com minha lentidão inicial) no desenvolvimento do Colligo, uma aplicação de IM que usa o muito recente tapioca-python, que são os bindings python para tapioca-glib.

Os bindings para python também são trabalho do Kenneth, e conforme usávamos seus recursos no Colligo os defeitos iam aparecendo e sendo corrigidos, assim tapioca-python está ficando em muito boa forma. Lembrem-se, a melhor forma de aprimorar algo é usando, que por indução nos leva até o dito popular “Panela velha é que faz comida boa”. Voltando ao assunto, até a próxima sexta releases são esperados, e pacotes .deb não devem estar nada distantes.

Acredito que ter bindings python para qualquer biblioteca de mais baixo nível é muito importante, porque remove muitas barreiras para os desenvolvedores interessados em testá-la. A importância que o pessoal do GStreamer e do D-Bus dá à suas versões em python é um exemplo disso.

Agora o screenshot do Colligo (esta versão que eu estava trabalhando nesse sábado tem algumas coisas fora de lugar, mas segunda eu dou um jeito):

Colligo

Ah! Tinha esquecido a fama e a fortuna: meu nome apareceu no Planet GNOME! Isso porque o blog do Kenneth é agregado lá, aliás nesse post dele vocês podem ver mais screenshots.

Código:

Para instalar o Colligo você vai precisar dos seguintes componentes:

Quando tudo estiver instalado entre no diretório do Colligo e execute

python setup.py build
sudo python setup.py install

Isso colocará o Colligo no menu Aplicações->Internet.

O tutorial de instalação do tapioca deve ajudar um bocado, inclusive indicando as dependências. E meu tutorial também pode esclarecer um pouquinho. (Jabá! 😉 ) Embora seja sobre a tapioca-glib pode servir para entender o tapioca-python, além de explicar alguns conceitos teóricos (e ter diagramas coloridos!).

[1] Gabble é um connection manager para redes Jabber, a versão indicada para download aqui é o release mais recente de quando esse post foi escrito, mas como ela está em intenso desenvolvimento, é bom dar uma checada nas últimas versões. Perceba que no tutorial de instalação indicado a versão usada é a 0.5.1, isso porque estava no Ubuntu Edgy e a versão da libdbus-glib-1-dev já não era suficiente da 0.5.2 em diante. Usuários do Feisty (ou aqueles que preferirem compilar tudo na mão) não devem ter esse problema.

Update: esqueci de mencionar que gabble passou a depender da telepathy-glib. O link já está na lista acima.

Update2: Graças a solotim no canal #tapioca-voip do Freenode percebi que o processo de instalação estava incompleto. Agora está legal. Brigado. 🙂

Tapioca

Conclui meu primeiro trabalho no INdT: um tutorial sobre como usar a Tapioca (mais especificamente tapioca-glib). Demorou mais do que devia, mas considerando que esse está concorrendo ao pior… não, mais complexo, mês da minha vida que me lembro (ou seja, dos últimos 2 anos), não foi um desempenho tão ruim (espero).

Uma idéia visual do que é Tapioca (mas o bom mesmo é ler o tutorial :).

Tapioca Diagram

E a aplicação exemplo é bem simpleszinha:

Tapioca Test Screenshot