Though I leave already tomorrow I didn’t want leave Akademy without having tried out something new. As I’m paid to work on KDEPIM for work-work I would try out something completely different. A week or ten ago I started running again, definitely not at marathon level but I’m already quite happy that I’m able to drag myself out twice a week for a ~12 km run. As some additional motivation I bought myself a cheap hart beat monitor as well to be able to train more efficiently. As I said, a cheap one, so no fancy features such as GPS support. Recently I found this dutch website: measuring distance. It is a Google maps based web application which lets you enter routes and register training times for saved routes. This is quite a handy tool as it gives you at least some indication on how far and how fast you ran. But well, its web based, Google maps based….. and than we’re at Akademy where people keep bashing us that we should have full control over our data and that web-applications have these annoying side effects (Hi Frank and Sebas! Loved both of your talks!).
So what do we do?! Torsten "Marble" Rahn to the rescue. When I saw his talk I was thinking: neat, Marble is coming along very nicely. I definitely have to try that. So I started hacking on this a bit and with some help of the Marble developers I got a first quick and dirty proof of concept up and running. So here’s the idea: I want to build a custom application using the Marble widget. That’s what it is meant for right?! Who’s doing his training sessions on the moon anyway? Also, the behavior of operating it must be different, point-and-click track specification is the major use case.
After some fiddling and trying different approaches I now ended up with a custom Render plugin that is also installed as an event filter on the widget. It listens to mouse events and has some logic to allow drag and drop without resulting in unwanted lines. For you viewing pleasure:
As you can can see, we found a good bar before arriving at the university. If this looks somewhat familiar, yes there are two similar kind of functionalities but according to the experts one is completely outdated and should be removed, and the other is a buggy, disabled by default result from a GSoC project. I didn’t put the code online yet but that will eventually happen when I’ve implemented the basic ideas. Which are as follows:
- User can save and load tracks
- User can store training info for a specific track
- Simple training overview (i.e. distance, avg speed)
- Support for a simple profile (at least the application should remember where I live
Can’t wait until I release the code? Feel free to contact me if you want to work on this as well. All in all I’m quite satisfied with the result already, given that this was only like five hours of semi concentrated hacking. A bit longer term feature which I’d like to get in, is really good support for creating tracks in a convenient way. But that will need some additional reading and poking around I guess. Marble guys you rock! This thing is becoming really usable and I’m quite sure there are a multitude of applications that should have Marble in there (KAddressbook anybody?!). Over and out now, don’t want to miss my plain tomorrow.