Thursday, March 27, 2003

Got News?

I've been playing catchup with RSS technology recently. Whilst playing around with feed generation/consupmption I found NewsMonster aggregation tool.


It integrates into the Mozilla sidebar mechanism, when asked to aggregate channels it launches a Java process via Web-Start (although this is in the process of being replaced) to pull down article summaries etc. With current events its very useful to be able to get the sets of headlines from multiple news sites at once. It also allows content extraction down to PDA style devices although I've not spent time with this yet. The author also has some really cool plans for building a ratings/reputation system - its already a useful tool and the future looks very interesting.


Kevin Burton the author has posted an interesting article about the project on infoanarchy.

Sunday, March 23, 2003

Getting punch working on a Zaurus


As threatened earlier I'm writing up my experiences on how to get a midp applicaiton called Punch up and running

on the Zaurus. If you haven't seen Punch before its well worth a look, it is a time management application that simply allows you to "punch" in and out of projects. At the end of a week you can get elapsed hours on the projects you are working on. I find it extremely useful for sorting out my weekly timesheets, so getting it working on the Zaurus was a priority for me.


The Java development environment provided with the Zaurus is Personal Java as oppposed to MIDP, so the first step was to get a working MIDP environment

running. Step forward Me4Se a library that provides exactly what we need i.e. an environment capable of running Midlets under Personal Java.


The first was to test running punch on my laptop under that environment. the bad news was that I got instant errors to do with persisting information. After

having a trace through the source and a word with Richard it turned out that this is a bug in Me4Se which he has reported. There is a simple work-around of creating the
directories that will be needed at run-time which I will come back too later.


Now I had a working version on my laptop, it was time to get a package together that would run on the Zaurus. I don't pretend to fully understand the full

package mechanism for ipk files, but I've managed to get something working after doing the following steps.


You need a file structure like the following :



control

./home/

./home/QtPalmtop/

./home/QtPalmtop/apps/

./home/QtPalmtop/apps/Jeode/

./home/QtPalmtop/apps/Jeode/punch.desktop

./home/QtPalmtop/pics/

./home/QtPalmtop/pics/punch.png

./home/QtPalmtop/java/

./home/QtPalmtop/java/punch.jar

./home/QtPalmtop/java/me4se.zip

./home/QtPalmtop/bin/

./home/QtPalmtop/bin/punch.sh




The control file contains the following information :





Package: Punch

Installed-Size: 146k

Filename: ./punch-cvm_1.0_arm.ipk

Version: 1.0

Architecture: Arm

Maintainer: Paul Goulbourn

Description: Puch Timekeeping Application

Section: Java



This file simply details what the application itself is/who maintains it etc.


The punch.desktop file simply contains a description of how the application is presented in the Zaurus and how to launch it i.e.




[Desktop Entry]

Comment=Java Punch Application

Exec=punch.sh

con=punch.png

Type=Application

Name=Punch



The remaining file I needed to create was the shell script to launch the file punch.sh :




#!/bin/sh

$QPEDIR/bin/evm -Xprogress:2900 -XappName=$0 -cp \ /home/QtPalmtop/java/punch.jar:/home/QtPalmtop/java/me4se.zip \ -Drms.dir=/home/root/Documents/rms org.me4se.MIDletRunner \ net.sourceforge.punch.midp.PunchClockMIDLet


evm is the Java runtime environment for the Zaurus, and rms.dir is the location that the Me4Se environment uses to store data.


The work-around discussed above comes into play here - You need to manually create the directories that the midplet uses to do this ensure that

/home/root/Documents/rms/Sys and /home/root/Documents/Project exist on the target Zaurus.


Now all we need to do is turn this directory structure into our ipk :




[c:\documents and settings\pgoulbou\desktop\punch\ipk]tar cvf control.tar ./control

./control



[c:\documents and settings\pgoulbou\desktop\punch\ipk]dos2unix .\home\QTPalmtop\bin\punch.sh



[c:\documents and settings\pgoulbou\desktop\punch\ipk]tar cvf data.tar ./home

./home/

./home/QtPalmtop/

./home/QtPalmtop/apps/

./home/QtPalmtop/apps/Jeode/

./home/QtPalmtop/apps/Jeode/punch.desktop

./home/QtPalmtop/pics/

./home/QtPalmtop/pics/punch.png

./home/QtPalmtop/java/

./home/QtPalmtop/java/punch.jar

./home/QtPalmtop/java/me4se.zip

./home/QtPalmtop/bin/

./home/QtPalmtop/bin/punch.sh



[c:\documents and settings\pgoulbou\desktop\punch\ipk]gzip control.tar



[c:\documents and settings\pgoulbou\desktop\punch\ipk]gzip data.tar



[c:\documents and settings\pgoulbou\desktop\punch\ipk]tar cvf punch.tgz ./control.tar.gz

./control.tar.gz



[c:\documents and settings\pgoulbou\desktop\punch\ipk]tar cvf punch.tgz ./control.tar.gz ./data.tar.gz

./control.tar.gz

./data.tar.gz



[c:\documents and settings\pgoulbou\desktop\punch\ipk]gzip punch.tgz

[c:\documents and settings\pgoulbou\desktop\punch\ipk]move punch.tgz punch.tar

C:\Documents and Settings\pgoulbou\Desktop\punch\ipk\punch.tgz -> C:\Documents and Settings\pgoulbou\Desktop\punch\ipk\punch.tar

1 file moved



[c:\documents and settings\pgoulbou\desktop\punch\ipk]gzip punch.tar



[c:\documents and settings\pgoulbou\desktop\punch\ipk]move punch.tar.gz punch-cvm_1.0_arm.ipk

C:\Documents and Settings\pgoulbou\Desktop\punch\ipk\punch.tar.gz -> C:\Documents and Settings\pgoulbou\Desktop\punch\ipk\punch-cvm_1.0_arm.ipk

1 file moved


This leaves us with an ipk file which can be installed directly onto a Zaurus. The punch application lives under the Jeode tab and is launched from the punch icon.


At some point I'd like to spend some time extending the punch project to run in native mode under Personal Java, and I believe Richard is doing some work on the synchronisation of Punch with server side components.

Sunday, March 16, 2003

It Works - update






I lied - looks like blogger doesn't like opera for functions like delete!
It Works


I've been asked if the zaurus works with the blogger site. Well the proof is in the posting! Seriously though, it does work but the two thumb keyboard means that its a little painful.
Gadget Time


Zaurus PDA
My Palm V has finally become unusable - the internal rechargable battery seems to have a life of less than a day, so I've been hunting for a replacement. After a lot of research I've ended up getting a Sharp Zaurus 5500 along with a Socket low power CF card.


I spent a long time lusting after the Sony/Ericsson P800 but the lack of any 802.11b card or flat rate affordable GPRS bundles in the uk finally put me off. Sharp are releasing an improved version of the Zaurus (5600) in the Asian and US market at the end of March so I decided to pick up the current version at a bargin price.


My first impressions have been very good. Getting the wireless card working was trivial, and the supplied version of Opera is fine for casual browsing. I've found the ability to drop down to the linux shell to use familiar tools like ifconfig useful for getting home/office connectivity sorted out very helpful.


The built in software seems OK, maybe a little less intuative than the palm. However the inclusion of Personal Java gives me a development platform where I can "scratch any itch" with any missing functionality. I've already had some success getting the MIDP application Punch up and running for project time management. I'll write up how I created a deployable package to do this at a later date.