
As a geek, watching these data is enough to stimulate me to do some sports. :-)
dpkg-buildpackage -rfakeroot -sa -us -uc -i -I.git
#! /bin/sh set -e BASEDIR="$(mktemp -d)" cd "$BASEDIR" git clone --depth 1 -l "$HOME/git/maemo-mapper" cd maemo-mapper git checkout origin/fremantle dpkg-buildpackage -rfakeroot -sa -us -uc -i -I.git cd .. scp *.tar.gz *.diff.gz *.changes *.dsc mardy@drop.maemo.org:/var/www/extras-devel/incoming-builder/fremantle/
It's certainly not a script that you would find in a shell programming manual, but it does its job: first, it creates a temporary directory, then it clones the local git repository (which ensures that there won't be any unwanted files in the tree), then it selects the desired branch (if it's not the master branch), builds the package and uploads it to the builder. If any of these steps fail, the script terminates. Feel free to adapt it to your needs and use for your own releasing pleasure. :-)
As a side note, I've used it just now to release maemo-mapper 3.0+beta4, which doesn't include any remarkable features but comes with a redesign of the menus which are now drawn in the maemo5 style.
Maemo Mapper has a nice feature which is called "automatic rotation" and consists in automatically rotating the map so that the direction you are going to is always oriented toward the top of the screen. The direction information comes from the GPS device, and applications can access it from a liblocation structure.
Unfortunately, while this value is rather reliable when you are moving fast, it's totally pointless when you are not moving: and this can be easily seen in the alpha versions of Mapper, when the map starts spinning crazily as soon as you stop moving. One thing that I didn't notice is that besides giving the direction, liblocation also gives the estimated error: the epd field in the LocationGPSDeviceFix structure represents the error on the angle, as a value from 0 to 359. In my opinion it doesn't make much sense to have an error greater than 180 on an angle, so I assume that it must be divided by two.
In the image on the right, the epd is represented by 2 × β. Now, if v⃗0is the current direction the map is oriented towards, and v⃗1 is the new direction reported by the GPS with an error (uncertainty) of β, how do we decide if (and how much) we should rotate towards v⃗1?
The algorithm I've implemented goes like this:
I'll investigate this a bit more; this means that I'll have to keep a terminal window open with a view on the syslog, while using Mapper :-)
As probably many users of Mapper have noticed, sometimes while using this application the device gets stuck for a variable amount of seconds. Even though the situation is not easy to trigger, and I've seen it myself only two or three times out of several months of development, it's still a serious problem for a device which is meant to be used also as a phone.
Unfortunately, the problem doesn't lie in Mapper itself, and there is very little I can do to work around it. I had a chance to run it on the coming PR1.2 fremantle release, and it seems not to be happening there. Anyway, as you can see from this thread and from the related poll, the preferred decision is to remove Mapper from Extras.
On the other hand, for the majority of people (at least judging from the feedback Mapper lately received) the application is quite stable, so I wouldn't like to deprive users of possible updates. For this reason, I'm going to periodically post here links to application releases; of course if you have read the paragraph above you are also aware of the potential problems of these releases (occasional freezes of your device, when using the application). I'm linking them as .deb packages, so to discourage the unexperienced user from using them. :-)
So, here we go with maemo-mapper_3.0+beta2_armel.deb. Changelog (including changelog of the previous unreleased version, too):
maemo-mapper (3.0+beta2) unstable; urgency=low * Fix calculation of path distances, not to include breaks. * If a tile is missing, try to show a scaled image from another zoom level. * Fix a potential out-of-array memory access. -- Alberto Mardegan Sat, 13 Mar 2010 09:33:17 +0200 maemo-mapper (3.0+beta1) unstable; urgency=low * Add About dialog. * Add panel with track and route informations. * Remove obsolete menu items. * Fix "Error saving maps. Disk full?" message (see https://bugzilla.gnome.org/show_bug.cgi?id=612729). * Do not retry downloading of tiles if we already know it will fail. -- Alberto Mardegan Fri, 12 Mar 2010 21:56:48 +0200
Happy mapping! :-)