TrailRunner 3.0 Beta -- Improvements on the way

Over the last several months I was working on TrailRunner 3.0 and I am now feature complete for this release. I would be very happy if you could beta test the new release and send me feedback and bug reports.

A quick overview on that has changed:

WARNING
The TrailRunner document model was updated so if you modify your track network of routes you will not be able to open the document in older versions of TrailRunner. The Diary was not changed so there will be no problems with that.

Reworked UI and wording
To better meet the vocabulary being used in other applications, TrailRunner will no longer speak about workouts but activities.
Also activities, routes and your network of tracks are displayed in a better UI.

Pasted Graphic 1

All application modes now come with their own dedicated toolbar at the bottom end of the window making the UI much more clearer.

New Network of tracks editor
The new editor makes managing your network of tracks much easier. Drag selection and shift click extent selection lets you select more than one element
Operations on the action toolbar give you the toolset to effectively remove duplicate tracks and waypoints.
A list of modified tracks on the left helps you in finding out what was newly added to your network and may contain duplications to be merged into your network of tracks.

Pasted Graphic

WayPoint Perimeters
Pasted Graphic 7
As you know, tracks can be spitted by a waypoint nearby. In previous versions of TrailRunner the maximum distance from a way-point to track to make this happen was a fixed value of 10 meters.
In the new network of tracks editor, you now see this perimeter range around selected waypoints and you can drag the border to extend the range.
This is especially useful when you have locations where great chaos lies within because many routes start and end somewhere around this spot. Now you can just increase the perimeter of one representative for this location and TrailRunner will then be able to better consolidate new elements within this area.

Better OpenStreetMap Source
Changed the Background Map to CloudMade openStreetMap Fine Line with a contour overlay.
To effectively reload all map tiles, remove the Library/Caches/TrailRunner/GeoTiles/openstreetmap.org folder

[Updated] Improved Integration with EveryTrail
EveryTrailLogo
The community routes browser and importer now supports an improved API version for finding routes nearby on everytrail.com. Additionally TrailRunner hilights not only the location of routes nearby but also displays the tracks. So you now easily can view what courses the routes have.

Improved Diary
The diary window now displays a map and more statistical information on the selected activity.

Pasted Graphic 2

Simplified process of localization
Over the years, the number of strings requiring localization grew to a huge number. A new database based application now helps localizers manage and update the localizations with a very easy interface that also contains a ToDo list and automatic pre-translation provided by translate.google.com
If you would like to help out with an updated or even new localization, please contact me.

Pasted Graphic 10

QuickGuide for TrailRunner 3.0
The QuickGuide shows you all main features of the application. Great for testing everything out:
> QuickGuide

TrailRunner 3.0 Beta
Download the latest beta.
> Download

TrailRunner 2.1 -- Diary, Trim and iPhone

From my pont of view, TrailRunner 2.1 is done. The new release migrates your diary into a modern database format, fixes several bugs and adds compatibility to Mac OS X 10.6 Snow Leopard. Below the most important changes and extensions:

Diary
Bild 1
For better performance and for future extensions I rewrote the diary storage. Diaries are now based on a sport kind like running or biking.
So in future versions diaries can have different parameters for calculations.
TrailRunner 2.1 will already honor speed units like distance per hour or minutes per distance for sport kinds and also will calculate calories with a different formula.
This migration should solve many startup performance problems and will keep your mac responsive even with very large diaries.

Trimming workouts and Tracks
I do not know why I did not add this earlier but you can now trim workouts to be imported and routes within the map. Trimming means that everything from the edge up to and including the selection will be removed.

media_1251497130082


The screenshot shows a workout to be imported. You can either select something in the graph and then hit the backspace key or you open the track editor and use the Trim Selection command.
Update: You can now even remove data points in the middle of a track. There’s a new tutorial available explaining all operations available (Tutorials > Import and edit Tracks)

Improved Importers
TrailRunner 2.1 can now import Lap information from LoadMyTracks gpx files. Also GPX files are being loaded much faster due to an asynchronous decoding. Same goes for large tcx files you drag onto the TrailRunner application icon or main window.
The workout importer for non GPS workouts (the one that shows a list of routes below) now also displays a target diary selection menu.

Improved Map Speed
Though I highly recommend to remove any duplicate tracks within your map by following the instructions in the Mastering Track Merge tutorial, performance can be pretty bad with many long tracks on your map. In TrailRunner 2.1 I am testing a new display caching approach and have found results to be very good. Scrolling on my machine went up from 24fps to up to 60fps. But in most cases you should get 2x.

Other Improvements
Bild 2
Workout Graph: Added a Preferences option to change the interval resolution for the graph view. (TrailRunner > Preferences > Advanced)
General UI: Added a two finger zoom gesture for modern MacBook trackpads.
Local Route Editor: Added a drag over track to be included rerouting where there was only a drag to way-point rerouting before.
Streets Route Editor: Improved the OSM routing for very long route calculations.
Route Import: Added EveryTrail.com as an import source
Weblog publish: I removed the private and public comment approach as it caused some trouble in the past. When you publish your weblog, all notes will be published.
Export preserves timing: When you export tracks in TrailRunner, the original timing information will be preserved. This makes it posible to read data from your device and then later use an export for geo-tagging.
Route Filtering: The main window search field now filters for routes that contain the given search string in either their name or in the name of any way-point they come across. For example: say a route has a name of biking and goes over a waypoint called ruin, then a search term of ru will find this route. To filter on way-point names only, whith this example just enter wp:ru into the search field. To filter on route-names only, enter rte:ru into the search field.


Before you install TrailRunner 2.1
As TrailRunner uses a new diary store, you should better make a backup of your old.
All data in TrailRunner is being stored within the following folder on your Mac:

< yourhome >/Library/Application Support/TrailRunner/

You old diary was stored in RunLog.xml
When the new version starts up, it will migrate your old diary entries into the new diary. The new file is named ActivityStore.sqlite
A backup of your old diary will be copied to Archive/RunLog;4.xml for if there’s a problem with the migration. You can always move this file back and rename it to RunLog.xml
Please note that even after the migration was done, a much smaller RunLog.xml will stay in place, as it still contains some legacy data. So should you require to migrate back, just delete this file.
Important note: You can not use TrailRunner 2.0 at the same time as TrailRunner 2.1 as after the migration the diary will appear to be be empty on 2.0

Jump on the TrailRunner 2.1 track
TrailRunner 2.1 has its own app-cast so if you download the version below, you will be notified on updates.

> Download TrailRunner 2.1
> Import and Edit Tracks Tutorial
> Mastering Track Merge Tutorial

Please give feedback in case you have any trouble with the migration or other stuff.

Have fun,
- berbie.

TrailRunner 2.0 -- Have a mobile training Coach

scen5Pasted Graphic
TrailRunner 2.0 is now able to receive GPS recordings from yet another famous iPhone app called 321run written by Cyril Godefroy,

321Run is an iPhone coach for running. Learn to run more efficient, lose weight, increase your speed and get prepared for competitions. The app follows your runs with the GPS of your iPhone and records your run stats and tracks. You can then send these recordings over to TrailRunner.

The cool features of 321run are
- Record your workout
- Listen to how far you've gone and the duration of your training.
- Set yourself goals and reach them during your workout.
- Setup and follow Training plans

Find out more about 321run:
- Features
- Screenshots
- 321run in the AppStore

Tracks, Trails, Routes, Workouts, Laps, Courses, WTF

„TrailRunner is powerful but at the same time can be confusing for first time users.”
This is what I hear from many users. The typical learning curve goes from prejudices on how things should work to misunderstandings on what is actually going on to understanding and loving TrailRunner or bailing out for something else.

This all rotates around the difference between a track, workout, diary entry, route and the network of tracks.
And to be honest, I know this problem and I am constantly trying to make things easier to understand.
In fact TrailRunner is three applications in one. TrailRunner is
- an activity journal
- a mapping application to maintain a network of tracks
- a route planning application

So whenever you import something into TrailRunner, your intentions might go into either direction. And interestingly this even shifts over time — as new users with new devices stumble upon TrailRunner.

Probably the following "glossary" might help understanding what TrailRunner is about and what the application can do for you — whenever you drop data into it:

Track
A track is a list of geographic points with GPS coordinates. Within the real world a track describes the path from e.g. one sign-post of a hiking trail to the next. Each sign-post representing a crossing that connects to other tracks. Within the context of such a way or street, a track contains no timing or heartrate information. It's only where, not when and how.

Network of Tracks
One big feature in TrailRunner is to build and maintain a network of tracks. That is much like the lines of streets, roads, ways, trails and pathes printed on maps. The difference is that your network of tracks is your personal collection. A collection that represents the paths you actually run or cycle on, masking everything else out that you dislike or haven't strolled along yet.

Route
Within this network of tracks you have routes. A route is more or less a sequence of tracks. One important thing is that within a route, if you go back and forth a track, this track is part of the route twice. This is the most problematic part as simple GPS recordings never have this kind of conceptual differentiation. So I reject the idea that a route and a track should be the same thing. They could appear as — in the degenerate case where a route is being made of one track being used only once within the route. But that is just a special case — although typical in activity tracking applications that just import GPS data points and visualize them.

Workout
The biggest similarity between what others call a track is what I call in TrailRunner a workout. Garmin calls this an activity but I dislike this term as it fits better to being a diary entry. But back to the difference between tracks and workouts: If a recording contains data points with values like heart-rate, cadence and calories, it's not a track. It's a sequence of training session data-points and therefore it is a workout. For this reason TrailRunner generally distinguishes between routes and workouts. Routes belong to geographic data, workouts belong to performance over time or distance. A workout and a route can be connected to each other if they follow the same geographic course, but must not.
TrailRunner even offers features to merge a workout with the course of a route. That's important for training devices that can track distances but not GPS locations (e.g. the Apple Nike+ iPod Sensor)

Summary: The different faces of a track
To sum this all up, a track can have the following faces:
If the track contains a series of geographic points without timing information, then it's a track within your network of tracks.
If the track contains additional timing information, then it's the course of a route containing the single track or a sequence of tracks.
If the track contains timing information and values like heartrate, cadence etc., then it's a workout.

Import of a track
Whenever you import a track into TrailRunner, the importer shows you the course of the track in the map part of the main window. Then in the lower part of the importer you can decide if the workout face of the track should be attached to a new diary entry.
Then below that you have options to add a route to your list of routes that is based on the course face of the track. If you choose the option to import as one piece then one long track is added to your network of tracks along with a new route that contains this single track as it's course. If you choose any of the other options, TrailRunner will merge the track into the network of tracks, splitting the track into smaller tracks and joining all similar sub-tracks with existing tracks. One important fact now is that the resulting route will be made of a sequence of tracks that describe the almost identical course as the original recording but complementing your network of tracks.

But most importand of all is: your imported track can go a split way. If you choose the diary and the merge way, you actually have two items deriving from one source but being independent after the import:
- The workout became an immutable one-time recording being stored in the diary.
- The route and your extensions to your network of tracks are mutable.
On tracks you can apply operations like move, split and join affecting the routes that use these within their sequence.
On routes you can change the sequence of tracks they should follow during their course.
But in the end you can create and modify routes to match your plans and use an exported course as a basis for your orientation — while taking your gear out and burning some calories. What you then record can be imported as a new workout into TrailRunner.

Map
To complement this all, a map within TrailRunner is just pixels. A background image you see beneath your network of tracks and a hint for your orientation and manual creation of new tracks. The lines drawn on a map are not part of your network of tracks unless you add them by re-drawing them using the track-tool or by adding GPS recordings that followed the same geographic course of the "line".
The only difference comes with openStreetMap. The openStreetMap map source is a pixel representation of the openStreetMap track network. For this reason it is recommended that when you are using openStreetMap for routing (streets tab) you should also use the openStreetMap map source as your backound maps. As both then perfectly match.

Further Reading
After reading the above, please revisit the following tutorials.
> About TrailRunner feature slide-show
> Import and Edit Tracks Tutorial
> Mastering Track Merge Tutorial

If you still have questions, remarks or suggestions — I do listen! Just write me. Either here, in the forum, on twitter or classic email.

TrailRunner 1.9.1 - Laps and Diaries

TrailRunner 1.9.1 is out.
Please read below, what the new features the new release has to offer. Thanks for everyone sending me bug reports and feedback.

Diary Assignment
In previous versions of TrailRunner it was not possible to assign imported workouts to diaries (if you have added more than one diary in TrailRunner > Preferences > Personal)
Now when you import a workout, you can choose what diary the diary entry for the workout should go into.
(Please also note that in the main diary window you can add an optional column “Diary” to move entries between diaries )

Bild 1

Laps Import and display
TrailRunner now imports lap information from your Garmin fitness device. As a side effect, TrailRunner displays average and maximum values stored in the device and does not calculate these if values are available.

Pasted Graphic

Route Sharing
Another improvement now the handling for sharing routes. Press the routes button in the main windows control bar to display the route sharing download and upload panes. You now can easily switch between both modes. As this is a feature for sharing, please do not forget to upload your own favorites to GPSies.com

Pasted Graphic 1

TrailRunner 1.9 - Calling Trails

iphone
TrailRunner 1.9 is able to receive GPS recordings from yet another famous iPhone app called Trails written by Felix Lamouroux.

Trails is the only GPS iPhone app that allows you to record, import and export tracks onto your iPhone. Trails is an iTunes Staff Favorite!
Record maps while hiking, on bike trips or while jogging directly on your iPhone. Easily import tracks and follow hikes of others!

This is how it works:

Download Trails
viewSoftware
If you did not already, buy Trails in the app store and make some route recordings. Please note that the TrailRunner and Trails data exchange requires TrailRunner version 1.9 and Trails version 1.8. A domestic Airport/Wifi network is required to transfer data from the iPhone onto your Mac.

Transfer Routes
Pasted Graphic
Start TrailRunner. Notice the iPhone control button in the toolbar. Press the control button.

An importer pane will open on the left hand side of the main window. Follow the steps described there.

Pasted Graphic


On your iPhone, open Trails and select a recorded track. Press Export and press the TrailRunner button as depicted below.

primary_screenshot_en-uncroppedScreenshot 2009.01.12 03.34.28Screenshot 2009.01.18 23.10.26



TrailRunner and Trails will detect each other automagically and the selected track will be transfered to TrailRunner. The course of the track will be depicted immediately in TrailRunner.

Pasted Graphic 1


After the course was received in TrailRunner you’ll see the regular workout import pane you might already know. Choose any of the import options and probably add a diary entry for this recording.

As of this writing both application versions are not yet available to the public

> Trails Website

TrailRunner 1.9 - Work in Progress

I got a bit quiet on the support front because I am very busy with TrailRunner 1.9
Within this release I am re-factoring a lot of very old code to have a better migration path to 2.0 and later releases. Currently in the works:

Pasted Graphic
Pasted Graphic 1
Route and Network Merge -- This now really works. The most complex part of TrailRunner is now much faster and supports full undo for all operations.

Intermediate Tracks -- Already introduced in 1.8 the algorithm is now capable to merge tracks and calculate an intermediate path. This is being done weighted meaning the more often you run a track course and intermediate-merge the recordings, the more accurate the elevation profile will get over time.

Other parts I am working on are still hidden or unused so nothing to talk about at the moment.

In case you would like to become a beta tester, please subscribe to MacDeveloper.net (see post below) I’ll post a first release soon.

Happy Christmas and enjoy the holidays.
- berbie.

TrailRunner 1.8 - View your iPhone GPS Recordings

As developing a decent iPhone application is as much work as developing huge parts of TrailRunner I decided to not write my own iPhone app but to partner with one of the existing ones. This companion application you can buy in the App store is iTrail.
TrailRunner and iTrail require domestic Airport/Wifi network to transfer data from the iPhone onto your Mac.
This is how it works:

Buy iTrail
If you did not already, buy iTrail in the app store and make some route recordings.
> Website

Transfer Routes
Pasted Graphic
Start TrailRunner. You’ll notice a new icon in the toolbar if you are a first time user. Otherwise you can add this icon by control clicking the control bar and adding the new iPhone Icon.



An importer pane will open on the left hand side of the main window. Follow the steps described there.

Pasted Graphic

In the current version of iTrail (shown on the left), TrailRunner and iTrail Desktop are the same. This will change in the future to something like in the right screenshot (taken from a preview build of iTrail 1.7).

WifiExportNotConnected-fulliTrailConnectSreen



It is important to know that TrailRunner can not interpret the proprietary CSV file format of iTrail. The GPX file format is the one you should choose for the transfer.

Pasted Graphic 1

After the course was received in TrailRunner you’ll see the regular workout import pane you might already know. Choose any of the import options and probably add a diary entry for this recording.

TrailRunner 1.8 - Share your Routes

Completed the next level for the GPSies.com integration. After the download of routes from the GPSies community was recently introduced you now can share your routes with others in the GPSies community. Quick how to:

Open Route Sharing
You’ll find the new menu command under File > Share Routes.

Login
Get an account at GPSies.com and log in.
Bild 1

Choose Routes to Share
Select the routes you want to share by placing a check mark.
For each chosen route, enter your route description. If you’d like to reference to other websites for detail, TrailRunner will automatically detect hyperlinks.
Choose your descriptions wisely as they will help others follow the same course as you did (even with GPS devices this is still recommended)
Select a suitable activity for your suggestion and press upload.
Within the GPSies.com portal you can still refine your route descriptions at a later point. Have fun…

Bild 3

Download a Preview Build of TrailRunner with this feature

TrailRunner 1.8 - GPSies on the Run

Pasted Graphic 1
Long on the list and now available: The integration with GPSies.com, the outdoor route sharing portal, has been improved.
The route course lookup is accessible through either the File > Find Routes Nearby command or the new toolbar-icon. A new importer pane will open on the left displaying all routes available near the current map location. Browse, check and import what you like and use TrailRunners merge and planning options to individualize what others have already explored for you.

Pasted Graphic

TrailRunner 1.8 - Borderless Freedom

TrailRunner 1.8 is out !
Have fun and thanks for your feedback!

> Download


User Interface
Reworked the overall application design to match the current state of the art

Pasted Graphic 2
Map loading
Although already improved much in 1.7 this now should be it.

Track editor
Selections within the profile chart, route slider, track editor and route description window are now fully synchronized.

Pasted Graphic

Routes vs. Workouts

One of the biggest problems for TrailRunner newbies was, that the differences between a route and a workout / the main document and the diary wasn’t intuitively clear. So I now changed the interface to make both approaches available in the main window.

Pasted Graphic 3

Download here: http://trailrunnerx.com/download-beta-redirect.html

Import maps.google directions

Klaus from GPSies.com wrote another cool trick in his weblog. Meaning you can plan a route in maps.google.com and import the course into TrailRunner. To do so, just follow these steps:
Goto maps.google.com and use the Get Directions tab to plan your course.
Click the Link to this page link.
In the Paste link in email or IM edit field, append &output=kml to the end of the url (with no blank inbetween)

Bild 1

Copy the whole URL and paste it into the address bar. Press the return key.
A kml file will now download. Drag the maps.kml file onto TrailRunner or the main window. The course importer will open.

Pasted Graphic

How cool.