Hi ,
It looks like you're using an ad blocker, which is understandable if you don't like ads. Who does really? However, our site is free for you to use because of a mixture of adverts and voluntary donations from users. Please consider enabling ads for our website, or making a voluntary donation.
Ian Williams - Fetcheveryone
12 Apr 2019

Fix It Friday: Back to Basics

11:40am | 454 views | 7 Comments
This is a Fix It Friday blog in name only, because I've not done much fixing on the site this week. A sore throat on Friday was shivers on Saturday, razor blades on Sunday, a cough on Monday, wiped out on Tuesday, sinuses on Wednesday, and has finally resolved into some sort of phlegm Rubik's cube which I am working on at the moment. But I am mostly fixed :-)

Instead, I thought I'd share this week's list of the folks who have made voluntary donations to support the upkeep of the site. They get to enjoy the site without the annoying Google ads (Profile > Settings), and they get that illustrious gold background on their user profile ;-) If you're using the site for free, these lovely people helped make that happen.

Tony W
nenevalleyharrier rjonesy
Sweaty Frank

Here's the link for info on how to support the site. The average donation is about £3.50 a month, which is less than the cost of a supermarket running magazine, and hopefully much more useful. Just saying :-)

Click here to suggest this blog for today's highlights.


  • Yes, definitely much more useful.

    Far fewer recipes and pictures of kit that makes you exclaim, "How much ?!" on this site.
    Albert O Balsam
    11:49am, 12th Apr 2019
  • Quite right. Fix fetcheveryone before fetcheveryone.com. We're some way away before the technology will be fixing the humans. At the moment it's still the humans who have to fix the technology. So get yourself fully fixed first!

    I do think Fix-It Friday needs renaming to Fabulous Future Feature Friday because most of what you do is enhance and embellish. There ain't much that's "broken" in Fetchland. Some of the Fetchies maybe... but... ;-) Happy Friday young man. :-) G
    11:50am, 12th Apr 2019
  • ^^^ wot he said
    12:19pm, 12th Apr 2019
  • Pleased you are on the mend.
    Watford Wobble
    12:41pm, 12th Apr 2019
  • I'm full of cold, managed to stumble to the start line of a 5 mile race on Wednesday, using my vest as a snot rag. Outcome: PB. Moral of this story is to get entered in a race before you recover fully.
    1:25pm, 12th Apr 2019
  • Hope your phlegm is fixed soon. 😁
    6:10pm, 12th Apr 2019
  • Get well soon.
    4:29am, 13th Apr 2019

Keep me in the loop!

09 Apr 2019

Podcast Poll

7:47pm | 545 views | 19 Comments
Click a button below to leave your vote, and then leave us a comment if you’ve got anything to add. Constructive suggestions for improvement / content very welcome. Listen to the podcast here: fetcheveryone.com/podcast

Click here to suggest this blog for today's highlights.


  • I'm two or three weeks behind because I only listen in the car and I've not been on the road much recently. Very enjoyable though. Top notch Fetchery.
    8:14pm, 9th Apr 2019
  • I'm really enjoying hearing from the other Fetchies (as well as you two, obvs!). I think the one thing that's missing is a theme tune.
    8:50pm, 9th Apr 2019
  • I love it but haven't formed a habit yet. Keep getting behind!
    8:53pm, 9th Apr 2019
  • I haven't because I don't use podcasts- I don't have iTunes or Spotify (use Amazon music or old fashioned radio!). I'm sure I could download an app and then listen in the car via Bluetooth but I've just not got around to it! Perhaps i should try...
    8:56pm, 9th Apr 2019
  • There's also a play button alongside each episode if you go through to fetcheveryone.com/podcast - so you don't *have* to have any extra apps on your phone to listen (although they make it more convenient)
    8:58pm, 9th Apr 2019
  • Not much of a podcast person myself. Once a month would be enough for me. Can imagine it might seem a bit cliquey to someone new to Fetch.
    9:22pm, 9th Apr 2019
  • I’ve got a huge backlog of ones I need to listen to, so afraid the ones I *want* to listen to don’t get airtime. If I end up commuting again that may change...
    9:31pm, 9th Apr 2019
  • I don’t really do podcasts to be honest. Saying that they might be worth investigating and Fetch would be a good start 😊
    9:32pm, 9th Apr 2019
  • I love podcasts and enjoy the fetch one, it’s very cosy :)
    The Mighty Fleecy
    9:46pm, 9th Apr 2019
  • Heard them all but mostly over 2 or 3 attempts in the car. Can't think of any improvements offhand but do enjoy them.
    Fenland Flier
    9:58pm, 9th Apr 2019
  • I've just downloaded an app and the 14 back issues... give me a few days and I'll be up to date :-)
    10:32pm, 9th Apr 2019
  • Enjoying them, but I'm a few weeks behind.
    6:56am, 10th Apr 2019
  • You're keeping me company on Tuesday lunchtime walks. I love hearing from other Fetchies and you picking out a blog post and thread.
    The Scribbler
    8:31am, 10th Apr 2019
  • That's surprising with the "don't know how to"s - Could we perhaps do a "pinned post" of some sort to explain how to access podcasts (I don't just mean where it is, but how to listen on your phone, tablet or PC etc.) for those who are new to such things? :-) G
    11:22am, 10th Apr 2019
  • Enjoying the podcast. I listen via Overcast but can’t work out how to leave a review there. Any ideas?
    12:24pm, 10th Apr 2019
  • Do a podcast on how to listen to podcasts?
    12:36pm, 10th Apr 2019
  • I enjoyed the couple that I listened to. I think these could be a great regular feature, but variety would be the thing that would keep interest levels high.
    Northern Exile
    2:09pm, 10th Apr 2019
  • I have listened on my Chromebook using the buzzsprout thingy. Yours is the only podcast I've ever listened to more than one of :-) I don't listen on my phone, because if I listen to anything on that device it's my choir's teach-tracks. I've never really got into podcasts while walking the dog - I like to hear the birds and stuff.
    2:13pm, 10th Apr 2019
  • Waiting to resume my commute after Easter to be able to cwtch up ;-)
    7:44pm, 11th Apr 2019

Keep me in the loop!

05 Apr 2019

Fix It Friday: The League Of Everyone

10:52am | 466 views | 14 Comments
Still got a bit of DOMS going on, three days later :-) And picked up a bit of a tickle in my throat that will hopefully turn out to be nothing, although if I didn't have to try too hard at Sandy 10 that would be no bad thing. But let's see how it pans out :-)

The stuff I did last week on optimising database queries (bear with me, this one should be a bit less nerdy) is always a great way to find a part of the site that needs reinvigorating or refreshing.

This time round, it spat me out on our league tables - specifically the ones that delve into our race listings and show you who's fastest and (for the rest of us) how far up that list we've managed to clamber.

There are several different variants that I wanted to bring into one place.

Previously, when you clicked 'Rankings' (now called 'Leagues', just to stir things up), it would show you a bunch of tables indicating who had run the fastest in the last 7 days, month, three months etc.

It was (a) VERY slow to load, (b) pretty fugly, and (c) not exactly inspiring for anyone but the folks who had a chance of getting listed. If you clicked any of those tiny text links in the red box at the top, you'd get to this next page.

This was a bit better, in that it would attempt to put you on the relevant page to show you your position - but it would often get that wrong. And those drop-down boxes don't exactly pop out at you, do they?

Further to that, there's also an over-50's league, and probably several other minor variants that I've probably uploaded and allowed to get a bit overgrown. So my goal was to try to bring these all together in one place, and to make it intuitive and quick to load.

The result all comes together here: fetcheveryone.com/league

Here's a screen grab of the mobile version:

And here are my workings :-)

1) First up, the page should load much faster. The league data is updated once a day, so unless you get unlucky and hit the page at the point where it needs to regenerate the data, you should get a more reasonable experience. There's a bit of code that runs overnight that will automatically regenerate the heftier bits of content (like if you tick 'All' for everything) to protect us against slow pages.

2) I wanted to get you folks playing with this, so I've hopefully made the buttons and different league options look clickable, enticing and easy to understand. This does mean that I've simplified a few things (for example the old version allowed you to specify any age, not just a five year category). Those of you who miss this - all the parameters are in the URL, so you can tweak them there if you're desperate :-)

3) If you're a registered Fetchie, and have supplied a DOB, the system will pre-select a relevant age category to show you. Likewise, if you've chosen a gender, it will pre-populate it. On this last point, I'm always open to making sure that our gender system doesn't make anyone feel bad - so if you've got any suggestions for improvements, please let me know. What these pre-selections also do is to reduce the amount of data you see when you first load the page, which should contribute to a faster experience.

4) If you're listed on the table (once you've mucked around with the filters), there's a bit at the bottom of the red box that will show you your current position in that table. And hopefully the relevant page of the table will be displayed.

5) The table itself is not especially different to the old league table, but there is a note for mobile users. To cope with limited screen width, I've hidden age categories and WAVA scores when you're in portrait mode. But if you put your phone on its side, you should see these columns.

6) And finally... some of you will be looking at your own page, and comparing it to my screenshots, and saying "hold on, mine is plastered with adverts". If you've taken out a voluntary subscription to Fetch, you can turn them off at Profile > Settings - I've no issues at all with you doing that, and it makes the whole site a lot nicer to use. And if you've not taken out a voluntary subscription, how about now? Here's the link: fetcheveryone.com/invite.php

Have a great weekend everyone. Katie and I are timekeepers at Great Denham parkrun on Saturday morning, and then (fingers crossed) heading to Sandy 10 on Sunday morning. If you're doing any sort of race at all, get it in your Fetch Race Portfolio, and start climbing these tables!
Click here to suggest this blog for today's highlights.


  • A great improvement, already had a delve. Good luck for Sunday!
    10:55am, 5th Apr 2019
  • Nice and easy to use, I like it :-)
    K5 Gus
    11:08am, 5th Apr 2019
  • I'd like to point out to subsequent blog commenters that I spotted a couple of issues with the display of blog highlights earlier this week & Fetchipoos sorted it out there and then, invisibly to site users. Now that's service :-)
    11:24am, 5th Apr 2019
  • Already seen it, and like it.
    11:29am, 5th Apr 2019
  • Saw this yesterday and had a play. I like. Keep up the great work and enjoy the weekend!
    12:03pm, 5th Apr 2019
  • Ooo now I like the sound of this....I'm off to have a look
    12:46pm, 5th Apr 2019
  • This is hugely better! I don't necessarily want to compare myself only with the default group, but it's easy to change.
    3:49pm, 5th Apr 2019
  • I'm fully gratified.
    Cog Noscensme AHA
    4:42pm, 5th Apr 2019
  • Nice coding. Sadly, mine says "You are not listed on this table". Any of them! :-(
    9:49pm, 5th Apr 2019
  • Needs to pick up track distances (sprints, middle distance and those in metres). I presume free text search box would defeat the objective of the change?
    10:56am, 6th Apr 2019
  • Some of my PB races are not listed despite showing on my profile.
    2:18pm, 8th Apr 2019
  • Examples? :-)
    2:26pm, 8th Apr 2019
  • fetcheveryone.com/t-13059527 I don't appear to have any 10 mile races in the rankings but this one is listed under Race Times on my profile.
    Also my 2017 half PB is missing fetcheveryone.com/t-13059527
    3:13pm, 8th Apr 2019
  • Ah, my bad. I had set the period to all but not the age category! I was younger when I set those PBs, forgot I'm getting old(er)!
    10:47am, 11th Apr 2019

Keep me in the loop!

04 Apr 2019

Dom, dom, dom, I've got DOMS, I've got DOMS!

2:14pm | 208 views | 4 Comments
Hamstrings, glutes, and miscellaneous parts of my back are still rather unhappy with me about the rugby session on Tuesday. It was always the same on the first net session of the new cricket season. Two days of groaning every time I did anything. But it gets better. As my dad says, that ten mile race you're doing this weekend should blow the cobwebs away B-)

Joining the #fetchfam this week, are some lovely new donators:

Top Duffer
X-Ray Specs

They each get a shiny gold background, the option to turn off the Google Ads (Profile > Settings), and legendary status as supporters of Fetcheveryone!

Back on Fetch Independence Day, I wrote a blog about what it means to me to have your support, AND why it's necessary. Take a look: fetcheveryone.com/blog/3/2018/12#blog387839

hammersaber just because.
Click here to suggest this blog for today's highlights.


  • :-)
    3:02pm, 4th Apr 2019
  • All lightsabers crossed today. Esp Hammers ones.
    3:59pm, 4th Apr 2019
  • I find that with rugby too, especially my knees and calves, I always blame the running on grass for them.
    4:35pm, 4th Apr 2019
  • ❤️
    12:52pm, 5th Apr 2019

Keep me in the loop!

03 Apr 2019

Crouch, Touch, Pause.... longer pause... what am I doing again?

10:57am | 355 views | 15 Comments
I made it to my first ever session of Touch Rugby yesterday :-)

I was excited about it when I first decided to get involved, and then when the time was approaching, I was starting to feel a bit nervous about the whole thing.

I remember as a kid, my dad would drive me to cricket practice - and there was one particular turning on the route where my butterflies would kick in. I guess this was similar. From a few hundred yards away, I could see that the floodlights were on, removing any last minute reprieve that it was maybe cancelled, or I'd got the dates wrong :-)

In the car park, I recorded a little bit for the podcast, and then gave myself a bit of a talking to, before heading across to the field.

The first couple of people I spoke to were very friendly, and made me feel a bit more relaxed, although my insides were still jangling :-) Luckily, I had the right sort of boots from the 'dads tournament' at The Boy's football club a couple of years back.

We walked onto the pitch at 8, and the other players paired up, and were chucking balls back and forth, and generally giving the impression that they all knew each other for decades. It's weird how that happens, isn't it? Over the course of the session, I discovered that some had only been members for weeks or months.

Eventually, one of the chaps I initially spoke to chucked the ball to me, and we shared a few passes. This went ok, although everyone seemed able to throw about twice as far as me. When the bloke got too far away, I tried kicking it to him, and sliced it to the tune of about 90 degrees. To his credit, he didn't bat an eyelid :-)

The coach gathered us all, and we did a warm up lap of the pitch. At last, something I can do! We stopped and did some stretching (which is not normally my thing, but I wasn't about to sit it out).

Our first drill involved the group standing on the corners of a square. The first player ran from one corner to the next with the ball. A second player follows him (it's a mixed sport, but it was all blokes at this session). On arriving at the corner, you touch the player standing there, and deposit the ball on the floor between your feet, and walk over it. The receiving player picks the ball up, and 'pops' it up for the second runner, who continues on to the next corner of the square. The person who has just popped the ball becomes the follow-up runner. This continues, increasingly frenetically, round and round the square until either someone drops the ball, or forgets what to do. It was reassuring to see other players still having trouble wrapping their heads round this. There's other stuff to think about too - like if you're aiming for the left hand side of the defender, you're encouraged to hold the ball in your left hand, using your right hand to make sure that the 'touch' is on your terms. And vice-versa.

I think I've got that sorted in my head now. But at the time, it felt like my brain was cooking. And no doubt next week it'll be a different drill :-)

After that, we moved on to three- and four-man drives.

Both of these are playing moves designed to help your team progress towards the try line. Touch is closer to rugby league than rugby union, in that once your team has been touched six times, the ball is given to the opposition. So making good progress during your six phases is important.

The first player in the three man drive is the ball carrier. They run at the defender, and when the touch happens, they put the ball on the floor and step over it. Backing up the ball carrier is the 'dummy half' - their job is to get to the ball almost instantaneously, and distribute it to the third man (who needs to be yelling at the dummy half to communicate which side they're coming up on). The third man then becomes the ball carrier; the original ball carrier becomes the dummy half; and the original dummy half becomes the third man.

Whilst all this is happening, the defender also has to work fast. As soon as the touch happens, all the defenders have to be five metres behind the point of contact. So there's A LOT of rapid back-pedalling. The attacking team will often focus the drive on one defender, forcing them to do the most work, in the hope that they can tire him out, and either get a penalty from an offside touch, or else create a gap in the defensive line by running past him. The defence can counter this by cwching up a bit to close that gap, but in turn that creates space out wide.

The four man drive is similar, but with two supporting runners. In this case, calling for the ball from the supporting runners is key, so that the dummy half knows which side to pop the pass before they've got down to pick the ball up. There's a lot of yelling, and (for me at least) a huge confusion of bodies weaving in and out. It's so frustrating to get it wrong, partly because it's hard to feel like you're letting the other players down.

The best part of the session was the ten minutes where we got to play under game conditions. The coach was encouraging us to practice lots of these drives, but there was also a bit of freer play too. There are lots of rules and things that happen that I still don't understand yet, but I finished with a bit of a sweat on.

I spoke to a few more of the squad during, and at the end - and there was lots of encouragement, and a hell of a lot of patience. I've been invited to go to a boot camp with a few of them - but my evening time are either (a) precious time with Katie, or (b) precious time with my boy - so I think I'll leave that for now. But it was nice to be invited.

My brain was utterly fried by the end. I think most of my pre-session worries were about fitting in, and about meeting new people; but I totally didn't anticipate just how technical the session would be. Having been running for 15 years now, a lot of it is about not thinking at all - so to throw myself into something like this was a total headf**k. But I enjoyed it :-)

I've ordered an instruction book from Amazon amzn.to so I hope that I might be able to fill in some gaps, and reinforce some learning over the next few weeks. Ace :-)
Click here to suggest this blog for today's highlights.


  • Sounds complicated but good fun, hope you can keep it up
    11:05am, 3rd Apr 2019
  • Ooh, rugby study. Now that's my kind of academia! Nice one. And well done for trying something new. I think I'd be pretty nervous too. :-) G
    11:28am, 3rd Apr 2019
  • My brain was fried just reading the description..... :-)
    The reason I run is because I'm can't throw for toffee and I'm a a terrible catch!
    11:39am, 3rd Apr 2019
  • That's a lot more complicated than I thought it would be! Glad you enjoyed it.
    12:58pm, 3rd Apr 2019
  • Very cool report. It is so good to involve yourself in something you 'really' like but is daunting to actually DO. So much of this resonates with my athletics exploits - the apprehension, the newness and initial brain overload, the technicalities, the fun and friendliness... and the sense of enjoyment and achievement. star
    12:59pm, 3rd Apr 2019
  • Nice one. We used to play in a summer Touch League when we lived in Aberdeen. As you say, mixed teams and quite a lot like RL in many ways.

    I did a Level1 rugby strength & conditioning course at the weekend. It was great fun too. :)
    Angus Clydesdale
    12:59pm, 3rd Apr 2019
  • Sounds like fun, albeit technical fun. (Goes off to google local touch rugby for the aged clubs)
    Eynsham Red
    1:03pm, 3rd Apr 2019
  • Well done Fetch - that sounds like really good fun in a slightly terrifying way :-)
    1:09pm, 3rd Apr 2019
  • Scottish Fetchies: scottishrugby.org
    Angus Clydesdale
    1:11pm, 3rd Apr 2019
  • Cripes that sounds complicated. Well done but I'm sure I couldn't have understood what the 'eck to do. Keep it up.
    Watford Wobble
    1:21pm, 3rd Apr 2019
  • No warm down with a pint or few?
    1:27pm, 3rd Apr 2019
  • *proud face* overcoming fear is most excellent. greensaber
    1:54pm, 3rd Apr 2019
  • Sounds a lot like what your average u-11s rugby league team would do in training :-)
    3:31pm, 3rd Apr 2019
  • V complex....
    9:49pm, 3rd Apr 2019
  • Fab! As you were describing it I was thinking ‘sounds like rugby league’.
    9:58am, 4th Apr 2019

Keep me in the loop!

02 Apr 2019

Training Log - Update

1:09pm | 331 views | 10 Comments
I put some training log updates live yesterday, and so far, the feedback has been good, but I just wanted to run through some of the stuff you should look out for.

Here's the desktop view (old log on the left, new on the right. Click it to see a slightly bigger version):

and here's the mobile view (old on left):

Here's a list of things to note:

1) The old version showed your month totals permanently. Some people like this (because it's nice to see whether you've beaten last year's April for example), some don't (because they have to scroll a long way to get to the actual training entries). The new version has a 'Show Month Totals' button. The log remembers your choice. You can toggle it off and on. The power is in your hands :-) Also worth noting... on the old version, you could switch between seeing your running/swimming/biking etc totals for ALL years, or you could just see the totals for the current year. This used to be in a little dropdown box to the left of the monthly column headers - but again this was something that was easily missed. I've turned those options into buttons now, that appear when your monthly totals are showing.

2) The 'Import Training' and 'Add Manually' buttons have been smushed together into one nice bright green 'Add Training' button. Click that, and it brings up all the options.

3) On the old version, the settings were accessible via the little grey cog next to the words 'Your Training Log'. Soooooooo many of you missed that, I'm not even joking. Now there's a 'Settings' button. Please tell me you can see it :-) I've also added some extra stuff in there, moving towards the goal of having all your training settings accessible from here. Additions include the option to edit your category list, and a link to adjust your pace thresholds (aka colour bands). You still have to go to your user profile to change some other settings (like resting heart rate), but I'm working on it.

4) The date selector on the old log was buried down below the monthly totals. And it may not have been abundantly clear that it was clickable. Now it's right up at the top; it looks a lot more like a button; and there's even the word 'Edit' there, just in case there was any doubt.

5) Likewise, you used to be able to filter your training by clicking the 'Show All Training' dropdown, and picking something like "Races", or "Long Run". Again, it was a little bit buried. It's now up at the top, in a button called 'Filters'. What's more, if you click that, not only can you specify a category, now you can also specify a min and max distance to filter your entries. I will look at adding more ways to filter - leave a comment if you'd like to see any specific ones. When you add a filter, it appears in pale yellow in the header - and you can dismiss them by clicking the little red cross.

6) There are some minor cosmetic changes too. The tabs (entries, calendar, graphs etc) look a bit more like tabs now, and they no longer have little icons on mobile (fewer items to download over a mobile connection).

7) There are also some minor bug fixes. Notably, if you switch to the 'Map' view to see your circles, you used to have to reload the page to make them appear. That should be working better now.

Here's a link to your log:

Go take a look, and let me know how you get on with the new version. As always, all suggestions welcome :-)
Click here to suggest this blog for today's highlights.


  • I've got the hang of it now, thanks.
    Wriggling Snake
    1:12pm, 2nd Apr 2019
  • It's intuitive, because I automatically just clicked on "April (edit") to find the date or range I wanted.

    Whilst you've got the bonnet up, on 1st of a month, could the log show the previous month still please? Or until first training is entered? Or a rolling month or something? Or my poor log looks very empty on 1st of month and I *always* have to click prev month (this is not new, 'twas ever thus!) :-) G
    1:17pm, 2nd Apr 2019
  • HappyG - click 'Settings' and untick 'default to current month' - you'll get the last 30 days.
    1:18pm, 2nd Apr 2019
  • Thanks Ian - any chance of including elevation gain in the detail list - and the export?

    Also, while in hotels with veeerrrryyyy sssllloooowww internet for the last few weeks, I noticed the log page had to display all the years, then clear to just 2019. And was taking 5 - 10 mins ... looks like you've removed that initial pass through now?
    1:25pm, 2nd Apr 2019
  • The drop down next to Date where you choose what you want in the right hand columns ( speedmarks, route, kit, etc ) doesn't look right when it's next to word "Date" - it looks like it's something to do with the Date. Not new, was like this before. Not sure where you should put it though, ideally it would go over on the right somewhere, above where that data would show ?
    For filter options, would it be possible to filter by Kit, so you could see all runs done in a certain pair of shoes ( asking again here, since I never got the break down by kit on the monthly summary when I asked there ;-) )
    K5 Gus
    1:26pm, 2nd Apr 2019
  • I want a clone of you Fetch to come and fix the computer system I use at work. 🙁
    Fragile Do Not Bend
    2:50pm, 2nd Apr 2019
  • I like it. Thank you x
    6:16pm, 2nd Apr 2019
  • Like it lots!

    One thing, and it may have been there before, when I have it set to Entries, then choose All for the Filter, each line of the entries grows slowly and ends up taking almost half the screen height on desktop. Chrome on mac for web browser.
    12:14am, 3rd Apr 2019
  • Fetch, that is fab - Settings, untick Default to Current Month. (Has this always been here and I missed it or did you magic it up right here and now?! Wowsers - Agile in Action! I agree with JCB. You should come and earn some of the multiple millions of £££ in the projects that PWC, Accenture and all the usual suspects are creaming off our company!) :-) G
    8:32am, 3rd Apr 2019
  • Hi, I thought I should come back here with my tail between my legs. I actually really like these changes to the training log and they do improve it. For me the key think is it looks ,fells and works better and all of the things I used to like are still available without me having to re-learn which was my initial worry based on previous changes.
    8:43am, 4th Apr 2019

Keep me in the loop!

01 Apr 2019

Site Update: New Font

11:54am | 403 views | 22 Comments
How do you like the new font, folks? Comic Sans has a bit of a bad reputation, but it's staging a bit of a comeback.
Click here to suggest this blog for today's highlights.


  • What a foolish thing to do!
    11:57am, 1st Apr 2019
  • I thought it was my laptop having a funny turn! I'm not sure whether I like it or not but will give myself chance to get used to it.
    11:57am, 1st Apr 2019
  • you took your time! 11:54!
    11:58am, 1st Apr 2019
  • I quite like it! :)
    11:58am, 1st Apr 2019
  • Please make it stop.
    11:58am, 1st Apr 2019
  • Just in time is better than too late, I suppose ...
    11:58am, 1st Apr 2019
  • No, no, no.
    Wriggling Snake
    11:59am, 1st Apr 2019
  • I'm seriously rethinking the donations Mister!
    12:01pm, 1st Apr 2019
  • Just f-mailed you. Comic Sans? During my teaching career, I can't recall it being 'easier' to read to any degree - so, it's a 'No, thanks' from me. :)
    12:02pm, 1st Apr 2019
  • You don’t get comic sans on iPhone but whatever it replaced it with is much better than site default, please keep it :)
    12:04pm, 1st Apr 2019
  • I love it!
    12:05pm, 1st Apr 2019
  • Ten minutes of that was about all I could stand :-) Happy April Fools Day :-)
    12:05pm, 1st Apr 2019
  • Hurrah! Back to the usual!
    12:06pm, 1st Apr 2019
  • I must have missed it?
    12:15pm, 1st Apr 2019
  • I assumed it was a glitch (was on my works PC, which is a rarity, but it was fine on my phone) - didn’t make the connection with the date. Thank goodness normality has been restored!
    12:25pm, 1st Apr 2019
  • Boo - I missed it :-)
    Elsie Too
    12:37pm, 1st Apr 2019
  • I was so incensed I went out and ran 8 miles, not only that it contained 6*1k all at increasing pace.
    Wriggling Snake
    1:54pm, 1st Apr 2019
  • I missed it. Shame. You should do a different random font on the first of each month!
    2:40pm, 1st Apr 2019
  • I missed it too.... it was a rare hour where I wasn't spending all of my time on this site :-o
    2:55pm, 1st Apr 2019
  • I missed it too! 😂
    6:45pm, 1st Apr 2019
  • :-)
    8:56pm, 1st Apr 2019
  • Sexy
    9:21am, 2nd Apr 2019

Keep me in the loop!

29 Mar 2019

Fix It Friday: An Endless Mission

4:09pm | 484 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.

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

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):

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.

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.


  • I find all this stuff fascinating. I think you are very clever.
    4:14pm, 29th Mar 2019
  • I have no idea why my comment is in italics, I didn't add any formatting.
    4:15pm, 29th Mar 2019
  • And now it's not and I look even more stupid than normal :-)
    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.
    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
    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
    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.
    4:23pm, 29th Mar 2019
  • You lost me ages ago but I still think it’s all amazing .....
    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!
    5:05pm, 29th Mar 2019
  • Edit: not the title, the first line.
    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 :-)
    6:24pm, 29th Mar 2019
  • Me too :)
    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?
    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.
    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.
    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...
    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....
    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.
    8:27pm, 31st Mar 2019

Keep me in the loop!

About Me

Pay no attention to the man behind the curtain.


Help Fetcheveryone!

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