Data, and some expected news

Expected news first: I haven’t found time to even start re-writing the site, so the creaky cobbled together version that has been in use since forever will be needed again – I’ll complete some tests to ensure it all still works in the next few days, ahead of a launch sometime in the last week of the month. I have also found to time to acquire the Advent Calendar and I now know what objects will be appearing this year. I might do a post to “unveil” them as if they were celebrities on a reality TV show over the weekend!

Here in the EU (technically still correct) a thing called GDPR came into effect in the last 12 months. I am not a data protection expert by any means but I hope I am sensitive to it. A friend for whom GDPR caused a considerable amount of work advises that I am all good and compliant here so that’s great, but it has got me thinking about what data I hold on all the players and if there are any issues as a result.

So all players willingly gave me their details in order to play – that’s important. I’ve never sent emails to non players, and if a player ignores their “welcome email” one year then they don’t receive another until they themselves ask to play again. I’m happy with this system especially as it is entirely manual – there’s no chance of this website sending rogue emails. At all.

Email addresses aren’t even stored in the website database – they are all in my Gmail contacts book. So yeah, in theory a breach at Google could cause problems, but I’d say that that problem wouldn’t be mine. But I think I could possibly do better with what data I do storeL I’ll explain. Here’s a snapshot of what I have for each player:

The two id numbers are assigned by the site for administrative reasons so don’t represent any meaningful personal data. Forename and surname though do, and it has always been a policy to change these upon request – hence why, for example, “Lord Byron” was a player last year. I’ve debated changing to online handles but I like the names thing – if you prefer your real names not to be used then get in touch and we can come up with a suitable alias!

Gender is stored and is essentially binary (the field stores either F, M or X) – its only use is for the news feed to determine whether  player has changed his/her/their guess. I think this is unnecessary data (albeit arguably harmless) to have stored and will remove that before the competition starts. Nationality is an odd one and dates back to the first couple of instances of the competition where the website, aping F1 on-screen graphics, displayed a player’s nationality. That’s all it did. Unless you played on those first few competitions the data held against you in that field will be blank in any case. Will definitely be removed for this year.

The final bit of data in the database is star-sign data for each player – this has long been the basis for a “teams championship” and I guess is somewhat traditional now. I really don’t know where I stand on this data – it would help narrow down a players date of birth to within a month but not any particular year. It absolutely does represent personal data and arguably data I don’t need too, but (based on the fact that it has to have been volunteered willingly) it’s data I think I can argue I need and I am happy to keep it. Obviously I can and will delete it on request – the site already handles the data not being present and so there’s no major dramas here.

The last thing I have a silly 200×200 profile picture for competitors, stored off database in a folder on the web server. These were brought in to make player profile pages a bit less intimidatingly statty, but otherwise serve no real purpose. They aren’t present for every player and are several years old for some. Ashamedly I think I acquired them without consent in many cases so I think I know what needs to be done here. They’ll be removed before the start of the competition this year.

If you have any opinions or worries regarding the data I have on you and how I use it, please do get in touch. 16 days to go!

2 months to go

There are two months to go until the first window of the 2018 Advent Calendar Challenge Advent Calendar is opened, and time to update you on things, I guess!

First up: if you have recently browsed into the homepage for any reason in this off-season you might have noticed a mild redesign – I started with the intention of trying to closely match the template this blog uses but it wasn’t as straight forward as it seemed… long-term I want to make it a bit more Christmassy looking – there is no mental template but I assume at this stage it’ll be purples and greens and reds and whites but we’ll see!

So anyway I got to the stage where I had mimicked the blog template slightly and this is what you see now, but then reason two for wanting a redesign came up – the code is not well written (it’s essentially the same code as I wrote for it in 2004 that has over the years had things bolted on as the need to came up). A ground-up rewrite is the order of the day I think, and so that is the task I will endeavour to undertake between now and the end of November. It’s been 15 years in the making though, so I wouldn’t hold your breath, but in the interests of progress I’ve taken a copy of the database for testing purposes. I’ll keep you informed!

The occasional hiccup

In what was an Advent Calendar Challenge first yesterday, I completely forgot to open the advent calendar before the end of the day. I say “first” – there have been other times when I’ve failed to open the window in time but that was emergency surgery related back in 2009, and, luckily, just before the end of the competition so it was reasonably easy to sort out.

I am currently on a whirlwind tour of my home county visiting various friends and family members for a sort-of early Christmas and yesterday was one of the busier days. My challenge obligations totally passed me by and it wasn’t until I woke in the night that I found a message from Andrew Chilcraft (regular player and 2013 champion) enquiring as to the status of the competition that I was able to rectify my mistake. I only partially did so – I failed to add the item to the list of opened windows which meant that the current standings table retained the position changes from the day before. Luckily, no-one scored on day 17 so the effects weren’t too pronounced…

The regulations state that the competition is automatically suspended if the window isn’t opened on time, but luckily it is not until the suspension has lasted 24 hours that special arrangements for the restart have to be made – I just about got away with it this time, but I realise this is probably not something I should repeat too often. My sincere apologies for this foul up – I won’t do it again!

Today’s window will be opened before the end of the day. On time. Like it’s meant to be. Let’s crack on!

Item Analysis

This has been long overdue (by which I mean both the thing this post talks about, and this post itself – in the case of the latter, all I can say is “December is busy!”) but I’m glad to get something up, finally, in a basic form at least.

Antony Brown, three times Advent Calendar Challenge Champion, once told me how he had analysed (back in the days when guesses were a free choice and not from a restricted list) likely items by frequency of appearance and when they most often appeared. I have no idea if he, or any other player, still does that kind of analysis but now we all can – it is a new table on the “stats” page!

To develop the table took a little bit of work – firstly I had to a bit of tidying of the historic item data. I had written “Christmas Tree” in four different ways it seems, but I have edited that (in the database at least) to be only one now. This was the case for a few items – I guess there is possibly scope for a whole new “calendar items” database table with unique item codes but that’s for another time. Once that was done (over 2 days during which I lost the progress I’d already made) it was pretty simple to knock together that table that now exists. It’s a bit ugly and the worst example of why table headers at the bottom is terrible, but gets the data across, for now.

Items that are in this year’s calendar are yellow – to get that to show was a bit of a bodge itself and I need to find a more elegant (read: automated, cascading) solution for the future but don’t read too much into it: whilst items already seen will alter the table, items not yet seen do not. Put another way, this database doesn’t in any way know what hasn’t happened yet.

It’s fun to see that the most frequent items have appeared more times that number of years this has been running – because of the fact more than one item can be behind a window sometimes! I want to add more analysis based on this table but for now this is all I’ve got!

See the new table here.

Edit: just noticed a bug. Grr. I’ll fix it tomorrow!

Honours Board

Something that has been missing through the ages (annoyingly so) is a go-to list of every Advent Calendar Challenge champion, so my task for the past couple of days has been to make one. I am pleased to announce it has now been launched and can be found here.

When I set out to make it I envisaged something akin to an honours board in a sports club – a list of years and winners. I was going to expand that to have winning team and best “rookie” alongside it too, so it would have been a simple row-with-three-names structure – but along the way things changed a bit. First off I decided it would be nice to make use of the profile pictures I hold for some players (click a player’s name to see them for anyone. If you want yours added, removed or updated then let me know!) so I decided to work those in. This immediately caused a more 2D approach to be taken, with the huge year number you see on the final version and names listed vertically within each year.

Secondly there has been one year where there was a three-way tie for the win as all three leading points scorers had exactly the same scoring days throughout so there was no way to separate them. I needed a way to be able to list multiple winners in this case so the ability to stretch vertically was necessary for this too. In the end I settled on the top three for each year, as top threes are often acknowledged in competition anyway.

(As an aside, I’ve always been annoyed that unbreakable ties are possible but at work today I came up with a way to finally break them that isn’t arbitrary. I’ll be making use of Article 2b of the official regulations and going back to do just that in due course…)

The other hurdle I encountered was that whilst players have a unique ID number that the website uses to track and reference them throughout, the teams championship system was a bit more rough and ready so I had to build and implement that almost in full for the “Honours Board” script to work properly. This was complicated only slightly more by the fact that the teams championship basis has changed a few times since its inception and I don’t hold data in the back-end of the website for who was in what team for the older iterations of it. It’s easily reconstructed from the static html tables on the history pages, however, should I desire to do that for the future (I could, however, retrospectively work out who’d win the starsign championship all the way back to the start, if I wanted…). The honours board script in any event doesn’t add up the scores for every year manually every time, there’s a separate database table with final points and finishing positions stored in it so a simple lookup rather than lots of maths is all that is required.

So in the end after a few niggly bits of coding we end up with rather a simple page – huge year number, and a picture of the individual winner (or, for now, one of them at random where there was a tie) and the year’s top three, best rookie and winning team. Where the individual, team or debutante score record was broken that year, that is shown too (WR, TR or RB) along with a small label if that person or team was winning for more than the first time.


There two types of players that exist (passive and OMGILOVEIT, in case you are wondering) in the Advent Calendar Challenge and I am asked regularly by players of both types why I haven’t written a mobile app for it yet. “Think of the benefits”, they’ll both say, and – well – they are right. Something that formats correctly on a mobile device, that remembers your logins, that sends a notification whenever you score or whenever anyone scores – it’d be great.

It’s not going to happen.

For a start, the number of hours experience I have with app development is equal to the number of hours I have spent in space. Granted – I have coded a thing or two in a variety of programming languages over the years (I once was employed doing something vaguely similar) and I’ll probably be able to pick things up, in a rudimentary way at least. But look back at the previous post – less than 50 people play this game every year. There will be a substantial phone-type split within those. I’d have to code at least two apps for 50 people to use 24 days a year. It would be a massive waste of time, even though it would be great. Sorry, it’s just not going to happen.

A better functioning mobile site is a more reasonable expectation and one on which I plan to deliver – just as soon as the long promised site overhaul takes place. I’ve been promising that since 2010 without any progress but it’s definitely on the cards, hopefully in time for next year. It’s just hard to motivate myself to overhaul a Christmas website when it isn’t the season, but it has to be done then as during the season I very much need the site…

But back to the notifications thing. Many cite the lack of such a thing as a reason for their lack of success – they set their guess at the start and never remember to come back. An automatic email is often requested as if it’d be the easiest thing for me to implement (it may well be) but I can offer a suite of solutions, as long as you are prepared to think outside the box a little 🙂

The easiest way I can think of, and one I use myself, is Twitter. If you follow @AdventCC, you will find score, window opening, blog post and ad-hoc updates are tweeted automatically every day (I stripped out guess change updates this year for boring behind the scenes reasons), and within twitter you have the option to turn on ‘Notifications’ on an account-by-account basis. If you enable these for @AdventCC you will get a push notification and/or (if you have set it up) an SMS every time something happens. There might be an equivalent function within Facebook but as I don’t use it I cannot advise. If email is more your thing, give a look – this website (literally if-this-then-that) will perform certain actions when specified triggers occur. Armed with the ACC twitter or RSS feed I’m sure you’ll be able to find a service that will send you an email in there.

So nothing native within the competition website itself, but if you try hard enough there is always a way. Enjoy your notifications however you want them, if you want them – and not a minute wasted by me 🙂

Welcome, about and player numbers

Welcome to the optimistically titled “more depth” section of the Advent Calendar Challenge website. I’ve been hoping to add more content (and/or redesign the whole website) for ages now and I’ve come to the conclusion that a “blog” of sorts is how is to get things moving. I will aim to post every couple of days with an article that either examines statsitics, details an aspect of the history of the competition or explains what on earth is going on. Lets see how long it lasts!

As it’s day 1, I am minded to cast my eye over player numbers over time. I’m told this should be a line graph but it took me ages to get the charts script working as a stacked bar chart and so that it remains!

After a rapid early growth, the graph shows a steady decline is setting in – only once (2012, perhaps an Olympics hangover? Probably not…) have the player numbers topped 50. This year, at the time of writing, 44 players are signed up, comprised of 40 returning players and 4 new players. New players, by the way, are a statistic that varies apparently randomly:

I am not concerned by the wane in player numbers, as yet. Firstly, as it goes it isn’t a significant one. The rules of the competition almost arbitrarily set the minimum number of players as 12, which we are nowhere near (I can’t remember exactly, but I am fairly sure I originally chose 12 as that was the number of players who survived* the first edition, and so that became the benchmark). Secondly I am happy to keep the competition to people I know and their trusted friends, and of that field only the subset who want to play – the overall number might shrink but overall, there’s still a good few people who want to play. Frankly, I won’t be concerned until we only get 11 players one year…

The number of players each year graph is new and now updating live on the statistics page. See, this blog has done some good already 🙂

* thirteen played, but one was disqualified

Recent Posts


GiottoPress by Enrique Chavez