Arquivo

Arquivo de março, 2009

Programando para PalmOS no Linux utilizando o Eclipse

31 de março de 2009

Quando comecei a escrever este post, me perguntei: -Alguém ainda programa para PalmOs??

Não sei, mas descrevo aqui como construir um ambiente de programação para PalmOS no Linux amd64, utilizando o Eclipse. Encarei isto como um desafio, visto que a Access não dispobilizou um PODS para Linux, preferindo “emular” o compilador no windows utilizando o Cygwin (que barbaridade!).

Uma particularidade desta configuração é o fato da versão do Linux ser para processadores amd64. Como não existe prc-tools para amd64, devemos configurar um ambiente “chroot” para abrigar a versão 32bits do prc-tools e compilar os projetos. O ambiente de desenvolvimento permanece 64 bits, com o Eclipse e o Guikachu (criação dos forms).

Primeiro passo: Instalar o Eclipse.

Eu estou usando o Ganymede, versão 3.4, último disponível na data que baixei. Instale como preferir, baixando do site ou via ferramenta de instalação de pacotes da sua distribuição. Baixando pelo site é possível escolher a versão já configurada para programação C/C++ (CDT). Se instalar pelo instalador de pacotes da distribuição, é necessário instalar o ambiente CDT através da opção Software Update no menu Help do Eclipse.

Segundo Passo: Instalar o Guikachu

O Guikachu (http://gergo.erdi.hu/projects/guikachu/) é um programa para criação de formulários (interface visual) das aplicações para PalmOS. Como não encontrei uma versão compilada da minha distribuição (Debian Lenny), baixei os fontes da versão 1.5.11, descompactei e compilei (./configure –prefix=/usr, make, make install). Nesta parte encontrei uma dificuldade que descrevi no post Erros de compilação ao utilizar o gcc-4.3.

Terceiro Passo: Configurar o ambiente chroot 32 bits

Como descrevi no início do post, não encontrei uma versão do prc-tools para 64bits, então tive que configurar um ambiente chroot 32bits para poder compilar os projetos. A solução para este problema eu encontrei no artigo Solution to prc-tools on AMD64 and other 64-bit machines. Não vou descrever todo o processo, mas coloco os comandos para criar o ambiente. Para quem já tem um ambiente chroot, pule direto para a instalação do prc-tools.

#apt-get install chroot schroot
#chroot /var/chroot/debian_32/

dentro do ambiente chroot:

#vi /etc/apt/sources.list

alterar a linha:

deb http://ftp.debian.org/debian/ sarge main

para

deb http://ftp.debian.org/debian/ sarge main contrib non-free

atualizar a fonte de pacotes

#apt-get update

instalar o prc-tools:

#apt-get install apt-file prc-tools pilrc

Poderão aparecer algumas mensagens relacionadas ao Locale. Para corrigir isto, edite o .bashrc do root, inserindo a linha:

export LC_ALL=C

Feito isto, podemos executar um comando 32bits a partir do ambiente 64bits, utilizando o comando schroot:

#schroot -c debian_32 -p /usr/bin/file /bin/bash

É assim que o projeto será compilado dentro do chroot a partir do Eclipse. Veremos como mais adiante, com a criação de um arquivo Makefile.

Eu precisei configurar o schroot para permitir que o meu usuário acessasse o ambiente chroot. Edite o arquivo /etc/schroot/schroot.conf e inclua as linhas:

[debian_32]
description=Debian sarge 32bits (stable)
location=/var/chroot/debian_32bit
priority=2
#groups=sbuild
users=gerson #coloque seu usuario aqui
root-users=gerson #coloque seu usuario aqui
aliases=stable

Quarto Passo: Instalar o PalmOS SDK do site da Access Developer Network

Baixe o SDK deste link (é necessário registrar-se). Baixe os seguintes arquivos:

- Garnet OS SDK (68K) R3 PRC tools Generic UNIX

- Garnet OS 68K API SDK (Fall 2004 Update). Este segundo deve ser copiado por cima do arquivo anterior (após descompactá-los, claro). Importante: este arquivo possui como final de linha <CR><LF>, causando problemas ao compilar. É necessário converter os arquivos para <LF>, com o seguinte comando:

#find . -type f -exec dos2unix {} \;

(O programa dos2unix faz parte do pacote sysutils;)

Coloque o SDK em uma pasta dentro do ambiente chroot. Ex.: /var/chroot/debian_32/var/PalmOS_SDK. Dê as permissões necessárias para que todos os usuários possam ler os arquivos:

#chmod o+r -R /var/chroot/debian_32/var/PalmOS_SDK

Entre no ambiente chroot:

chroot /dev/chroot/debian_32

prepare o ambiente de compilação:

#palmdev-prep /var/PalmOS_sdk/

saia do ambiente chroot:

#exit

Quinto Passo: Configurando o Eclipse

O workspace do eclipse deve ficar em uma pasta visível pelo chroot debian_32. No meu caso, o workspace está em /var/chroot/debian_32/home/gerson/workspace.

Como projeto exemplo, HelloDiesel, criei uma organização de pastas da seguinte maneira:

hellodiesel

A pasta includes aparece após configurar o projeto: Botão direito do mouse no nome do projeto -> Properties -> C/C++ General -> Paths and Symbols -> aba Includes -> botão Add -> inserir o caminho /var/chroot/debian_32bit/var/PalmOS_sdk/sdk-5r4/include, marcar todas as caixas de opção -> Ok -> Ok. Observe que tenho uma pasta sdk-5r4 abaixo da pasta palmOS_SDK. Ajuste na sua configuração.

Sexto passo: O arquivo Makefile

Esse é o cara que irá chamar o compilador dentro do chroot 32bits a partir do ambiente 64 bits. De barbada coloco aqui o Makefile inteiro:

SCHROOT = schroot -c debian_32 -d /home/gerson/workspace/HelloDiesel --
SCHROOT_BUILD = schroot -c debian_32 -d /home/gerson/workspace/HelloDiesel/build --
PROGNAME = AppMain
APPNAME = 'Hello Diesel'
RESOURCES = src/AppResources
APPID = GHDx
OBJS = build/$(PROGNAME).o
#FLAGS = -O2 -Wunused -Wall -palmos3.1
FLAGS = -O2 -Wunused -Wall

all: clean resources grc
$(SCHROOT) build-prc dist/$(PROGNAME).prc $(APPNAME) $(APPID) build/*.grc \
                                                    build/resources/*.bin

grc:
$(SCHROOT) m68k-palmos-gcc $(FLAGS) -c src/$(PROGNAME).c -o $(OBJS)
$(SCHROOT) m68k-palmos-gcc $(FLAGS) $(OBJS) -o build/$(PROGNAME)
$(SCHROOT_BUILD) m68k-palmos-obj-res $(PROGNAME)

resources: forms
pilrc -H src/AppResources.h rsc/$(PROGNAME).rcp build/resources/

forms:
guikachu2rcp rsc/$(PROGNAME).guikachu

clean:
rm -f build/*.[oa]
rm -f build/*.bin
rm -f build/*.grc
rm -f src/*~
rm -f build/$(PROGNAME)
rm -f dist/*
rm -f rsc/*.rcp
rm -f build/resources/*

Após compilar, o arquivo .prc deve aparecer na pasta DIST. Aí é só sincronizar e testar no Palm.

Opção:  Testar em emulador/simulador

Caso queira testar a aplicação em um emulador ou simulador, pode-se utilizar o POSE (Palm OS Emulator), ou então utilizar o PalmOS Simulator através do wine e utilizar a rom do TX disponível pela web.

Conclusão

Acho que com o fim anunciado do PalmOS, a Access não irá liberar uma versão do PODS para Linux. Além do mais, muitos programadores já estão correndo atrás de um SDK para o WebOS, novo sistema da Palm/Access.

Contudo, para aqueles que ainda desejam programar para o PalmOS (que acredito que levará um tempo para se “dissolver”) no Linux, fica aí este guia para construir um ambiente de programação.

Abraços e até a próxima.

Geral, Linux, Palm , , , ,

PODS (Palm OS Developer Suite) no Linux

28 de março de 2009

Quando eu quis começar a programar para PalmOS, me deparei com um problema: Todos os kits de desenvolvimento RAD (Rapid Aplication Development) para PalmOs eram para Windows. Não encontrei nenhum para Linux.

Quando eu baixei o PODS (Palm Os Developer Suite) do site da Access (atual desenvolvedora da Palm), vi que o mesmo era baseado no Eclipse para windows, e que utilizava as ferramentas de compilação dentro do Cygwin. A Access comunicava em seu site que um dia iria disponibilizar o PODS para Linux. Fiquei esperando e nada. E com o fim anunciado do PalmOs, acho que nem vão lançar mais.

Então eu pensei: Caramba! Se o Eclipse para Windows e Linux são o mesmo (com uma compilação própria para cada sistema, claro), e o PODS utiliza o Cygwin para rodar o compilador de .prc, então não deve ser muito difícil fazer um PODS para Linux.

O PODS não é nada mais que o prc-tools do Linux rodando no Cygwin, utilizando o Eclipse 3.0.1 com CDT com alguns wizards para criação de aplicações e o SDK para PalmOs também disponível no site da Access.

Para criar um “PODS” para Linux não é muito difícil. Deve-se ter o Eclipse instalado com CDT, baixar o PalmOS SDK do site da Access (deve-se estar registrado no Access Developer Netword) e instalar o prc-tools. Para criação das “telas”, recomendo utilizar o Guikachu, e instalar o pilrc da distribuição (como uso Debian – apt-get install pilrc) para compilar os “resources”.

Não lembro exatamente todos os passos para configurar esta ambiente, pois faz alguns meses que o preparei (quem mandou não anotar), mas como estou refazendo o ambiente novamente, em outro post faço um passo-a-passo para configurar um “PODS” no linux.

Um abraço e até o próximo

Geral , , , , ,

Erros de compilação ao utilizar o gcc-4.3

28 de março de 2009

Enquanto eu estava tentando compilar o aplicativo Guikachu para a criação de interface gráfica do PalmOS no Linux, me deparei com uma série de erros de compilação. Procurando no Google, descobri que os erros ocorriam por causa da versão 4.3 do gcc, que passou a exigir a inclusão da cláusula #include de algumas bibliotecas nos arquivos, exigência esta que não existia nas versões anteriores do gcc. Para facilitar, coloco aqui alguns erros de compilação e qual a cláusula #include que deve ser inserida no arquivo.

togglebutton.h:64: error: ISO C++ forbids declaration of ‘auto_ptr’ with no type

togglebutton.h:64: error: invalid use of ‘::’

togglebutton.h:64: error: expected ‘;’ before ‘<’ token

#include <memory>

 

error: ‘memcpy’ was not declared in this scope

#include <cstring>

 

error: ‘strerror’ was not declared in this scope

#include <string>

 

error: 'transform' is not a member of 'std'

#include <algorithm>

Geral, Palm , , ,

Trocar película do palm é estresse na certa!

20 de março de 2009

Tem coisa mais irritante que tentar colocar uma película no Palm e perceber que a sua película novinha vai se enchendo de pó antes de grudar na tela do Palm? Da onde saem aqueles “fios” invisíveis de pó?

Ontem fui trocar a película do meu Palm, e à medida que ia alinhando a dita no centro do Palm sem sobrepor as bordas deu pra perceber os malditos fios de pó grudando entre a película e a tela. Cheguei a lavar a película (tenho uma Clarivue que gruda com estática), mas é praticamente impossível não grudar alguns fiozinhos de pó.

Acho que da próxima vez vou pedir para um cirurgião colocar a película, numa sala de operação, ou em uma capela à vácuo (nem sei se existe).

Desejo boa sorte para quem for troca a próxima película de seu palm.

Ps.: Uma dica: creme hidratante é bom pra fazer a stylus escorregar bem pela tela. Passe uma camada fina na tela e espalhe bem com papel higiênico, removendo o excesso. (Vi esta dica na lista Palm-br)

Palm ,

Dia-a-dia com o Palm

17 de março de 2009

Trocando uma experiência com o Vladimir Campos (http://www.vladimircampos.com) sobre a utilização do Palm no dia-a-dia, surgiu a idéia de publicar este post, contando como eu utilizo o Palm.

Sou usuário de Palm a aproximadamente 1 ano. Nunca consegui utilizar uma agenda de papel, tentei diversas vezes mas não consegui. Comprei um Palm TX com o objetivo de me auxiliar no agendamento de tarefas e reuniões, basicamente como uma agenda eletrônica, mas depois que descobri o seu potencial, e apaixonado por tecnologia, só falta eu “fritar” ele pra ver qual é o gosto, heheh.

A utilização principal que faço dele é na empresa, como meu netbook, mas tenho aplicativos instalados para ser o parceiro para toda e qualquer hora.

Vou descrever um resumo de como eu o utilizo no dia-a-dia:

  • Pela manhã baixo os meus e-mails do Gmail via WiFi (sem precisar de computador), para ler durante o trajeto de casa para o trabalho (vou com transporte próprio que a empresa disponibiza – ônibus). A maioria prefere dormir durante a viagem, eu vou lendo os e-mails e ouvindo podcasts.
  • Na empresa sincronizo ele com o programa de workgroup (ferramenta corporativa): e-mail, agenda, tarefas, reuniões, etc… Programei também o Pocket Tunes para baixar atualizações de PodCasts. Deixo-o lado-a-lado do meu desktop
  • Atualizo o meu “jornal diário” no Plucker (publiquei um artigo sobre o assunto)
  • Volto pra casa lendo o meu “jornal diário” no plucker e ouvindo podcasts
  • Nas horas de lazer jogo um Poker online com o Palm, conectado na Internet via WiFi.

Vamos à minha experiência com digitação:

Não me acostumei com o Graffiti, muito menos com o teclado alfanumérico para digitar textos rápidos, principalmente em reuniões. Para isto, utilizo um teclado “thumb powered”, ou seja, um teclado onde é possível eu digitar com os polegares. Para isto eu utilizo o programa Mini-Kbd, que provê um teclado grande e digitável com os polegares. Eu posiciono o teclado na horizontal e digito como se estivesse segurando um JoyPad de videogame. Fica muito prático e rápido. Recentemente adquiri um teclado IR, e aí sim as anotações das reuniões ficam muito mais rápidas. Além do Mini-Kbd, utilizo o MyKbd, que melhora em muito o teclado alfanumérico padrão do PalmOS, oferecendo muito mais funções e muito mais fácil de digitar.

  • Para navegar nos arquivos utilizo o RescoExplorer
  • Para visualizar imagens, o RescoViewer;
  • Para backup, utilizo o RescoBackup+, que faz backup inclusive em servidor FTP via WiFi.
  • RoadLingua como dicionário multilingue
  • PowerDigi para calibrar a tela.
  • PowerSDHC para ler cartões SDHC > 4gb
  • Versamail para e-mails do Gmail e da empresa
  • Audio Gateway para ouvir música e podcasts no meu fone de ouvido bluetooth Motorola S9
  • HANDS, para guia de restaurantes, cinema, teatro e outras coisas culturais
  • CorePlayer, como player de mídia e navegador no YouTube
  • Documents TO GO, para visualizar arquivos e como ótimo leitor de PDF
  • EzRemote, como cliente de Terminal Services
  • GoogleMaps
  • Keyring, como chaveiro
  • IM+ for Skype. Estabelece ligação entre dois telefones utilizando a rede do Skype.
  • Mergic Ping, para testar conectividade
  • mVNC para controlar o micro remotamente via VNC
  • munduIM, como comunicador com MSN, ICQ e etc…
  • Power48, um emulador de HP48 GX/SX
  • SyncML, para sincronizar com o ZYB
  • TN3270, um terminal para acessar o mainframe da empresa
  • SNAP, para tirar “screenshots” da tela

… e alguns jogos para diversão.

Quanto ao Documents To Go, não tenho o costume de utilizá-lo, a não ser para leitura de documentos, tutoriais, e documentos PDF, mas nas poucas vezes que o utilizei, não encontrei dificuldades para criar documentos e planilhas, inclusive gráficos. As notas de reunião eu digito como “anexo” do agendamento, utilizando o ícone amarelo. Sou da filosofia KISS (Keep It Simple Stupid!), e procuro deixar o texto o mais simples possível, digitado em texto plano, com poucas formatações, mas com a informação necessária.

Também não posso dizer que sou do tipo “usuário comum”, pois sou usuário de Linux há aproximandamente 11 anos (5 como desktop definitivo). Minha monografia de graduação eu fiz no BROffice. Mesmo no ambiente corporativo, onde o desktop padrão é Windows XP, eu utilizo Linux, e deixo uma máquina virtual XP para o sincronismo com o workgroup da empresa e testes de aplicações.

Também sou programador, e já me arrisquei a fazer uns Hello Worlds para o Palm em SuperWaba e PODS.

Tenho vários programas para as diversas finalidades, e estou sempre à procura de softwares novos para ele. Até agora não me encantei com nenhuma plataforma nova de PDA’s e Smartphones. Adoro a telona do TX e a diversidade de programas.

Basicamente, é isso.

Palm