QtMobility Project, ou desenvolvendo para Symbian no Linux

Como nem só de Maemo Meego vive o homem, então é hora de iniciar projetos com Symbian.

O fato de sermos usuários Linux não nos afasta mais deste objetivo. O colega Lizardo, não muito feliz com a dependência do Janelas, adaptou com sucesso o famigerado GNUPOC para funcionar com o Qt 4.6.X, dando-nos assim um ambiente agradável de desenvolvimento Qt/Symbian no Linux.

Graças a ele temos qmake, QGraphicsView e QCoisas funcionando da mesma forma como funcionavam no desktop.

E as APIs específicas como GPS, sensores e rede?

A idéia do Qt everywhere inclui abstrair a API não tão bonita do symbian e maemo (e outros) para uma única API Qt.

Seguindo este princípio lançaram, dia 15/02, um pacote beta do Qt-Mobility Project, com classes Qt para sensores, GPS, contatos e etc.

A instalação é simples mas, para quem seguiu os passos do Lizardo, basta utilizar este script e passar o diretório onde o download do pacote foi feito:

qt-mobility-install.sh <directory>

*Observação: Não esqueça de setar as variáveis de ambiente $EPOCROOT e $PATH, de forma que o qmake utilizado seja o da instalação para S60

Velox Ultra – A Mentira da OI

Sou assinante do Oi conta total a 1 ano e desde a última quinta-feira (10/08/2009) estou tentando fazer um upgrade do meu velox para 2 MB, como está descrito no site.

De acordo com a atendente da Oi, isto era impossível (mesmo eu pagando o conta-total e não tendo o serviço que está no site).

Tentei então sair do Oi conta total e comprar tudo separado, com um link de 8MB em casa. Isto também era impossível.

Alguns colegas aqui do trabalho tentaram a mesma coisa, e para nenhum deles a mudança estava disponível.

Enfim, a OI ofereceu um produto que ela não disponibiliza para ninguém. Será que cabe uma reclamação na ANATEL?

Vai ser interessante ver o que vai acontecer quando aparecer uma companhia telefônica de verdade aqui no Nordeste.

Termino meu #mimimi com o excelênte vídeo de divulgação do Velox vs Orestes Quércia

Have you ever seen KDE mobil?

kde_mobil

I have! =)

PobreBand drum kit

Quando chegou o RockBand no trabalho criou-se uma necessidade que eu nunca tinha tido: Uma bateria.

Óbviamente eu não queria pagar uma grana altíssima numa bateria profissional ou no kit completo do rockband. A Solução? ProbreBand!!!

Na verdade é apenas o início da implementação do Ardrumo, que usa um Arduino e alguns piezos para gerar um sinal  que é enviado para o sequenciador MIDI do mac (Futuramente do Linux? talvez…). Segue abaixo o vídeo.


* Minha irmã sempre disse que eu não tinha ritmo =)

Fiquei meio preocupado com o tempo de resposta e sensibilidade. Mas o tempo de resposta é muito bom (no vídeo parece que tá atrasado, mas só parece), e a sensibilidade fica perfeita quando você prende os piezos em alguma superfície.

Enfim, voltar a brincar com embarcados tem sido divertido, ainda mais aprendendo eletrônica. Breve comento sobre outros brinquedos que estou fazendo (com motor de passo, e um servo que está pra chegar).

Agradecimentos a Jesus (não esse Jesus), que me incentivou a comprar o Arduino, e ao Alex, Thulio, Jeez e Larry que estão me dando dicas de eletrônica. E claro, ao cara do Ardrumo que me fez economizar uma grana. =)

[update: 29/03/2009] A idéia é montar uma estrutura maior de borracha para os sensores, e uma estrutura em PVC para a bateria. Se um dia eu conseguir ponho aqui. A idéia é algo parecido com isso:

Bateria Eletronica

RSS client and RSS DataProvider via QtDBus

Estou estudando DBus há alguns dias, e percebi que existem poucos exemplos do módulo QtDBus. Sendo assim, resolvi publicar um código de um pequeno protótipo que fiz.

Neste meu estudo produzi uma espécie de Data Provider, que é um serviço que fica rodando sobre o DBus e é responsável por receber atualizações de rss de um determinado blog. Os clientes não acessam diretamente o rss mas sim este provider, via canal DBus, e são notificados quando ocorre alguma atualização.

dbus-example

O conceito é simples, o código também. Não estou usando nada como QDBusAdaptors ou classes afins. Na verdade, o exemplo é válido pela didática pois exemplifica uma forma de enviar objetos “estranhos” via DBus.

O código pode ser obtido com:
git clone http://labs.danilocesar.com/git/qdbus-test.git

QT mudando para LGPL

Fonte: http://arstechnica.com/news.ars/post/20090114-nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.html

Eu já sabia

Ao menos uma das previsões de 2008 saiu =)

[UPDATE 14/01 09:40]

Porquê Java ainda é útil!

</joke>

Konsole resize fix

Quem usa placa nvidia e KDE4 deve estar tendo problemas para redimencionar a janela do konsole.

Navegando pelo techbase encontrei uma solução:

nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1

Fica aí a dica!

[]’s

WTF???

Agora pouco digitei um endereço errado e tive acesso à uma infeliz página:

WTF???

Outro teste:

OK, já passou da hora usar OpenDNS!

Vou-me embora para Pasárgada

Vou-me embora para Pasárgada
Lá sou amigo do Reis

Novidades:

1 – Estou formado em Ciência da Computação pela UFPR.

2 – Estou deixando Curitiba. Após 22 anos na saudosa Curitiba estou deixando-a, e indo para Recife-PE.

Só tenho o que agradecer a esta magnífica cidade, à minha família que fica por aqui, e aos meus colegas da Mandriva, com os quais pude aprender bastante.

E esperar que este novo desafio seja tão bom e gratificante quanto o antigo.

SU-8W com acentos no N800

Estive me perguntando porque os acentos não funcionam corretamente no SU 8W com o N800. Decidi investigar.

Quando eu estava tentando sincronizar o teclado com o N800 pude perceber que o SU 8W é um teclado pré-configurado, e com um pouco de paciência encontrei o arquivo de configuração do mesmo: /usr/share/X11/xkb/symbols/nokia_vndr/su-8w

Após 5 minutos estudando a sintaxe, em 10 minutos é possível perceber que falta alguma coisa: Não há, pelo menos, as configurações para português, espanhol e italiano. Agora eu entendo porque a configuração de layout português não funciona.

Já que não existe uma configuração para o idioma definido, utiliza-se o us_intl, certo? Mas a primeira linha da definição do us-intl tem um comentário preocupante: “I can’t belive! It’s not intl”. Parece que a tafera não será assim tão simples.

Para propósito de teste, não criei um novo mapa de teclado para pt_BR e sim editei o us_intl. O resultado ficou aceitável, e finalmente é possível ter um teclado funcional em português. O resultado você pode entrar aqui.(Não esqueça de fazer backup antes de sobrescrever)

Nos próximos dias ponho aqui a solução definitiva.

Resltado final:
SU 8W funcionando com acentos

PiTracker – tracker de imagem em QT4.

Seguindo a linha do “Liberando trabalhos da UFPR“, estou liberando o código do PiTracker.

Projeto da matéria de Processamento de Imagens, o objetivo era fazer um tracker de pessoas em um determinado vídeo.

Na especificação havia:

  • O vídeo será uma sequência de imagens PPM nomeada da forma <nome>_<seq>.ppm. Ou seja, se a sequência se chamar tracker, o primeiro arquivo será o tracker_00.ppm.
  • O vídeo será testado em dois casos: No primeiro haverá uma pessoa, no segundo duas.
  • As pessoas devem ser marcadas com cores diferentes, e a mesma cor para cada uma das pessoas.
  • Em nenhum momento as pessoas se cruzam.

Assim fica fácil! =)

Segue algumas screen shots:

Primeira pessoa aparecendo na imagem

Segunda pessoa aparecendo na imagem

Duas pessoas marcadas lado-a-lado

Como de costume, o código está no SVN em:

http://danilocesar.com/svn/pitracker/


E as imagens podem ser encontradas no site da matéria.

Liberando trabalhos da UFPR

Estou prestes a me formar, e lembrando-me de um convite do Arthur Furlan, decidi que estava na hora de liberar alguns trabalinhos legais que escrevi na faculdade.

Servidor/Cliente FTP usando raw socket.

Acho que este é o que será mais útil, principalmente aos meus colegas de Universidade.
Trabalho de redes1, a missão era implementar um cliente/servidor FTP baseado no Kermit utilizando raw sockets. Algumas pessoas fizeram utilizando UDP, mas ae fica sem graça né?! =)

Para controle de fluxo, foi implementado o pára-e-espera. Toda mensagem deve retornar um ack/nack. Obviamente, não há TCP nem IP, a “conexão” é feita sem endereçamento pelo cabo de rede. Os cabos devem ser ponto-a-ponto (até pode ser utilizado um hub, mas provavelmente ele mate todos os pacotes por serem inválidos).

Para detectar erros utilizo paridade-par (sux), e caso o cabo de rede seja removido e colocado depois de pouco tempo, o sistema deve continuar de onde parou. O arquivo final precisa ser consistente. Isto é muito complicado usando apenas paridade par, logo nas mensagens de fim de arquivo envio como dado o MD5, para garantir consistência.

O tamanho de cada arquivo nos pacotes está incorreto. Esta informação está sendo ignorada.

O resto está descrito no arquivo: Mensagens de atá 255 bytes, etc etc.

Como estava aprendendo GTK+ na época, fiz umas modificações para incluir uma interface gráfica. Ficou meio estranho pois incluí isto depois que o trabalho já estava pronto. De qualquer forma, para compilar esta versão, utilize o comando “make gui

No Unix, o pacote deve ser puxado com o comando:

svn co http://danilocesar.com/svn/redes1


Outro dia publico outros códigos.
[]‘ s

Danilo Cesar

É uma cilada Bino!

http://www.informationweek.com/news/software/linux/showArticle.jhtml?articleID=207…

Acho que vale a pena ler os comentários antes de ler o texto:

Yes, the fact that the writer thinks that MEPIS is based on Mandriva shows how little knowledge he has, and how poorly researched his paper is..

Dá um real ae, dá um real ae!

O que não se faz por uns trocados?