Hi ,
It looks like you're using an ad blocker. I understand. No-one likes ads.

But our site costs money to operate, and I need to eat.

Please consider enabling ads for our website, or making a voluntary donation. If you donate, I can turn off the ads for you for a period of time. Average donations are about £3.50 per month, so a tenner would give you three months ad free.

Here's a link to our donation info.

Thanks,
Ian Williams aka Fetch
29 Mar 2019

Fix It Friday: An Endless Mission

4:09pm | 551 views | 20 Comments
Here we go again*.

This week, you probably won't have seen many visible site changes, but I've still been beavering away. Every now and then, it's necessary to have a bit of a 'new features taper' week, where I take a step back, and look at stuff like site performance. But there are still some other things to draw to your attention.

Route Matching
i) Initially, I'd hidden all the rows in the 'list of Fetchies who have done this route' where those Fetchies have decided not to share their training detail. And it took a big chunk of fun out. So instead I've reinstated those missing rows with 'anonymous' entries to give you more data to look at, and a bigger ladder to climb.

ii) A few people have noticed that routes match if you do them in reverse. And here's a challenge. Each training entry goes through a process that turns its route into a series of simple parameters that represent it. These parameters include a 'bounding box' that encloses the whole route; some other numbers that represent the distribution of points within that box; and for good measure, a representation of the start point of the route.

What I need, is a way of boiling 'direction' down into something simple (ideally a number). If you go out your front door and run in a big loop, 'direction' could be as simple as looking at the relative bearing between your start point and the first mile marker. But what if you were at Edinburgh parkrun, which is shaped like a frying pan. Contestants run down the handle of the pan, round the pan, and back up the handle. But how would the aforementioned 'bearing' method know if you went the wrong way round the pan? Answers on a postcard please :-) I've got some ideas brewing, but mass contributions are always welcome and helpful to crystallise things.

Notifications
I've tidied up the height of these, and fixed the bug where you clear all the categories individually. The Clear button was wrapping onto several lines too, until I sorted it. Doh!

Race Listings
Our listings now incorporate what can only be described as a f**k-tonne of extra stuff, with loads of extra overseas races. Go see. fetcheveryone.com/race.php

Optimisation
Yep, I've been spending some time optimising database queries, which might sound (a) boring, or (b) like a foreign language. Thankfully, I don't find it (a) or (b). Feel free to tune out for this bit, but I'll try to explain some of the things that crop up.

You: can I see this month's training please
Fetch Server: Let me go check. Hey, Fetch Database...
Fetch Database: *mmmff* what? I was just eating a doughnut.
Fetch Server: Ffs. This is important. Is chunkylover53 a Fetchie?
Fetch Database: *rummage* Why yes! Cool name. Simpsons reference, I reckon.
Fetch Server: Whatevs. Can I get hold of their training please?
Fetch Database: *rummage* Here you go.
Fetch Server: Ta. Bit quicker next time please.
Fetch Database: I'm doing my best. You'll be back in a minute, and you'll have forgotten all of this. Life's too short. Have a doughnut.

There are database checks that happen for *every* page e.g. 'is this request from a valid user?'; and others that are specific to particular pages e.g. 'get a list of training for user 123'.

Every day, the server collects stats about database queries that take longer than a threshold time (something like 1 second) to execute. And I also capture stats for each page visited, to see how long that page is taking to get put together.

I run a tool that analyses these bits of data, so I can see the biggest offenders. Some pages really need to be super fast - like our home page. It's a poor advert for your site if your home page chugs - plus it gets a lot of traffic. Other pages are acceptably slower e.g. stuff that summarises lots of data from your log, but it's still nice to make sure that they are going as quick as possible.

Like I always say, it's like having a giant Sudoku or crossword puzzle to solve.

Each day throughout the week, I pick some of the worst-performing-and-most-important pages from the reports, and focus my attentions on them. Here are some of the things I look out for (I've tried to make this readable, sorry if it isn't):

Indexing
Indexes in databases are very similar to indexes in books. They're a quick way to find out where to find a chunk of information. Pretty much every table has a default index. For users, it's your user ID, which is really handy if the code needs to find a particular user. But if, say, there was a page that shows the fastest times for users over 50 (which there is, yay!), then our user ID index would be no use. It would be useful, in this case to have a 'date of birth' index, to quickly find everyone born before a certain date. So sometimes pages run slowly because a database table somewhere needs more useful indexes. It's not quite so clear cut though. If a table gets a lot of updates e.g. a table that records the last login time of all users, then each update could require the indexes to be remade, which can slow things down.

Data Typing
There are different kinds of data that can be stored in a database e.g. integers (i.e. whole numbers, for those of you that don't remember that far back at school), decimals, chunks of text e.g. forum posts, dates, times, true/false values etc. Generally speaking, the more compact you can make your database tables, the quicker they can be searched. It is not always for readability purposes that I sometimes impose character limits on things like your Member of the Month nominations (two days left to get your March nominations in). A fixed character limit also means that the database field that holds that information can also be a fixed 'width'. And in turn, if each row of your database table is a fixed width, then it becomes mathematically much simpler to say "give me rows 111-120 of that table please", because it's just a case of multiplying 111 by the row 'width' to find the starting point.

Caching
A good database system will store the results of popular database queries in a quickly-retrievable way, so that the results can be returned with minimum overheads. Like everything, there's always a trade-off. There's only so much space available for this, and newer queries will push old ones out of that space. Minimising the amount of data that your queries request *should* help, but there are also circumstances where you don't even need to bother the database at all. A league table (e.g. the Fetchpoint top 10) is a good example. It's produced by pulling together data from various tables, combining the activities of the users, with the scores for each activity, and the nicknames of the users - each piece of information coming from different places. But in this example, the top 10 doesn't change *too* often, so one approach is to pull together the data for the table, and store *that* in a text file somewhere. If the text file gets too old, fine, go back to the database to freshen up. Or if something significant happens, like someone gets the Higgs Boson, delete the text file and rebuild. But for the majority of views, using cached data is enough to give you as a user a good experience. And that's what it's all about :-)

Discovering a way to speed something up, trim something down, or produce less errors is really rewarding :-) It is sometimes a bit of a lottery, and often has unexpected side-effects - but it's every bit as much fun for me as getting a PB. And it seems as though there's an endless supply of opportunities :-)

Have a great weekend. Mathematicians and ponderers - don't forget to have a think about my 'directional' question above.

*Brought to you by No Geography by The Chemical Brothers. It's not released 'til April 12th, and if we're not all working down t'pit for our Bullingdon Masters by then, I'll be looking forward to listening to the whole thing. You can get four pre-release tracks off of iTunes to keep you going until then.
Click here to suggest this blog for today's highlights.

Comments

  • I find all this stuff fascinating. I think you are very clever.
    Diogenes
    4:14pm, 29th Mar 2019
  • I have no idea why my comment is in italics, I didn't add any formatting.
    Diogenes
    4:15pm, 29th Mar 2019
  • And now it's not and I look even more stupid than normal :-)
    Diogenes
    4:15pm, 29th Mar 2019
  • That was because I'd forgotten to close the italics on my Chemical Brothers. See, I'm not that clever. Imposter syndrome all the way.
    fetcheveryone
    4:19pm, 29th Mar 2019
  • Elevation? Doesn't help on Edinburgh parkrun particularly, because the pan of which is a pan handle is a pancake pan and as such, flat! Time consuming, but you could work out direction by seeing the relative turns of each segment - default segment size of 0.0625 mile (as it shows in my training entries) tend to have a fairly definite direction), then the next one is the same, or to the left or to the right. That gives you a "fingerprint" 0, 1, -2, -1, 0, 3 etc and the reverse would look different.

    Anyhoo, top DB optimization there. :-) G
    HappyG(rrr)
    4:19pm, 29th Mar 2019
  • And thanks for happg.txt by the way! I found what I was looking for. It was in 2010! :-) G
    HappyG(rrr)
    4:20pm, 29th Mar 2019
  • Interesting about the reverse route thing. I was surprised when I got the following matches - of the four here, two are the reverse of 1, but the third is quite different. fetcheveryone.com/training-routebest.php?lid=16060512&miles=11.04&category=R If you've not got any direction related info in the algorithm then reverses will always match, which is fair enough - but I couldn't quite see how my fetcheveryone.com/t-9601428 matched fetcheveryone.com/t-16060512 as the bounding boxes should have fairly different profiles on the northern edge at least.
    larkim
    4:23pm, 29th Mar 2019
  • You lost me ages ago but I still think it’s all amazing .....
    runnerbean
    4:45pm, 29th Mar 2019
  • A lot of what you’ve said makes absolutely no sense to me whatsoever, but thank you for doing it anyway 🙂
    Eynsham Red
    4:52pm, 29th Mar 2019
  • All looks great to me. The blog title made me think of Whitesnake though!
    Sigh
    5:05pm, 29th Mar 2019
  • Edit: not the title, the first line.
    Sigh
    5:05pm, 29th Mar 2019
  • The route direction thing, does the data include the time of day the point was run though?
    Fragile Do Not Bend
    6:23pm, 29th Mar 2019
  • I loved this blog :-)
    TeeBee
    6:24pm, 29th Mar 2019
  • Me too :)
    LindsD
    7:53pm, 29th Mar 2019
  • Fab explanation of how the server retrieves data. Can you come and teach our IT people how to explain stuff to us?
    Jubear
    8:38pm, 29th Mar 2019
  • Gut response: sum all changes of direction in the first half of the run? (or maybe to reduce load, every x'th coord in the first half)? I'll think it through when I'm more awake tomorrow and probably decide this is a silly idea.
    flanker
    12:56am, 30th Mar 2019
  • @flanker - that’s what’s been going round in my head :-) Haven’t tried it yet. Maybe not first half, but all, to account for a backwards loop in second half.
    fetcheveryone
    7:43am, 30th Mar 2019
  • Not sure I see the point of doing more than half. If it’s an out and back on the same route there aren’t 2 ways round. I can’t think of any scenario where it’s needed (and maybe some where it’d be detrimental). I’m. Just drawing lots of different shaped routes to test this...
    flanker
    3:42pm, 30th Mar 2019
  • You’d need to start with an initial value of the initial direction otherwise you’ll have issues where you have 180 deg rotational symmetry around a mid point.

    And given the number of changes of direction on long tracks you’d need to be careful of overflow errors. Maybe you need to divide the total number of points by a fixed number (1000, 100000?) to get ‘x’ and then use every x’th point for your calculation (and hope the degree of error introduced isn’t significant).

    Still think you only need to do to half way....
    flanker
    4:04pm, 30th Mar 2019
  • I like the separate clear notification options. For instance, for this blog. I’ll leave that there until I’m ready to read it, but clear that I have lost control of somewhere.
    Josh_hand
    8:27pm, 31st Mar 2019

Keep me in the loop!

27 Mar 2019

Naming and faming :-)

7:30am | 387 views | 7 Comments
Here's the weekly roll-call for Fetchies joining our list of supporters. They get that prestigious Shiny Gold Background, and the option to turn off the Google Ads (Profile > Settings). And more importantly, by contributing a few quid each month, they help to ensure that the costs of running the site are covered. Thank you all!

Rach E
Liebling
cilahim
neil8824
Daz Man
Chris Worthers
beetle01
carolinew70

Revenue from online advertising is falling. As the web grows, there are simply more places where people can place their ads. It's all the more important that we stay strong as an online community. If you regularly choose "maybe next month" when it comes to contributing, have a think about whether now is the time you can spare the price of a pint each month (or even just an orange juice and lemonade). If money's too tight to mention, that's fair enough - the site is free if you need it to be.

fetcheveryone.com/invite.php
Click here to suggest this blog for today's highlights.

Comments

  • Any chance of also a gold outline to those currently browsing the site who are subscribers at the bottom of the page? I think it would make people wonder what it is, and also see just how many people are subscribers, in turn pushing a few more over the line. I love this site and want it to stay viable!
    boyband6666
    9:03am, 27th Mar 2019
  • I’ll up mine a bit Fetch
    jennywren
    9:47am, 27th Mar 2019
  • Perhaps we need to be a bit more proactive in letting other runners know about the site - i've hopefully got us a mention in the Coldham's Common parkrun report this week. Maybe specifically get a leaflet for parkruns that we could print off and give out one week?
    Chrisity
    3:44pm, 27th Mar 2019
  • My FERC subs are due soon, I think. Then will look at monthly subscription when my annual one is due.
    Ness
    6:38pm, 27th Mar 2019
  • Fetch any chance of an enamel badge being added to the shop? I can then wear it on my lanyard like a secret sign!
    1step2far
    7:31pm, 27th Mar 2019
  • Ooh - liking 1s2f's ideA
    kwala
    12:57pm, 28th Mar 2019
  • Ooh yes, another vote for the badge idea!
    Wednesday Mouse
    6:32pm, 28th Mar 2019

Keep me in the loop!

25 Mar 2019

2nd in my age category!

It was a fun weekend for running :-)

On Saturday morning, we headed off to Marston Vale Country Park for the inaugural* and rather excessively-titled Millennium Country parkrun, Forest of Marston Vale. At 50 characters (including spaces and commas) it's the event with the longest name, beating Alice Campus parkrun, University of Fort Hare which is a mere 45 characters.

Despite being less than 10 miles from our house, I've never run there before, but always fancied the idea of it. The route takes in three sides of Stewartby Lake, then a 180 turn round a traffic cone, and back the same way.

It's a pay-and-display car park, £1 for an hour, or £2 for three hours - enough to cover a parkrun and our traditional bit of post-parkrun socialising with the local gang. I also spotted kevchenko, and we had a little chat before the run.

I got myself about six rows back at the start, and pushed the pace from the off. I've managed a couple of weeks of "early days speedwork" (a couple of tempo runs - 2.5 and 3.3 miles, and some hill reps), and I've also been able to maintain some 10+ mile runs too - so I was hopeful that I might be able to take a bit off the 23:10 I got at Great Denham back in January.

The route is a little bit stony underfoot, and the path has a few bits of uneven camber - but it was pretty solid other than that. I wore my very light go-faster road shoes as I was hoping for a fast time - and felt every stone - I'll wear my chunkier shoes next time.

The first half km required some ginger footwork as the more eager starters were all bunched quite close together, and I was still getting used to the terrain. But the gaps slowly opened up, and I focused on picking off the over-keen :-) I tried to avoid looking at my watch early on, and instead concentrated on maintaining a sturdy amount of effort**.

I managed to avoid the watch for a whole 0.85 miles, but I was pleased to see it reporting 7:2X as my mile pace when I eventually cracked. I knew I'd need under 7:30/mile to get a season's best time, and I knew I could maintain this pace for a bit longer. It helped to know that the turning point was coming up. I was also expecting to see the front runners coming back towards me, and the closer I got to the half way point without seeing them, the better I felt :-)

Eventually they came, and a minute or so later, I made it to the turn. It was a real boost to be heading back - I always feel like the return section of my out-and-back runs are a bit easier mentally. It also meant I could look forward to some high-fiving and shout-outs with the other Fetchies. I'm a little bit in love with out-and-back, but don't worry Katie, I won't let it come between us :-)

An overcooked 5k is a saucepan that burns pretty quickly - but I was determined to hold on to the pace. On the face of it, my second mile is 6s slower than the first, but the 180 round the cone showed up as one of the slowest segments of my run, so it must have killed the momentum a bit.

I was looking at my watch fairly regularly now and doing sums in my head. The main one was to work out how many minutes of this discomfort I'd have to work through - it's a good trick to play on yourself. Just four minutes more of pain, and I could stop. And every second spent calculating is another second closer to home. I went past the photographer, and you can see I was putting in a shift:

photos.benluckman.com

The finish came blissfully out of nowhere - maybe 50 yards earlier than my GPS was suggesting for a 5k (I'm not worried about that, I'll only be treating it as a course best), so I kept on pushing. Really delighted to see the third mile come out as the quickest of the three:

fetcheveryone.com/t-16061712

I got token 18, which was pleasingly high, though only ever a reflection of who else has turned up. And looking through the results, I also seem to have got second place in my age category:

parkrun.org.uk

However, I will temper my joy at that arbitrary success by noting here that there were a further nine people who finished ahead of me who were ineligible because they were too old :-)

After a few minutes to get my breath back, I headed back out onto the course to run in with Katie - and we showboated our way past the photographer:

photos.benluckman.com

The post-run cafe was nice - although I think they need a bit of practice at handling the post-parkrun rush. They'll certainly get plenty of experience over the coming weeks.

---
*there's no need to write in. We know the ED, and explicitly asked whether she minded us turning up.

**not flat out, but not in any way comfortable either. Let's call it "oof".

Oakley 20
On Sunday morning, we were up early again, to marshal at the Oakley 20. It was good to see great weather, as they'd had to cancel last year because of ice. Our main job was to look after the runners on the narrow bridges at 11 and 18 miles. I took my speaker, and we did a lot of dancing :-)

I had a really great time, hopefully raising a few spirits amongst the runners, or at least giving them something to think about for a little while :-) There was only one face-off on the bridge between a Sainsbury's lorry and a sporty car, neither of which wanted to reverse. And there was a healthy portion of Fetchies, all looking very chipper.

It all took its toll. I was asleep and dribbling on Katie's shoulder by about 8.30pm on Sunday evening (the rum and ginger ale also helped).

We've just published episode 12 of the podcast - do check it out :-) fetcheveryone.com/podcast

Have a great week!
Click here to suggest this blog for today's highlights.

Comments

  • Fab weekend. Well done. A 2nd in category is not to be sniffed at. Speed work (and long runs) is paying dividends! :-) G
    HappyG(rrr)
    2:23pm, 25th Mar 2019
  • Love that photo of you two heart
    minardi
    2:30pm, 25th Mar 2019
  • My experience of that cafe at any time of any weekend day is that they need more experience of handling a queue so I wouldn't hold your breath for any sort of improvement. It's handy to know that you can buy an ice lolly from the shop rather than the cafe when the queue is too big to contemplate!
    Elsie Too
    2:32pm, 25th Mar 2019
  • "Oof" pace, I love it. You even look like you're going "oof" in the photo.
    snayak
    2:37pm, 25th Mar 2019
  • Excellent weekend, apart from the dribbling ;-) :-)
    LazyDaisy
    3:01pm, 25th Mar 2019
  • Great blog and I have also just finished listening to the podcast. I have a feeling that many many years ago I may have been waterskiing on Stewartby Lake.......I'm not sure there was very much (if any) Forest of Marston Vale at that time.......
    BaronessBL
    3:11pm, 25th Mar 2019
  • Ace Race Face:-) Congrats on a fantastic result! bunting
    Sigh
    3:28pm, 25th Mar 2019
  • great pics, and fab running!
    MazH
    3:47pm, 25th Mar 2019
  • Great pics and great running ...’Ave it
    runnerbean
    4:53pm, 25th Mar 2019
  • Good to see you and Katie on Sunday. Your smiling faces and encouragement at mile 18 was much welcomed. I was the lanky one with the bright orange T shirt :-)
    colindglen
    5:10pm, 25th Mar 2019
  • On your "a reflection of who else has turned up" point I finished 2nd overall on Saturday, in a time about a minute slower than yours. I was delighted all the same :-)
    Cerrertonia
    8:45pm, 25th Mar 2019
  • Glad you made it to Marston on Saturday. Nice pics by Ben.
    Helegant
    9:52pm, 25th Mar 2019
  • Well done Sir :)
    Jock Itch
    10:00pm, 25th Mar 2019
  • bunting fantastic :)
    LindsD
    11:16pm, 25th Mar 2019
  • That's brilliant... 2nd in age cat for a bloke in the 40's is exceptional work!
    Trin
    6:45pm, 26th Mar 2019
  • Nah, I totally got lucky with who turned up Trin. Like I said, I got soundly beaten by 9 blokes who weren't eligible for my category because they were in the one above. I'm still happy with my performance though - I'm only ever playing against myself :-)
    fetcheveryone
    8:20pm, 26th Mar 2019
  • No getting lucky about it... (as I commented in another blog) you have to show up to be a winner 😉
    Trin
    8:37pm, 26th Mar 2019
  • Just catching up with Fetchland, and the photo links don't work any more (think I saw something in the ED fb group about using approved outlets, rather than pro photographers' websites)... I'm sure you both looked splendid, though :p
    ishep
    7:37pm, 2nd Apr 2019

Keep me in the loop!

22 Mar 2019

Fix It Friday: Brought to you by Surprise Inset Day

4:47pm | 364 views | 17 Comments
Yeah, so I found out yesterday afternoon that today was a school inset day, so I've had some unexpected extra time with the boy. We're just back from spending a couple of hours on the indoor 3G football pitches at "Power League" in Derby. Very sweaty. And only £8 for the two of us.

Despite that, there's some good stuff to report this week:

Route matching
Trying not to repeat myself, there's a more detailed blog here: fetcheveryone.com/blog/3/2019/3#blog391624 The early signs are very promising. I am keen to hear about false negatives i.e. routes that *should* have matched, but didn't.

Conquercise
fetcheveryone.com/game-conq.php
A bit of a tidy up of the main page, the 'zone' page, and the navigation. I've tried to simplify stuff for experienced players, by hiding all the explanations of what the game *is*. These only get shown until you've started collecting zones. If you somehow forget what to do, you can still check out the game guide.

There's a little aside here, about the sort of things I have to check these days when updating pages. There are three variables to consider:

1) does the page look just as enticing for new users as it does for long-term users? In Conquercise terms, does it look after users with no zones? And does it function well for folks who've collected a load of zones?

2) does it work well on large and small devices? This is sometimes about making sure that there's not too much scrolling to be done in order to get to the juicy parts of the page, but also stuff like font sizes, space between buttons, and also the *weight* of the page i.e. download time, and how well the processor on your phone can handle the content.

3) does it work well with and without ads? There are a few pages where turning off the ads leaves gaping holes, rather than using the space effectively. Encouraging you all to make voluntary donations to the site is easier if you can see that removing the ads produces a much better experience.

So (sorry Sharkie) the combination of those three factors means that every page needs to work well in EIGHT different scenarios. That can be a bit fiddly sometimes :-)

Training Log
As per my blog on Wednesday, there's a new prototype to try out: fetcheveryone.com/training-new.php It only affects the page that *lists* your training entries, I haven't changed the individual training entry pages. I'm taking my time with it, and giving you plenty of time to sniff its bum, because I know just how critical the log is to so many of you.

There were a couple of comments about my motivations for changing it. As I outlined in the Conquercise update above, there are a whole bunch of scenarios that I have to consider when updating pages. There were four driving forces behind this update:

1) if you've been running for 15 years, the 'Month Totals' bit mean that your actual training entries get pushed way down the page. So I've made them "off- and on-able" (that's a sticky choice now, thanks to your feedback).

2) I felt that the date selector was somewhat hidden down below the monthly totals. That's been made a lot more prominent now.

3) A lot of you were failing to spot the little cog symbol that led to the 'Settings' bit. It's a button called 'Settings' now, hopefully a bit clearer.

4) Likewise, in monthly totals, the option to flick between '2019' and "All running", "All biking" etc was getting missed all the time.

Whilst dealing with those changes, I took the opportunity to tidy up a few other bits and bobs, and improve the mobile view (you can see training entries now without scrolling, even with the ads on).

Notifications
Last week I made the notifications bell flash, and I was really quite surprised by how many of you found it irritating. But that's the beauty of having such a wonderful group of testers :-) I've switched that off for now, and stuck it back in my brain dumpster* (it's like Sherlock's Mind Palace, but with more fish heads). Several of you asked for the ability to dismiss notifications by category - and so I've put that in place now. Thanks for all your nice comments already on that. There's a bit of a bug if you clear *all* your notifications using the 'Clear This Category' option, but in the main, it's working well.

And that's your lot for this week. I've done a New Thing For Spring! I've emailed my local Touch Rugby club, and asked about attending their sessions. My previous experience of actually playing rugby was a few terms of full contact in comprehensive school, under the eye of a barking Benson smoking PE teacher. I love the idea of playing the game, but am happy to leave the bone crushing aspect to the professionals. Fingers crossed I'll get to a session in the next couple of weeks.

Don't forget to download the Fetcheveryone podcast (we got record ear-views for Episode 10, and it would be awesome to beat that again), and don't forget to have an awesome weekend. By order of the management :-)
Click here to suggest this blog for today's highlights.

Comments

  • I prefer to have the yearly summary at the top, as was, so that at a glance I can compare month on month, year on year, but only have the current month below, so I would prefer 2 controls. One for the summary at the top, one for the entries, maps, calendar etc. below.
    Wriggling Snake
    4:54pm, 22nd Mar 2019
  • Do you mean the monthly totals? Are they not "at the top" enough when you open them up?
    fetcheveryone
    4:58pm, 22nd Mar 2019
  • On the date selector, there's a few things I'd ideally like:-
    - "last month" to be dynamic - so if I'm looking at Oct 2017, clicking "previous month" takes me to Sep 2017. Rather than just being stuck the actual current and previous months
    - allow for a period of days to be viewed - so for example, select a date (e.g. a prior race date) and then choose "90", "50" etc so you could bring up a calendar view of your last X number of days before something (a bit like the training analysis, but with more control over the period)

    I like the absence of the yearly summary stuff.

    I don't like the notifications change - because it breaks over more than one line it takes up a disproportionate amount of space at the top, especially in a mobile view, when you have 3 or 4 categories of notification to deal with. But I like the concept.
    larkim
    4:59pm, 22nd Mar 2019
  • Loving the work :)

    Please don't forget to put a link to the new month summary page somewhere - that's a really nice page too.
    Rosehip
    4:59pm, 22nd Mar 2019
  • @larkim - I’ll have a look at some smarter options there. As for the notifications- I aim to tighten up the height a bit more.

    @Rosehip - there’s a permanent link to it on the ‘Train’ page from the menu. I see that page as the home for all the analysis and tools available to study your training log. But the log page itself isn’t always restricted to a single month, so it doesn’t feel like the right place for it.
    fetcheveryone
    5:09pm, 22nd Mar 2019
  • Great work. May I please repeat my desire for the ability to cycle through training entries without having to return to the training log, by having "previous" and "next" on each entry for example?
    snayak
    7:06pm, 22nd Mar 2019
  • The clear notifications by category is genius, pure genius!
    ♪♫ Synge ♪♫
    7:09pm, 22nd Mar 2019
  • +1 for snayak's suggestion please
    The conq changes look nice and clear; think I've already fed back on the rest, but an all-round thumbs-up from me :-)
    Sigh
    7:13pm, 22nd Mar 2019
  • Very minor niggle, was present before, and possibly device-specific: right-clicking a historical month's total and 'open in new tab' open a new tab with *current* month in (and weirdly scrolls to the bottom past all the entries) (Mac, Safari). That apart, all good.
    flanker
    7:31pm, 22nd Mar 2019
  • Oh, one other thought re conquercise; could the default for owned zones be green rather than red, maybe using red for owned but in imminent danger. Green's more of an "all's good" colour, and I keep thinking the red means they are the ones that need urgent attention.
    flanker
    7:38pm, 22nd Mar 2019
  • The new Conquercise homepage looks good, a lot like the Fetchpoint home (but different, obvs), but could the links to the map be more obvious? The map is where you go a lot once you've started playing.
    Oranj
    8:01pm, 22nd Mar 2019
  • Could the notifications be a bit less gappy now?
    Oranj
    8:04pm, 22nd Mar 2019
  • aha - yes, so there is :) _ I usually just hover on "train" and click the sub-menu. Working from a small screen and hadn't scrolled down. Excellent :)
    Rosehip
    8:22pm, 22nd Mar 2019
  • One of my colleagues tore his ACL playing regular rugby so started playing touch for rehab and to stay in the game. He has now made it into the Touch 2019 World Cup squad with the finals in Malaysia this May. It sounds a lot like Rugby league in style
    NDWDave
    2:40pm, 24th Mar 2019
  • Touch rugby is fab, prepare for the back of your legs to kill you for a few weeks whilst you get used to being dummy half...
    Re the bone crushing, the only time I broke anything playing rugby was my thumb playing touch!
    Tazsedai
    10:01am, 25th Mar 2019
  • Well done, top work. New training log page is looking good (thanks for making totals on top a remembered toggle). I've dabble with touch. We used to use it for training in "real" rugby as a way of encouraging defending as a line and creativity in attack to break the line. Was always fun! :-) G
    HappyG(rrr)
    2:20pm, 25th Mar 2019
  • I see you’ve fixed the notifications bug. Nice work! :)
    Angus Clydesdale
    9:01pm, 25th Mar 2019

Keep me in the loop!

20 Mar 2019

New training log

7:27pm | 468 views | 23 Comments
Some minor updates - let me know what you think of the prototype:

fetcheveryone.com/training-new.php

Cheers :-)
Click here to suggest this blog for today's highlights.

Comments

  • Very smart looking :)
    (and loving the changes to the notifications clearing too :)
    Rosehip
    7:30pm, 20th Mar 2019
  • I like it. :)
    Ness
    7:36pm, 20th Mar 2019
  • Looks very funky :-)
    Seratonin
    7:37pm, 20th Mar 2019
  • I like it too 😀
    Eynsham Red
    7:49pm, 20th Mar 2019
  • I love the notifications thing.
    LindsD
    8:04pm, 20th Mar 2019
  • really good, so much clearer and organised looking on the notifications thingy.
    iaincr
    8:14pm, 20th Mar 2019
  • Liking the update with the notifications 😀
    DocMoye
    8:38pm, 20th Mar 2019
  • Like it.

    Clean feel to it and fits well with the monthly summary.
    Rrunner
    8:39pm, 20th Mar 2019
  • I think you make changes to the log too often. I just get used to one lot and then its changed again. Sure I will get used to these, but can we leave alone for a while after that?

    I do like what you have done to the notifications though as that really bothered me before but I didnt think of any solution.
    Bazoaxe
    9:28pm, 20th Mar 2019
  • Interesting comment Baz. It’s been a good while since I updated this particular page. Can you point to any change here that you disagree with, from a usability perspective?
    fetcheveryone
    10:16pm, 20th Mar 2019
  • There isn’t anything I don’t like. Other than change itself. I get used to the way it works and like it. Then it changes and I have to get used to it all over again and over time like it. That could just be me though. Bah humbug.
    Bazoaxe
    10:20pm, 20th Mar 2019
  • *like*
    I thought for a moment the summary of all the monthly totals had gone but realised it's still there and wasn't showing.
    Meglet
    10:31pm, 20th Mar 2019
  • I must admit I too did think "hang on, didn't he just change this recently?" But actually I think that was the individual activities rather than the overall log, if that makes sense.
    Looks really good, especially now the selection of monthly totals is "sticky". :-)
    Would the summary tab be a good home for the new monthly summary?
    StuH
    10:46pm, 20th Mar 2019
  • Just having another play with the page. Could it remember the filter selection? I usually only want to look at my running and have to filter this every time I visit the log.
    Rrunner
    10:57pm, 20th Mar 2019
  • Liking it. Not only does it look neater, but it seems to load quicker too!
    westmoors
    7:01am, 21st Mar 2019
  • @Stu - I put up a link to an earlier version of this prototype a month or so back, but hadn't then put those changes live. I recognise that our training log is one of the key features of the site, and so it's something that I always want to update carefully. Not sure about the summary - you can put any dates in the training log, so it's not always a month that the summary shows.

    @Rrunner - I plan to add a couple more filters e.g. max and min distance. Any other suggestions welcome.
    fetcheveryone
    7:58am, 21st Mar 2019
  • @Fetch excellent. Could the filter be set to exclude specific workout types eg. commuting / coaching?
    Rrunner
    8:40am, 21st Mar 2019
  • Aha, I've found the month totals again. I used to use them to click on "whole year" or a specific month in history, rather than editing the date range. Glad it's still there, even if hidden. Yeah, all looks good. Tidy (presume it's for mobile?) :-) G
    HappyG(rrr)
    8:45am, 21st Mar 2019
  • All looks good. Great to have the monthly totals section retained at the top as an option - thanks. The only thing I can think of is that there is no "X-training - chopping logs" category, which is what I wanted yesterday when I CBA'd to go for a run ;-)
    ♪♫ Synge ♪♫
    9:11am, 21st Mar 2019
  • Really good and much easier to switch between different viewing options. Nice one!
    Josh_hand
    9:14am, 21st Mar 2019
  • Sharp! I like it very much :)
    Velociraptor
    10:29am, 21st Mar 2019
  • Really good being able to show and hide the totals
    Homer
    11:44am, 21st Mar 2019
  • Just done a side-by-side comparison using a browser on PC - new one looks much cleaner and easier to follow.
    Sigh
    2:45pm, 21st Mar 2019

Keep me in the loop!

19 Mar 2019

Route Matching - Ready :-)

3:04pm | 404 views | 42 Comments
Before I crack on with the main subject of my blog, here's the list of epic legends who have taken out voluntary monthly donations (or else made one-off contributions) this week:

HazelnutCH
louloops
Bobbyboy
paul0
rockin rory
Stellafella1967
dallow
Nilz
RFergie

They each get a shiny gold background on their user profile, and the option to turn off the Google Ads (it's under Profile > Settings, folks). And of course, they help ensure the site stays strong.

On to the route matching stuff. Over the last week I've been re-indexing all your training entries*, pulling out sufficient information to calculate when you've run a route more than once. The indexing process finished about 10 minutes ago :-)

*to help make things go a bit quicker, I've only indexed older routes that are at least 3 miles long.

What would be great now, is if you can go visit one of your training entries for a route that you do regularly (either because it's a home-made favourite, or maybe it's your local parkrun, or a race that you've done multiple times.

When viewing the entry, you should see either one or two green buttons just above the map. One button will show you how this particular instance ranks against all your other attempts. The other button will show how you rank overall against everyone who's done this route.

Click the buttons, and you'll be taken through to the corresponding table. There's a new column called 'Match', which shows the percentage match for every row. The tables will show all matches above 80%, which means there's a little bit of literal wiggle room to cope with dodgy GPS and small actual variations in route. I may well be able to add something that will allow you to adjust the threshold percentage, but let's see what sort of results we get first.

In theory, this new system will bring in more matches. The old one did an ok job, but the longer the run, the more likely it was to fail. If you've done marathons, ultras etc, I'd be keen to know whether you get a better set of matches than before. Do please have a look, and let me know how you get on.

Excited and nervously awaiting your comments :-)
Click here to suggest this blog for today's highlights.

Comments

  • Yes, it's there! Funnily enough, I saw it about 15 minutes ago when looking up an old training session. All good!
    ♪♫ Synge ♪♫
    3:05pm, 19th Mar 2019
  • Looks good. Clicking the column headings though seems to bounce back to front page for some reason, rather than sort the heading?
    larkim
    3:17pm, 19th Mar 2019
  • Looks good to me. (I’ll have to extend my lunch time run of 2.8 miles to 3 now to get it to qualify for route matching 🙁)
    Eynsham Red
    3:22pm, 19th Mar 2019
  • Now we just need segment leaderboards ;-) Oh, and the ability to name a route which has a load of matches
    larkim
    3:23pm, 19th Mar 2019
  • Spot on. It's even picked up on the course changes at Hanley parkrun - so the current course it's got 5 attempts (sounds about right), and for the 'original' course it's got 73 attempts. By comparison, S**a*a can't tell the difference between them, so FE is officially more accurate (but then you expected that, didn't you?) star :-)
    Sigh
    3:29pm, 19th Mar 2019
  • @Eynsham Red - it'll index them all from here on, just not legacy stuff. But I might push the 2+ entries through too at some point.
    fetcheveryone
    3:36pm, 19th Mar 2019
  • Looks pretty good on parkruns....
    I need to find some longer repeated runs!
    Markymarkmark
    3:36pm, 19th Mar 2019
  • Working brilliantly! Particularly like the "Your fastest ever!" button. :-)
    Like Larkim I was chucked to the homepage when trying to sort a column.
    StuH
    3:40pm, 19th Mar 2019
  • @larkim and @StuH - the column headers should now be working.
    fetcheveryone
    3:49pm, 19th Mar 2019
  • Looking good. I think it's more accurate now. It's telling me I've done one particular route 153 times while previously it was just over 100. I'm sure it's actually 200+ but accuracy definitely improving!
    snayak
    3:59pm, 19th Mar 2019
  • @snayak - can you send me some feedback with specifics e.g. a link to a training entry where you ran the route, and a link to a training entry where it's not picked up the match?
    fetcheveryone
    4:01pm, 19th Mar 2019
  • I've done Woking parkrun 139 times. I've got 91 matches on the usual route and 10 matches on the winter route. So 101/139.

    That other site cannot tell the difference between the two courses and there is quite a difference. It suggests 125 matches.
    StuH
    4:24pm, 19th Mar 2019
  • @StuH - same response as for snayak - can you find me one that it missed please?
    fetcheveryone
    4:26pm, 19th Mar 2019
  • I'll try!
    StuH
    4:29pm, 19th Mar 2019
  • Done Fetch. Re: my feedback - I might be wrong. The routes I did before 2014 are nothing like that one I linked so 152 sounds about right. Also, all my parkruns seem to be matching up. Great work!
    snayak
    4:33pm, 19th Mar 2019
  • fetcheveryone.com/t-15383037

    I've just noticed on the matched ones, the total varies between activities. Sometime /91, sometimes /92, sometimes /93.
    StuH
    4:35pm, 19th Mar 2019
  • @StuH - each route is used as the 'ideal' version (you'll notice that it scores 100%, because it's a perfect match for itself). So if you ran Woking and included a little dash into the bushes for a wee, the matches for that particular instance would represent your other training entries most like that one. Does that make sense?
    fetcheveryone
    4:38pm, 19th Mar 2019
  • Yes *thumbsup*
    StuH
    4:40pm, 19th Mar 2019
  • I've just checked my 5 mile loops 22 times all are 90%+ match one of 85% was where the GPS didn't lock until after I'd ran off down the road - but it still picked it up!

    Looks good Fetch!
    Rrunner
    4:43pm, 19th Mar 2019
  • @StuH - the example you've given me has a distance of 2.95 miles, and so it hadn't been indexed (I've only done routes that are 3+ miles). I've just forced it through manually, and it looks like it should be a reasonable match now.
    fetcheveryone
    4:45pm, 19th Mar 2019
  • Ooh, it's working really well on my regular lunch time route - I was able to tell a colleague that the run that he and I did with a (slower) colleague to day was the 27th and slowest we had ever done, and that last week's was our 7th quickest, and that the quickest was one where I did 2 miles of it as a tempo test. Good tables! THanks. :-) G
    HappyG(rrr)
    4:54pm, 19th Mar 2019
  • Ah, I see so parkruns where the GPS distance come up short and I didn't apply an already saved route or otherwise alter the distance would account for some missing ones. It's just occurred to me that some of my parkruns would have been logged as part of a longer run.
    StuH
    5:02pm, 19th Mar 2019
  • Potentially needs approximate distance matching? I have run circa 13.6 and 12.7 mile run which are seen as the same because they were the same route for about the first 11 miles!
    SPR
    6:37pm, 19th Mar 2019
  • @SPR - distance matching is included, how do the percentages for those two other runs compare?
    fetcheveryone
    6:43pm, 19th Mar 2019
  • There's 6 in total (4 @ 13.6, 2 @ 12.7), the 12.7s are 83% match to the 13.6 I did this weekend which is accurate. The other 13.6 runs (same route) come out 98-99%.
    SPR
    6:50pm, 19th Mar 2019
  • Based on what you’ve said, an 83% match doesn’t sound unreasonable. As per the main blog, there’s the potential to add some kind of threshold control. In your case, raising the match threshold to 90% would kill off the shorter routes.
    fetcheveryone
    7:03pm, 19th Mar 2019
  • Got some runs from the stadium. Some go around the park, others up falcon drive. At first I was thinking it's wrong, they are not the same but actually they are all quite linear along polhill so it did a pretty good job of finding similar routes which in itself is quite useful. I think the ability to change the percentage may be useful. Can you perhaps have a way of matching against users routes or system 'confirmed' routes, perhaps with a higher percentage match so that a training entry can be pretty much guaranteed to be a match against a named route. By the way, for some of the matched routes I can't see the users' route presumably due to privacy settings. Is the fact that I can see the match in itself a violation of same - should private routes be excluded from matching?
    Nightjar
    7:16pm, 19th Mar 2019
  • Private training entries are now excluded - thanks for pointing that out.
    fetcheveryone
    7:26pm, 19th Mar 2019
  • Looks good, Fetch.
    Ness
    7:32pm, 19th Mar 2019
  • This is fab, and the ones that it wasn't linking before (parkruns) are now being linked.
    :-)
    RunnyBunny
    8:16pm, 19th Mar 2019
  • Love it. Liked the original idea, this one is a brilliant improvement. I've done Conwy parkrun 89 times, it's picked up 85,whereas the old version had them split up into about 4 different groups iirc. When I have time at the weekend I'll get on my pc to find the missing 4 to see if there is a reason unconnected to this that they're not being picked up.

    Overall a fabulous update, thanks for all your hard work 👍
    bonners
    1:26pm, 20th Mar 2019
  • I understand the need to hide private entries, but it's made a big difference to the size of the tables.

    37/48 hidden on Woking parkrun
    StuH
    1:53pm, 20th Mar 2019
  • Yeah, not a lot I can do about that, I don't think.
    fetcheveryone
    2:01pm, 20th Mar 2019
  • Would it be possible to selectively mark certain training entries as public? Like on Garmin Connect.
    snayak
    2:04pm, 20th Mar 2019
  • I like snayak's idea as I don't want the world to see where I live (I start 95% of my runs there) but would like to share my parkruns and races...
    Rrunner
    2:08pm, 20th Mar 2019
  • Would that not be the display preferences tick-box in edit workouts?
    StuH
    2:13pm, 20th Mar 2019
  • @Stuh - yes, but that is for all not specific entries.
    Rrunner
    2:19pm, 20th Mar 2019
  • You can tick and untick in individual activities
    StuH
    2:39pm, 20th Mar 2019
  • StuH
    2:52pm, 20th Mar 2019
  • That doesn't override the privacy settings, just includes the activity in the lists. Just logged out and checked last weekend's parkrun which is ticked as above but still cannot see the details...
    Rrunner
    3:23pm, 20th Mar 2019
  • Well impressed with this:



    :-)
    Sigh
    1:38pm, 21st Mar 2019
  • Might be a bit late posting here but should it be matching routes when I run them backwards?
    Homer
    5:42pm, 27th Mar 2019

Keep me in the loop!

15 Mar 2019

Fix It Friday

2:26pm | 538 views | 25 Comments
*cracks knuckles*
*makes giant pot of coffee*
*puts on Jessica Fletcher t-shirt*

It's time to murder some bugs :-)

Stickers
Early this week, I did some tidying up on the Fetch stickerbook, because it was looking unusably awful on mobile. For those of you who don't know what it's all about... it's just a bit of fun. Every time you meet a Fetchie in real life, you can add them to your sticker book. The definition of 'meet' is up to you - I'm sure that some of the people on my list were just a sweaty high five, but it's hard to remember everyone, hard as I try. I've got 375 people on my list, but I'm still only fourth on the collectors list. Take a look at the sticker book here: fetcheveryone.com/stickers.php

Suunto Import
...is now live for you to test. There are a few things you need to be aware of. Most importantly, there are two distinct Suunto systems. One is called 'Movescount' and has been around for a while. The other one is simply referred to as 'Suunto' (I think), and is their new preferred storage location. Without knowing much of the background, it sounds like they've changed how and where they store the data. Our importer works on their new 'Suunto' system - so for success, you need to get the 'Suunto' app on your phone (or perhaps the desktop equivalent? I haven't looked into that. They've also told me that later this spring they'll be giving their users the chance to transfer all their Movescount data into the new Suunto database. I know there's a bit of frustration surrounding some compatibility issues with older Suuntos (see Maclennane's blog), but if you drop me a line about it, I am in communication with Suunto, so I might be able to find out a bit more info for you. Anyway... here's the importer: fetcheveryone.com/suunto - I tried it this morning, and it's working reasonably well. There *is* an interesting thing going on with some of the FIT files looking a bit sparse, but I've sent some examples over to them to see if I can get to the bottom of it. Might just be my watch.

Notifications

I'd noticed that a significant number of you have a tonne of un-viewed notifications - and I wondered whether it was just down to not spotting the notifications icon at the top of the screen. I've added a little effect that makes it pulse three times when you load the page, with the goal of making it a wee bit more visible. I didn't want to make it flash continuously, or over-quickly, because I know that would p*ss me off and might cause vision issues for some of you. So I *tried* to go with something relatively gentle. However, one user has asked for it to be switched off - and I've done so for that user. If it causes you any sight problems, please let me know.

Route matching
I've finally settled on an algorithm that seems to be working pretty well, so it's busily indexing all your training entries as we speak. I've asked it to look at every run that (a) has a GPS trace, and (b) is at least 3 miles long - and there were about 3.5 million of them. As I write this, there are about 2.1 million still to go.

If you're a regular reader of my blogs, you'll know I was looking at a way of creating a 'fingerprint' for each run - something that encapsulated all the essential features of a route. My latest algorithm is a bit of a compromise. I start by determining a 'bounding box' for a given run, and then storing a few parameters that describe the distribution of points within that box.

The indexing is working in chronological order, and is currently working through March 2015, just to give you an idea of where it is. I did cheat, and index all of my own runs first - dealers privilege :-)

For a little preview of how it will work, here's a few entries from my training log:

Bedford Harriers Half Marathon: fetcheveryone.com/t-11943208
Bedford parkrun: fetcheveryone.com/t-11980869

If you view those, you should see a dark bar just above the map, with green buttons. In a nice little addition since last time, the green buttons don't just show the number of times the route has been completed, it also shows you the ranking for this particular run/ride etc.

Click those green buttons, and they take you through to a table listing yours/everyones best performances. You'll also notice that there's a 'Match' column, which shows how similar each route is to the training entry you started with. I don't show anything that has less than an 80% match. Hopefully it will do better at matching than the previous incarnation - let me know how you get on when it finally catches up.

Have a great weekend, and hope for my sake that Wales win tomorrow :-)
Click here to suggest this blog for today's highlights.

Comments

  • Is a naked swim in the shark-infested Ouse on the cards? ;-)
    McGoohan
    2:45pm, 15th Mar 2019
  • I will happily hold your coat.
    fetcheveryone
    2:51pm, 15th Mar 2019
  • 'MON WALES!! :)
    Angus Clydesdale
    3:05pm, 15th Mar 2019
  • I don’t like the flashing notifications I’m afraid. I wouldn’t mind if it was just when I logged on after a few hours, but it’s every time I load a new page. It does make me click on it, which I suppose is the point, but sometimes I want to leave stuff for later. Would it be too much trouble to turn off the flashing for me too please?
    Meglet
    3:08pm, 15th Mar 2019
  • I like the improvements to the stickerbook.
    Sigh
    4:45pm, 15th Mar 2019
  • @Angus :-)

    @Meglet I've done that for you too

    @Sigh :-)
    fetcheveryone
    4:58pm, 15th Mar 2019
  • *mwah*
    Lizzie W
    5:02pm, 15th Mar 2019
  • Thanks for the Sticker page. I’ve rediscovered people that I’d forgotten I’d had stickers for 🙂
    Eynsham Red
    5:35pm, 15th Mar 2019
  • Could you turn the flashing off for me too? Otherwise keep up the cool stuff! :-)
    1step2far
    5:56pm, 15th Mar 2019
  • Thank you x
    Meglet
    6:01pm, 15th Mar 2019
  • I'm sorry, I REALLY don't like the flashing notifications!

    I would love a way of clearing selected notifications though - rather than only being able to clear all.
    Wine Legs
    8:01pm, 15th Mar 2019
  • Can it flash once when site is opened?
    colindglen
    8:19pm, 15th Mar 2019
  • +1 Wine Legs + Colinglen. It's really annoying that it flashes every time you navigate to a new page in Fetch. Just once when you open the site would be enough.
    Oranj
    9:25am, 16th Mar 2019
  • I like the new stickerbook, but is there some reason why I can add some Fetchies to it, e.g. Marigold fetcheveryone.com/userprofile.php?id=13093 who's never here but who's training still seems to upload, but not my friend Shortcut Cam fetcheveryone.com/userprofile.php?id=25418 , who's here quite a lot and plays some of the games? Perhaps the list of '...representing the most active and current members of the site...' needs updating?
    Oranj
    9:45am, 16th Mar 2019
  • If you go to Cam's profile, there's an 'Add to stickerbook' link: fetcheveryone.com/userprofile.php?id=25418
    fetcheveryone
    9:51am, 16th Mar 2019
  • I like the flashing, and feel like a mere three times on page load does the job while being unobtrusive. Maybe it's because I'm a web dev myself, but it's amazing how wildly opinions can differ. I suppose you could store a flag in SessionStorage when the bell is clicked, so that it won't flash again (even if the notifications aren't cleared) unless more new ones come along. Or just put a number-of-notifications badge on the bell instead, à la Facebook. ...or all of the above and have a user preference setting to determine which method gets used
    ishep
    12:08pm, 16th Mar 2019
  • OK, I am dumb. Thanks @fetcheveryone
    Oranj
    12:46pm, 16th Mar 2019
  • The flashing has been driving me mad. Sorry. I thought at first it was telling me there were new ones since I last opened it but I do look at my notifications several times a day.
    I love the sticker book changes; it's way better on a mobile now.
    Carpathius
    1:47pm, 16th Mar 2019
  • I like it. The flashing bell thing that is.
    Nightjar
    10:40pm, 16th Mar 2019
  • Re Notifications - is it possible to consider clearing by type? Eg clear all checkpoint ones, clear all training imports, clear all conquersize first trip to, all explored unexplored etc? I have stacks building up at the moment, but do not have time to clear each individually, but don't want to lose some.
    um
    11:53pm, 19th Mar 2019
  • I very like that suggestion by um. ^^
    Angus Clydesdale
    6:55am, 20th Mar 2019
  • +1 for that idea. If there’s a raft of conquercise notifications I can’t clear them until I’ve read the blogs.
    Meglet
    8:48am, 20th Mar 2019
  • FAST WORK :) :)
    Angus Clydesdale
    12:49pm, 20th Mar 2019
  • Indeed. Thanks Fetch :-)
    Meglet
    12:52pm, 20th Mar 2019
  • Very fast work - and I thought washing the knives & spreading out the marmite/nutella had consumed your day so far. (only 8am here)
    Very impressed & many thanks !
    um
    2:14pm, 20th Mar 2019

Keep me in the loop!

12 Mar 2019

What's your unit of measurement?

1:07pm | 656 views | 32 Comments
This week's list of awesome folks either setting up a small monthly donation, or simply making a one-off contribution to the running costs of the site:

testjbarton
Banny
DazW
lorriecobain
Mr.C

If you're one of the people who says "I must get round to doing that", then now would be great. A standing order (which is what most people do) is NOT like a direct debit, in that it doesn't give me the right to increase your payments or anything nasty like that.

Consider it the equivalent of buying me a coffee or a pint* each month, as your way of supporting the site, and helping us stay strong in the face of corporate might.

Here's the link if you need to know how to contribute: fetcheveryone.com/invite.php

*do you think about it in these terms? If not, what units of measurement do/did you use when assessing your contribution? Leave me a comment :-)
Click here to suggest this blog for today's highlights.

Comments

  • In my case: How much will come out and not be in danger of bouncing? answer £2.
    MazH
    1:10pm, 12th Mar 2019
  • My unit is the "value" and "community" of this site ;-) :-)
    Flatlander
    1:10pm, 12th Mar 2019
  • Hmmm ... off to cancel the payment and set up deliveries of Doom Bar & Whitstable Bay.
    Pints is a good measure, but now I come to think of it ... how about (for me, annually) 'less than a pair of running shoes' or 'less than a tankful of petrol/diesel'
    um
    1:12pm, 12th Mar 2019
  • So we can change the amount we pay?
    Mandymoo
    1:14pm, 12th Mar 2019
  • You can, Mandy, but I can't :-)
    fetcheveryone
    1:16pm, 12th Mar 2019
  • A botttle of wine
    Diogenes
    1:18pm, 12th Mar 2019
  • Tbh, I have no idea how much a pint is but it must be more than my current s/o. Have just upped the amount a bit Fetch, let me know if you can buy a pint with it yet.
    minardi
    1:30pm, 12th Mar 2019
  • Less than Netflix but more informative AND entertaining? Two very large toblerone bars. I def shouldn't have two of them a month. :-) G
    HappyG(rrr)
    1:38pm, 12th Mar 2019
  • I have just upped the amount I pay a month.

    I also have no idea if it buys a pint these days but it should help keep you in fuji milkshake until that sponsorship deal goes through. :)
    Rrunner
    1:39pm, 12th Mar 2019
  • A balance between what it's worth to me and what I can afford.
    LindsD
    1:42pm, 12th Mar 2019
  • Given the recent upgrade that allows Fitbit data to be imported, and the use of this data by Ian to allow detailed analysis, I am happy to increase my monthly contribution from half a pint to a full pint. Cheers.
    JogWalker
    2:16pm, 12th Mar 2019
  • My unit is, "What would S****a charge?"
    Velociraptor
    2:35pm, 12th Mar 2019
  • I it based on how much a magazine would be per month.
    1step2far
    2:42pm, 12th Mar 2019
  • The value of all the friends I've made via this site (actually I probably couldn't afford that every month, so as Linds says, as much as I can afford towards that)
    TeeBee
    3:18pm, 12th Mar 2019
  • I give you 10 standard galactic credits each month....
    runnerbean
    3:21pm, 12th Mar 2019
  • Have amended mine :-)
    Mandymoo
    3:22pm, 12th Mar 2019
  • It started off as the equivalent of a magazine per month, at £5. (I did actually stop buying the running magazines as well!) Last year I increased it to £6; but since then I've not had a pay rise, and much as though I'd like to increase it again, equally I didn't want it to get to the stage where it became unaffordable, so sticking with £6 seemed better than initially going higher but ultimately cancelling :-(
    Sigh
    3:30pm, 12th Mar 2019
  • This is effectively my running club (and my therapist! ;-) ). Value therefore=immeasurable!
    Unit of measure - ought therefore be club subs and couch fees. :-o
    Markymarkmark
    3:44pm, 12th Mar 2019
  • Err, Stroova is actually free for the main bits. I mean, it's totally rubbish too, obv and I'm not even on it, well, only accidentally, cos the club I've recently joined have a group and I have to see what they're all doing, but not really. And you can't write rubbish like *this* and have someone maybe actually read it. :-) G
    HappyG(rrr)
    4:17pm, 12th Mar 2019
  • I give the same as 2 gin and tonics at my local pub.
    Elsie Too
    4:23pm, 12th Mar 2019
  • Mine was the same as MazH,
    pedroscalls
    6:01pm, 12th Mar 2019
  • I was moved to give by the power & sincerity of a blog.
    swittle
    6:35pm, 12th Mar 2019
  • I usually make an annual donation because my income is a bit too hit and miss to be able to give the same amount each month - and this is one place where I can say that - the mortgage and credit card companies tend to disregard hit and miss as a reason..... but when the annual thing comes up again I shall check that it would cover a pint a month in our local pub pint :-)
    BaronessBL
    7:31pm, 12th Mar 2019
  • I'm with Linds, a balance between what it's worth (priceless) and what I can afford (not a lot right now)
    Rosehip
    8:01pm, 12th Mar 2019
  • Income hit and miss here too. Looking at the possible occasional one off. Not thought about units.....
    Wriggling Snake
    9:28pm, 12th Mar 2019
  • I cancelled my subscription to a certain running mag and then made it a nice round number 😀
    Stilldreaming
    11:04pm, 12th Mar 2019
  • Things are always tight here, but I justify my contribution to fetch as a second claim club.
    bonners
    6:23am, 13th Mar 2019
  • Just out of interest Fetch, would it help / be any benefit to you if we *all* joined FERC as 2nd claim (or 3rd in my case) club? If you had a membership of 5,000 (my estimate of the number of active Fetchies?) would that make you "the biggest running club in UK" or anything headline worthy like that? :-) G
    HappyG(rrr)
    9:03am, 13th Mar 2019
  • ^^ what Rosehip says :-)
    Helegant
    10:56pm, 13th Mar 2019
  • Good question from the Happy one!
    Rosehip
    11:48pm, 13th Mar 2019
  • Less of the beer (cracks whip). 😀🍻🍸
    Nightjar
    8:12pm, 14th Mar 2019
  • If I paid what I think membership of the site is worth then I would be sitting in the dark, so at the moment it's the most I can afford (very little) and will go up as soon as I actually have any income.
    Carpathius
    1:49pm, 16th Mar 2019

Keep me in the loop!

11 Mar 2019

Ciderthon competition

10:38am | 304 views | 16 Comments
If you'd like to win two places to The Ciderthon, enter your email address here:

fetcheveryone.com/win

We'll pick a winner next Monday.

The Ciderthon is a half marathon in Taunton, Somerset - and you get the option of a cider taster every mile. You don't HAVE to drink all the cider, but it sounds like it'd appeal to some of you :-)
Click here to suggest this blog for today's highlights.

Comments

  • If I don't win I would selflessly accompany the person who does to the event and drink any cider they didn't want....... :-)
    BaronessBL
    10:57am, 11th Mar 2019
  • Cider, yum
    The Mighty Fleecy
    10:58am, 11th Mar 2019
  • I would absolutely love this - I'm a cider drinker, it's near my sister etc etc - but we'll hopefully be walking coast to coast in early May, so good luck everyone else
    HellsBells
    11:36am, 11th Mar 2019
  • I always enter competitions like this and pass my email address on, even if I don't have much of an interest in winning. It's another easy and free way to support Fetch!

    Obviously, if I win I reluctantly drink the cider...
    Rrunner
    11:36am, 11th Mar 2019
  • You're all taking one for the team here folks ;-)
    fetcheveryone
    11:41am, 11th Mar 2019
  • I'd be all over this like a koala on a eucalyptus 🌲 were it not about 400 miles too far away. Good luck, imbibers!
    Dvorak
    11:53am, 11th Mar 2019
  • I loves a drop of scrumpy!
    westmoors
    12:14pm, 11th Mar 2019
  • I am willing to drink cider. Sorry, was there some sort of run involved as well?
    McGoohan
    12:25pm, 11th Mar 2019
  • Well, I've done the "other" Taunton Half Marathon, so it'd be a shame not to try this one ...
    ♪♫ Synge ♪♫
    1:57pm, 11th Mar 2019
  • Oh gawd! I hope Jubear doesn't see this!
    megster
    4:37pm, 11th Mar 2019
  • Well helllooooo 😝
    Jubear
    4:50pm, 11th Mar 2019
  • Hahahahaha! Well, There. You. Are.
    megster
    6:14pm, 11th Mar 2019
  • :)
    Ness
    7:23pm, 11th Mar 2019
  • Winning would mean missing the mighty Royals last game of the season....... Oh well :-)
    RRR-CAZ
    9:24pm, 11th Mar 2019
  • Do we have a winner yet?
    westmoors
    7:47am, 19th Mar 2019
  • WildeRover's name came out of the hat - I'm just waiting on him to confirm he wants the places.
    fetcheveryone
    8:51pm, 19th Mar 2019

Keep me in the loop!

08 Mar 2019

Fix It Friday: Stroopwafels of Doom!

1:16pm | 366 views | 8 Comments
I've been focusing on two interesting issues this week.

1) Route Matching. I've halted the algorithm I was using, because I wasn't happy with some of the matches / not-matches that it was producing when I let it loose on a wider data set. Am currently looking at the drawing board - but I'm still enjoying myself :-) Those of you who use this feature, thank you for patience. More news in the week, hopefully. I've also had contact from a Fetchie who is also a student, so we might be doing some sort of data project - either on this subject or something else that might be useful for us :-)

2) An increasing number of Fetchpoint players were getting in touch to say that they weren't getting their daily dose of bugs, jewels, etc.

When Fetchpoint attempts to spawn an item in a random position, it checks whether there's something in that space already. If so, it will pick a new random position repeatedly until it gets lucky.

The overnight process that adds new items was falling over - consistently on the same player. The bit of code that picks random locations was literally running out of ideas.

I plotted all the places that had been marked inaccessible on a map. Each bad spot is marked by a little flame icon. Here's a screenshot that shows what I found as I scrolled around the UK:



At the top of the pic, you can see some 'organic' inaccessible points, where folks have clicked to say they can't access a point. But those two stroopwafels straddling Glasgow, and the third off to the east were new on me. Either through methodical compulsion or subterfuge, someone has marked the whole of a playing circle inaccessible. It's not even a good strategy, because it means you don't get any nice items to chase down.

It's a bit like finding crop circles (©DocMoye)

I've made the 'mark inaccessible' warning a little bit more sinister, and I've put some stuff in place that will show me exactly how many inaccessible points each player is generating. On top of that, I've put some code in place that will start to clean up some of these areas. Basically, if you visit an inaccessible point, it will become available again.

Have a great weekend, lovely Fetchies :-)
Click here to suggest this blog for today's highlights.

Comments

  • You are some kind of genius with all your clever stuff that just works so well seemingly straight out of the little brainbox. It is only us pesky users who mess it all up.
    Diogenes
    1:27pm, 8th Mar 2019
  • "stroopwafel". Every day's a school day on here :-)

    Do you know who the stroopwafeler was? I'd like to hear their story.
    paul the builder
    1:32pm, 8th Mar 2019
  • How very odd. I'm also intrigued. I suspect that the area to north and south were stroopwafels in progress. Which would also suggest it was being done manually? A strange if barkingly misguided degree of diligence in doing that. Looking at the map, I can see that people were still able to plant flowers in the affected areas.

    I would quite like some stroopwafelen now :-)
    Dvorak
    3:30pm, 8th Mar 2019
  • I nearly picked Stroopwaffel for my username years ago... :)
    Dooogs
    9:20pm, 8th Mar 2019
  • To be fair there are a lot of places there you probably wouldnt want to visit anyway
    Bazoaxe
    11:16pm, 8th Mar 2019
  • I’d like to be able to unlock some areas that were previously inaccessible. We’ve just had a big area locally opened up & it will be a new housing estate, so possible to run round. Is there a way to do this?
    CStar
    9:39pm, 10th Mar 2019
  • Yes, just run through the area.
    fetcheveryone
    10:04pm, 10th Mar 2019
  • I'm almost nervous to ask, but I would be interested to see what "my" circle looks like when represented like this. I know I have an awful lot of woods and farmland and suchlike that I have marked as inaccessible. Too complicated to make some sort of toggle button on our own FetchPoint maps, I expect?
    ♪♫ Synge ♪♫
    1:59pm, 11th Mar 2019

Keep me in the loop!

06 Mar 2019

Route Matching - Update

11:20am | 787 views | 3 Comments
On your training entries, the bit that says "You ran this route X times, and it's been run by Y people" or somesuch is currently in hiding.

I'm re-indexing all the runs and routes using my new matching algorithm (see last week's blogs for geeky updates on how that works).

It will hopefully do a much better job of matching stuff up. I've been testing it against data from various races around the UK, and it's hitting a 90%+ match rate for a lot of them. The worst I've seen it do so far is 72%, but in that particular case, I wasn't sure whether the race route had changed from one year to the next.

There are about 4.8 million runs and rides to index, and about 0.6 million plotted routes. I'm keeping it on a low heat - it's processing about 700 runs and rides per minute, and about 150 routes, so by my reckoning, it should have caught up in about 5 days.

Over that time, you should start to see the "You ran this route..." start reappearing gradually - and hopefully with better matching.
Click here to suggest this blog for today's highlights.

Comments

  • sounds good, keep up the good work!
    chunkywizard
    4:58pm, 6th Mar 2019
  • Does sound good.
    Ness
    7:12pm, 6th Mar 2019
  • Presumably there will always be some mismatches, for example where someone forgets to switch their Garmin off at the finish line and their track continues to the car park or the pub. Also in a race like VLM, where buildings do odd things to tracks. One year, my Garmin decided to send me from the Embankment tunnel to somewhere on the South Bank and back again.
    ♪♫ Synge ♪♫
    11:33pm, 14th Mar 2019

Keep me in the loop!

06 Mar 2019

This week's cool list

7:44am | 148 views | 2 Comments
Here's another set of Fetchies who've made a donation (either a monthly amount or a one-off) to help support the website. Thank you everyone, you're helping to make this all happen.

Yorkshire Pie
GeoC
WillH
bevunit
Lulu
Nemeth
Holburnmum
Zimbo zoom zoom
Ingenious82
DeeGee
Kevski
Pb Buzz
Yvonne H
Running on the spot
♪♫ ♪♫ Synge ♪♫ ♪♫

Your donations help pay for our web server and for me to earn money so I can focus on Fetchies full time. If you clicked 'ask me in a month' during February, how about March? March is good, right? :-) Here's the link to the donation info: fetcheveryone.com/invite.php

Thanks :-)
Click here to suggest this blog for today's highlights.

Comments


Keep me in the loop!

05 Mar 2019

Me in the river

12:16pm | 398 views | 16 Comments
Here I am, walking very slowly and carefully into the River Great Ouse:



Listeners to the Fetcheveryone Podcast (which is surely everyone, right?) will know that Katie and I chose some forfeits to spice up the Wales vs England rugby a couple of weeks ago. Not that it needed spicing up. My heart was beating like an egg with ten minutes to go :-)

Katie's forfeit was to get out cycling again, after a bit of a struggle on our last proper bike ride a couple of years back. Mine was to try open water skin swimming.

Wales won (yay, I'm still buzzing about that), but Silvershadow pointed out that the English women beat the Welsh women. I pointed out (a) the disparity between the centrally contracted English players and the amateur Welsh team; (b) the fact that the Welsh U20's beat the English U20's; and (c) that this was a potential rule change after the event. But I also said that I'd give my forfeit a go, as I think that women's sport should be on an equal footing with men. Not that anyone other than you lot will be listening to me :-)

I borrowed some neoprene gloves and socks from Nightjar, because my hands struggle with Reynauds in the cold weather. Katie and the other regular swimmers also wear this stuff, as it helps them to stay in for a bit longer.

It was a nice barrier between me and the sludgy bottom of the river. I inched my way forward, as the coldness of the water (it was about 9 degrees C I seem to remember?) felt like it was kind of crushing / burning my legs.

I was having to concentrate on keeping my breathing relaxed - so I was focusing on some good solid out-breaths (Katie's excellent advice). After quite a bit of faffing, I managed to get to the point where I got my shoulders under, and managed to do just a few flaps of breast stroke. I think I was a bit nervous about getting a sudden cramp, it was that cold (plus we'd cycled for a couple of hours that morning), so I made the decision to get out. This also meant that Katie could swim away (she'd stuck with me to offer support and encouragement) and enjoy her swim.

Clambering out, I was relieved to find that the sun was very warming. I towelled off quickly, and then stuck Nightjar's borrowed dryrobe on, so I could get changed. My fingers were fine at that point, but I could NOT get the zip to do up. I didn't want to yank it in case it broke, or jammed - so I just had to try to hold it closed around me, and hope there was no-one about to come round the corner to see my chilly bits (they'd have needed to get pretty close!).

I didn't get the post-swim euphoria that the other swimmers got, but then I don't feel that I was properly relaxed, plus I was only in the water for 3-4 minutes in total, with not a lot of actual swimming either. I did get one white finger though, but not too painful.

I don't think I'll be doing more OWS in the near future. Generally speaking, I find that being face down in the water on any sort of swim feels a bit claustrophobic. For me even if I was swimming in some unique places, I think I'd much prefer to run around the banks and drink in the atmosphere that way. But it's lovely seeing the grin it puts on Katie's face, so I fully expect to be accompanying her on more adventures in the future.

Podcast: fetcheveryone.com/podcast
Click here to suggest this blog for today's highlights.

Comments

  • That looks like the Washing Up version of Extreme Ironing.
    Wriggling Snake
    12:20pm, 5th Mar 2019
  • Rather you than me. I didn't even know post-swim euphoria existed and I doubt I will ever experience it either. Well done swim
    BaronessBL
    12:21pm, 5th Mar 2019
  • My friend's family and neighbours went in the sea on Boxing Day. They all run in together 3 times and stay in properly on the 3rd go.
    alpenrose
    12:29pm, 5th Mar 2019
  • Post-swim euphoria is definitely A Thing. But you do need to be in for a while. Goodonyer for giving it a go though. MrsC gets Reynauds fingers so she can’t do OW unless we’re in the Balearics! :)
    Angus Clydesdale
    12:53pm, 5th Mar 2019
  • Oooh the buzz I get after swimming in the lake lasts for ages. I’ve been swimming over the winter in a wet suit but left it off on Saturday. I’d swum all last summer without n it’s a great feeling. The panicy breathing can be helped by blowing slow bubbles into the water n then I just took a few mins to acclimatise. I stayed in for a total of 15 mins so was pleased as The water was only about 7 degrees. Our ‘club’ I have to say would not advise starting open water swimming by a newbie until about may so perhaps try again then.

    I love it but there again I love swimming
    smallclanger
    12:59pm, 5th Mar 2019
  • Hats off, Fetch, it's far too cold for me to forego my wetsuit except on the very warmest of summer days!
    LazyDaisy
    1:19pm, 5th Mar 2019
  • Might summer work a bit better for you? 9C! Ridiculous. I had my first swim in a river for probably thirty years in the summer and it was excellent fun and something I'll try to repeat, given a suitable river and the weather. (I was in the Tweed, so not that handy. But conveniently shallow.)
    Dvorak
    1:40pm, 5th Mar 2019
  • I like OW swimming here santorinidave.com or here
    :-) G
    HappyG(rrr)
    1:49pm, 5th Mar 2019
  • swim
    Derby Tup
    2:17pm, 5th Mar 2019
  • what a fine figure of a man!
    chunkywizard
    2:52pm, 5th Mar 2019
  • Brrrrr! :)
    Garfield
    2:53pm, 5th Mar 2019
  • What a lovely photo :-)
    Helegant
    4:14pm, 5th Mar 2019
  • Well done!
    LindsD
    4:28pm, 5th Mar 2019
  • I'd say you did pretty well there. I don't get the euphoria after but I do enjoy being out there in the middle of the river - the equivalent of running in the open countryside (rivers etc also tend to be in the countryside which helps).
    Nightjar
    6:16pm, 5th Mar 2019
  • You look to be enjoying yourself :-)
    Alice the Camel
    6:51pm, 5th Mar 2019
  • I'm feeling cold just looking at the photo.
    GimmeMedals
    8:06pm, 5th Mar 2019

Keep me in the loop!

04 Mar 2019

Big Fetch Miles 2019

11:38am | 844 views | 25 Comments
We are looking at doing three Big Fetch Mile events this year. We'd love to see a nice BIG attendance at all of them. One will definitely be in the Manchester area, because we missed out on doing this one in 2018.

There are two things I need you to do if you're interested in attending...

1) Register your interest here:

fetcheveryone.com/bigfetchmile-registerinterest.php

This just gives us an idea of numbers, and (if you've supplied your location) where you are, so we know which venues might work best.

2) Ideally, we'd like to be able to cover our costs (track hire is anything from £50-£150 in our experience; and travel costs are dependent on how far it is, obviously - that's pretty much it) - so I've created a poll to whether you'd be up for bunging us £2-3 on the day. Click the green 'Vote' buttons in the poll below:



We'll look at your responses, and work out our plans for the year. Thanks :-)
Click here to suggest this blog for today's highlights.

Comments

  • As before, the condition is that it will have to be fairly close by.
    Wriggling Snake
    11:49am, 4th Mar 2019
  • Don't mind travelling a bit, happy to give a contribution. It's not as if races, or the use of a running track, don't normally incur a fee.
    Velociraptor
    12:19pm, 4th Mar 2019
  • Longford Stadium in south Manchester - which might or might not be a 3 minute walk from my house - charges £3 per person for use of the track. Just saying.
    jennywren
    12:23pm, 4th Mar 2019
  • What if someone is an incurable clicker, and hit the link above ("register interest") thinking there would be another button. And then it turns out that *is* the button. And they actually wouldn't come to a Fetch mile (due to water being in the way).?

    Asking for a friend ;-)
    paul the builder
    12:24pm, 4th Mar 2019
  • lol @ ptb :)
    D2
    1:15pm, 4th Mar 2019
  • Sportscity/Manchester Regional Arena would be a fantastic place for a Fetch Mile (and might, or might not, be my nearest track) but I guess it would be costly. Happy to contribute to costs, and bring cake.
    Rrunner
    1:58pm, 4th Mar 2019
  • Not only would I pay £2-£3, I'd also purchase a tech tee/vest with "Big Fetch Mile 2019" on the back :-)
    Sigh
    2:41pm, 4th Mar 2019
  • Happy to eat cake...
    mushroom
    3:17pm, 4th Mar 2019
  • I like Sigh's idea of a tee/vest/hoodie.

    And cake.... :)
    Rrunner
    4:05pm, 4th Mar 2019
  • Did someone say cake?
    HellsBells
    4:33pm, 4th Mar 2019
  • PtB, would that be your non running friend ?
    Bazoaxe
    7:57pm, 4th Mar 2019
  • Like that idea Sigh :)
    Manchester would be good for me
    northernslowcoach
    8:23pm, 4th Mar 2019
  • Please come to Aberdeen! Love a long term Fetchie x
    mrs shanksi
    8:29pm, 4th Mar 2019
  • Nothing says Christmas like the Jingle Mile in Cambridge
    GregP
    9:22pm, 4th Mar 2019
  • Yes could we make the jingle mike “official”
    Serendippily
    9:55pm, 4th Mar 2019
  • Another vote for Aberdeen - nice to have one up north for a change
    Old Croc
    8:33am, 5th Mar 2019
  • Kings Park Athletics track in Bournemouth. Run & sea swim (plus ice cream and/or cake) on the same day!
    Wendolene Wobbler
    9:10am, 5th Mar 2019
  • Another Bedford mile would be fab - quite a few of us round here, and I welcome any excuse to make (and eat) cake 😁
    Schnecke
    9:41am, 5th Mar 2019
  • Anywhere around Manchester - Sportcity is nice (but I'd think busy), Longford is nice (but probably quite busy), Stockport's track is nice and probably a bit quieter. Warrington is nice as it's blue. Sportcity probably easiest for everyone to get to with public transport as it's on the Metrolink.

    Crewe is quite nice, and quite accessible(ish) too.
    larkim
    3:19pm, 5th Mar 2019
  • Can Warrington and Crewe be classed as Manchester? :)

    There is also Radclyffe track in Chadderton (Oldham) a few miles up the road from SportsCity (https://oclactive.co.uk/leisure_centres/radclyffe-athletics-centre) might be quieter and cheaper?
    Rrunner
    4:18pm, 5th Mar 2019
  • Ashford in Kent has a great track and great transportation links.
    alanmg
    10:43pm, 5th Mar 2019
  • I'm in East Yorkshire...
    Pegg
    10:00am, 6th Mar 2019
  • Something in the north and East of the Pennines - preferably Leeds/York but Newcastle would be good too.
    Jovi Runner
    11:13pm, 7th Mar 2019
  • I would love to come but even Manchester would be a bit far for me to travel to run a mile (based in East Yorkshire /Hull )
    totalbeginner
    9:05pm, 12th Mar 2019
  • DUDLEY!
    Wozzer256
    9:49am, 22nd Mar 2019

Keep me in the loop!

01 Mar 2019

Fix It Friday: Fingerprints!

3:59pm | 463 views | 15 Comments
There's no big list of fixes this week.

I took Wednesday off, and we did some cycling for Katie's forfeit, and then I tried getting into the river. There are pictures still to come - so I'll wait on those before blogging about that.

Warning - what follows is a geeky blog, but I've tried to explain my thinking.

I've been trying to wrap my head around the problem of route matching (see also my previous blog). It goes: "in a database with several million training entries, how do you determine which of those were on the same route?"

I took a stab at this back in October, with reasonable success. But every now and then, I get a feedback from someone that says "your matching code isn't picking up all my attempts at this route".

My code works like this:
1) for each latitude/longitude pair, round the values to 'snap' to a grid of large squares.
2) list all the squares visited in order, in one long string.
3) run these through a hash generator (md5) to generate an abstract 'fingerprint' for the route.

For example, my Abingdon Marathon 2018 is currently represented by the very memorable b16ac827dabd9d892b8e8a3a67b01b8c

In theory, if another route generates the same fingerprint, it's the 'same' route.

But it doesn't work out like that.

The problem is in the rounding in step 1. If you're running through the middle of one of our imaginary grid of large squares, there's no problem at all. But what happens if you run along the boundaries of one of the squares? Because GPS data is a bit fuzzy at the best of times, running along the boundary between squares will put you in square A one day, and square B the next day. This means that we provide a slightly different list of squares for step 2, and as a result, the fingerprint we generate in step 3 will be *completely* different.

I did some analysis to see how bad the problem was. I looked at all the runners who did Abingdon 2018. There were 20 runners with GPS traces. Under the current system, these produced 14 different fingerprints! I know I was weaving a bit by the end, but this is taking it a bit too far.

I looked at the Yorkshire Marathon too. The last six years of the Yorkshire Marathon produced 197 GPS traces, which in turn generated 37 different fingerprints. I don't think the route has changed.

If you've not worked it out already, longer races are more prone to this error. The further you run, the more likely it is that you'll have an unfortunate encounter with a square boundary. So marathons are a useful test of any improved system.

Right then, let's try to fix this shower of sh*t.

It occurred to me that there are alternatives to rounding. If you've used Excel, you might have come across FLOOR() and CEILING() - two functions which always round down and up respectively.

I updated my 'snap to square' code in step 1 of my algorithm to use FLOOR() to always round down to establish our 'current' square. Rather than rounding, which can go up or down, let's try to get a bit more consistency, by always choosing down. But this in itself does nothing more than shift the problem. When rounding, our problem occurs in the XX.49 to XX.51 region. When flooring, the problem just moves to the XX.99 to XX.01 region.

But here's the trick. When we floor our numbers, we throw in an extra check that says "how much did you have to move that point to make it fit?" If it's only a little jump i.e. within the normal range of error that you might expect from a GPS, then we let it happen. But if it's a big jump, we undo the FLOOR() and go with CEILING() instead.

Well done if you're still following this :-) I am still having to re-read my method just to convince myself that it makes sense - it's the sort of thing that hurts my brain, but I'm absolutely loving it.

The acid test is to check this updated algorithm against some data. I tried it against Abingdon 2018. It reduced the number of fingerprints from 14 down to 4. And 16 of the 20 runners were all on the same one.

I repeated this for the Yorkshire Marathon. Remember we had 197 different GPS traces across six years of racing.

Old Algorithm = 37 different fingerprints; most popular fingerprint accounted for just 26% of the runners.
New Algorithm = 17 different fingerprints; most popular fingerprint accounted for 79% of the runners :-)

I tried again with the Great North Run (677 GPS traces across 11 years):

Old Algorithm = 101 fingerprints; most popular one accounted for 35% of runners
New Algorithm = 18 fingerprints; most popular one got 92% :-) :-)

Just to see how it did on a shorter route, I tried Bedford parkrun (661 traces):

Old Algorithm = 42 fingerprints; most popular accounted for 55% of runners.
New Algorithm = 23 fingerprints; most popular got 93% of runners!!

It's all pointing at a nice improvement in accuracy, but before I process several million training entries to generate their new fingerprints, I want to look at the exceptions to see whether I can improve it just a little bit more. It may be that the size of the grid we are 'snapping' to is having an impact - or it might be that a very short-term GPS spasm is generating sufficient difference.

I've also been talking about our 'abstract fingerprint' - that hash of random-looking letters and numbers bears no resemblance to the actual route. It'd be great to replace the hashes with some sort of meaningful fingerprint that might be usefully scrutinised.

Here's a list of squares (in lat/lng notation) from a short imaginary route:

52.18,0.02
52.18,0.04
52.18,0.06
52.20,0.06
52.20,0.08
52.22,0.08
52.22,0.06
52.22,0.04
52.20,0.04
52.20,0.02
52.18,0.02

Keeping the first square, we can represent the rest in terms of their relative position to their predecessors. So our list of squares visited might be more compactly written using compass bearings:

52.18,0.02EENENWWSES

That gives us a unique fingerprint for this route that actually means something. There will be occasions when we need to account for NW, NE, SW and SE - but those can also be represented as single letters - so it's a nice compact notation.

I should like to thank all the Fetchies who put some very thought-provoking comments on my last blog. I followed up flanker's suggestion, and have emailed my old university to see if they think it might be a good computer science project for someone. And I've been conversing with um over fmail about various different techniques - he's very helpful and knowledgeable.

Have a great weekend one and all.
Click here to suggest this blog for today's highlights.

Comments

  • Really interesting - my eldest son has just started at Uni doing GIS, so whilst he's still in his infancy in that subject I'm sure he'd be interested in where things go with this. And be careful not to let too much out in the open, this could be valuable IP one day!
    larkim
    4:12pm, 1st Mar 2019
  • All this sounds good. Can I check, the changes are all still in the pipeline and nothing visible on the production server yet?
    philip_m_jones
    4:15pm, 1st Mar 2019
  • @philip - nothing live yet - although I did check it against your seven runs, and it matched them all ;-)
    fetcheveryone
    4:16pm, 1st Mar 2019
  • Another suggestion to add: In the routes page, you've got a feature that snaps routes to roads. Could you do anything similar to clean the GPS traces up before generating the fingerprints? I'd imagine that this would help a lot for most marathon routes, but if there wasn't something to guess when a person was actually offroad then a lot of parkrun routes might get less accurate.
    dan_a
    4:58pm, 1st Mar 2019
  • Ian, 7 out of 7 gets a thumbs up.
    philip_m_jones
    5:10pm, 1st Mar 2019
  • Nice thought Dan. And now the mapping uses OSM vector data it should be possible to map to paths and tracks too, which would pick up most off-road runs. I guess the issue with it could be a amount of processing power.
    flanker
    5:13pm, 1st Mar 2019
  • I love geeky posts :)
    ishep
    5:15pm, 1st Mar 2019
  • Great post.
    chunkywizard
    5:55pm, 1st Mar 2019
  • Sounds ultimately like a job for machine learning, to try and make more tweaks of the ilk using floor() sometimes ceiling() others, that you can't naturally infer, but an algorithm might be able to looking at the data sets.
    Chrisull
    6:16pm, 1st Mar 2019
  • Why is there only 2 decimal points?
    Wriggling Snake
    6:25pm, 1st Mar 2019
  • Very interesting. Great blog and equally great comments (bar mine).
    FenlandRunner
    8:21pm, 1st Mar 2019
  • Pales into insignificance compared to the stuff above (which sounded very complicated) but could you have a look at this at some point.
    Training entries on my calendar appear in the order that they are input onto the site, and not in the time order that they show. Example is the 26th of Feb where I input the cycle first, and even though that is chronologically after the two cross-training entries, it shows first on the calendar. Minor issue, but a bit jarring to an OCD freak like me.

    "Just put them on in order then" I hear you shout. I usually do, but occasionally I mess up, so please devote hours of your time sorting this out so my calendar looks correct. Thanks very much :-)
    Dave W
    8:28am, 2nd Mar 2019
  • That's really interesting and easy to understand for someone like me who isn't terribly clued up on this programming stuff.
    RunnyBunny
    3:31pm, 2nd Mar 2019
  • Clever. I'll let you know whether it works on the Yorkshire Marathon in October!
    Markymarkmark
    2:55pm, 3rd Mar 2019
  • Please please don't make the notification bell flash again x
    Lizzie W
    11:03am, 14th Mar 2019

Keep me in the loop!

About Me

Pay no attention to the man behind the curtain.

Twitter

  • We are 12 listeners short of our weekly audience record 😬 Give us a listen if you haven’t before: https://t.co/Y0gGRIFYmi
    4:28pm, 26th May 2019
  • Listen to Episode 20 of the Fetcheveryone Podcast at https://t.co/uaLrBZG2Kc
    5:04pm, 24th May 2019
  • Thanks for recommending us :-) Give us a try @DeeringRob :-) https://t.co/avTIr6gjYh
    11:30am, 24th May 2019
  • Activate your 'natural metabolic multipliers' with the Meaningless Product Descriptions thread: https://t.co/SfSpYLHJaf
    10:40am, 23rd May 2019
  • Hi Fetchies. Site has been sluggish for the last 20 mins or so. It WASN'T our server this time, but a network probl… https://t.co/astcbvIHKh
    10:15am, 23rd May 2019
  • Dear @posistatus there seem to be some network problems right now. Our server looks fine.
    10:09am, 23rd May 2019
  • 5x800 with 3 min breaks this morning. Got a gnat in my eye. But otherwise, very pleased :-) Recorded my panting rec… https://t.co/9KLcLNfO3c
    4:48pm, 21st May 2019
  • BREAKING: Record 457,861#londonmarathon ballot applicants. With an estimated 17,000 ballot places available, odds a… https://t.co/xF9i53rm6W
    12:31pm, 21st May 2019
  • @ogeerunner Send me a feedback, let me know your old and new email, DOB, current account PIN number, and where you… https://t.co/dnIyVJD65e
    12:25pm, 19th May 2019
  • Time to plan your next race? Search our enormous listings here, and bung a couple of targets in your Fetch Race Por… https://t.co/Ry94Q7m35b
    11:31am, 19th May 2019

Help Fetcheveryone!

Use our Amazon link and we get a small commission on everything you buy.

Close