Showing posts with label running. Show all posts
Showing posts with label running. Show all posts

Wednesday, 23 November 2011

Running Visualisations

A heatmap of every run in November so far

Tonight I've been playing around with a python script which generates heatmaps from GPX files. The image above is a composite image of my last 10 runs in November (taken from my phone). It's fairly easy to see where I run most often.

What would be really cool would be if there was some way to visualise speed at a given point. The above image uses colour intensity to encode frequency of location; the more intense the colour, the more often I've run there. I'd find it interesting if it was possible to use colour to encode movement speed at a given point. For example, you could calculate the average speed across each run being visualised, and use different colours to represent above and below average, with varying saturation being used to represent how much above or below the average you were at that point.

Although I've seen a few existing methods of visualising speed (typically line charts), I've yet to see one which shows the relationship between speed and location. Endomondo and similar websites approach the issue by showing a map and separate chart for speed, and moving your mouse over either shows the corresponding location on map or speed on the chart. This exploratory method doesn't really give a good overview of the information.

This has the makings of a potential side project...

Tuesday, 6 September 2011

East vs West

The most noticeable difference, at least from an outdoors perspective, between where I've been staying on the east coast of Scotland and where I live on the west? It's so flat! I've smashed my personal bests for running (for distance, not speed) without my quadriceps even complaining. At home, however, it feels like I'm almost always going either up or downhill.

It's not that I dislike uphill running, no, it's the downhill stretches that get to me. I find uphill running to be relaxing; it strongly encourages good form and pace, else you'll burn out quickly. I like feeling "in the zone" as I (slowly) make my way up the hill. Downhill, though, just doesn't feel right. Maybe I'll get used to it as I run more.

In my 100 miles challenge, I've covered 70. That leaves me with 30 miles in 11 days; easy! A couple of bike rides in there and I'm set.

I'm going to have to organise my time better once university starts back. Last year I failed to make a compromise between work and fun and training and as such cut out the training completely. That has taken it's toll on my body and my fitness and I'm determined to not have that happen again. It won't be easy finding time to stay on top of studies as well as just chilling out and training, but I'll find a way.

It'll help my studies too. I love that feeling where your mind empties when you're out pushing yourself and you get a fresh perspective on things. One of my lecturers in first year said the best way to tackle programming problems was to sleep on it; just step away from the computer, go for a walk and think about it. You're dead right, Quintin.

Tuesday, 30 August 2011

Side projects and running

Yesterday I started work on a new Android project, to pass some time and to create something which I, and hopefully others, will find useful. It's going to be an editor for GPS files which allows you to create, edit and share routes, using gpx (GPS exchange format) files. With the help of a friend, it's already made good progress in to something really lacking in features and polish, but still usable.

The image above is a screenshot showing what's implemented so far. Routes can be drawn by tapping the touch-screen to add a new waypoint and altered by dragging-and-dropping existing waypoints. Something I may also implement, if I can find out an elegant way to do it, is selecting points by a long press and then giving the option to, say, delete it.

Right now we're working through a to-do list and turning this into something which may eventually end up on the Android Market. Just after starting it, though, I'll be putting it on hold for a few days while I go off to stay with family on the other side of the country. Hopefully the weather stays reasonable, because I'll be taking my hiking boots, running shoes and, maybe, bike. It'll be great to just chill out, explore new places, and unwind for a few days.

I'm almost halfway there in my 100 mile challenge; I've covered 47.5 miles so far in the past 13 days. I've been running so much lately that I'm not racking up the miles as fast as I would be if I were cycling. My running is certainly improving though; both in speed and endurance. My technique is beginning to get more consistent as well, which is helping me to pace myself.

Wednesday, 24 August 2011

C#, Surface and Running

Since my last post I've taken up running. I've bought new shoes, fought through some hiking blisters and learned that I need to smarten up and pace myself. Running never really appealed to me before, but that was largely because I sucked at it. I'd put on any pair of trainers and head out without any consideration for progression and form. It was really an oversight on my part, because I've had experience with weightlifting which taught me to put an emphasis on proper form and planned workouts aimed at making progress.

Hiking in North Cyprus
I wish I was there again...
I'm addressing all of these issues now though and for the past week have been starting to carefully build up a base of fitness. Walking and cycling over the past few weeks has improved my fitness but I still need to ease my body into this, especially as running is more of an "impact" sport than cycling. My running trainers are comfortable and provide just as much support as I need, being flat footed. I've not yet ran over 2 miles in a single session, instead focusing on starting small and building my distance up slowly. After this post is finished I'll be heading out for another, while there is a break in the rain.

I'm a week into my 100 mile challenge and I've already covered 29 miles. Feels good.

In my fourth year of university I'll be undertaking a solo project which accounts for a significant part of my degree. Although I'm still discussing and arranging the details, I'm most likely going to be working with Microsoft Surface, Microsoft's touch-screen tabletop computing system. It's a technology completely new to me and I'm excited about working with it.

Of course, that means learning to develop for it, which also requires me to learn C# (C sharp), a language I've got no experience with. So far I've had no difficulty with it; it's so alike to other languages that I've used before. It has some small details though which I really like.

One of these is "Properties". Properties provide easy encapsulation without the need to explicitly call accessor and mutator methods. Whereas encapsulation in Java requires that for a private variable foo you create and use methods getFoo and setFoo, C# allows you to do the following:

public class Nyan
{
    private int foo;

    public int Foo
    {
        get { return foo; }
        set { foo = value; }
    }
}

Although the definition is similar to that in Java, it means you can access foo through the Foo property, like so:

x = Nyan.Foo;
Nyan.Foo = 15;

It's a minor detail, but it's an idea I really like.