Last quarter

We are now three-quarters of the way through this year’s Advent Calendar Challenge – yet again we have Santa appearing for the first time before day 24. A quick glance reveals that 2014 was the last time Santa made it’s first appearance on Christmas Eve. The downside is no-one scored today, but that was kinda predictable! I didn’t make the calendar so it’s obviously out of my control!

A quick note on the matters raised in the previous post. On dummy/red-herring answers, I will think about this before the 2020 challenge further, maybe with some thinking-out-loud analysis: watch this space! On the other matter, on whether to hide guesses after day 18 or not, I have a compromise. The compromise was partially inspired when I was asked by a competitor privately if I would hide guesses or not. I replied I intended to leave things as they were (i.e. hidden after window 18) and that I would make the announcement in this blog post today. The competitor pointed out that I had just given them a possible advantage in that they could now take a copy of everyone’s guesses, knowing what was about to come. It got me thinking – whilst it’s a slight advantage only because everyone could take such a copy at any time, there’s a half-way approach between the two I asked you to choose between in the last post, and it is that approach that I have settled on.

So from now on*, guesses made after the opening of window 18 will be hidden. Guesses made before that point will not be. Trial basis, and we’ll see how it goes.

Six days left. Good luck everyone!

-* it’s not been implemented properly – the official rules pdf is pending update, and the censorship still applies on individual profile pages. Those will be fixed tomorrow!

History of guessing

At the end of this post, having stream-of-consciousness-style rambled about things for a few paragraphs, I’m going to invite readers to maybe prevent me making a rule change that I might regret, so do read on!

Long term players will remember how it used to be, of course, when it comes to guessing. Newer players might only know the way it is now. As I type, in 2019, players make their guess from a list of items that contains only those things that actually appear in the calendar. It has been this way for a few years, having evolved – the first time a list appeared was in 2013 and that contained 36 items, i.e. anything up to twelve (I can’t remember exactly how many) red herrings. This was decreased to 30 items (i.e. up to six red herrings) the next year, and then down to the current zero red herrings system in 2015. It has been that way ever since, and I am, broadly speaking, a fan. One stage I would like to take it to, and might well do for next year, is to include a single red herring – this would give everyone a choice to make on day 24; I think it is possibly a weakness of the system that anyone paying attention can gain themselves 24 points on the final day. That said, to do this might not be compatible with the next thing I’d like to turn my attention to, and this is the main point of this post.

Currently guesses are hidden from everyone – including the players that made them – after the 18th day. I reasoned that it didn’t matter if you didn’t know your own guess, as you could simply assess what you’d want it to be and submit it again. The reason the guesses were hidden in the first place was to prevent a situation where a player could secure a victory simply by matching the guess of the players behind them in the table rather than guessing “properly”. In the current days where everyone normally ends up on the same guess by the end anyway this is probably rather redundant, and in any case, if you have established a lead then maybe this could be seen as a reward for doing so? In any event it’s unlikely just one player (especially on the current scoring system) will be close behind and you can’t neutralise the guess of more than one player at once anyway…

So I guess I am giving provisional notice of two changes: (1) to be implemented this year: I am proposing that guesses are no longer hidden after day 18 as I assess that it is largely redundant to do so, and (2) to be implemented from 2020 onwards: to add one dummy item to the selection list to give players a choice to make on day 24.

There are surely side-effects to these choices that I haven’t thought through, so please leave comments (either for or against) if you have an opinion on the above. Much appreciated, thank you!

2019 windows

As stated in my previous post, I’m in a position to reveal what is behind the windows this year – just not which windows these items appear behind! In alphabetical order:

  •  bauble
  • bell
  • candy cane
  • carrot
  • christmas tree
  • cracker
  • gift
  • gingerbread man
  • glove
  • holly
  • ice skate
  • reindeer
  • robin
  • rocking horse
  • santa
  • shooting star
  • sleigh
  • snow globe
  • snowflake
  • snowman
  • stocking
  • sweets
  • woolly hat
  • wreath

Without wishing to be too revealing (there’s some things you should have to do yourself), I make that two new items, lots of old favourites, and a couple of weird ones. PINs should be coming out on Thursday, but I have a busy day that day so they might end up with you tomorrow night instead. Exciting times!

2019 update, and the history and future of the code that was broken

So the good news is I think it’s all back working. It’s hard I can’t be bothered to test fully without simulating a whole competition – I ask for everyone’s patience and to report anything weird to me so it be fixed immediately! The items in the drop-down list on the guess form ARE the items that appear in the year’s calendar, so you may start strategising now! Guesses will open in a few days, unless you want to go ahead and guess your new PIN 🙂

The various website systems being broken wasn’t a problem that wouldn’t have occurred back in the first running of competition – sixteen years ago (another one of those “wow, I feel old” moments) in 2003. The story is told on the 2003 page and goes something like this – I had a Boohbah Advent Calendar, bought for me by me, as I remember¹. I cannot think how that escalated into a competition to guess the pictures but evidently it did – I do however remember how it was run. The thirteen players comprised me, my eight closest neighbours at uni, a girlâ„¢, two of my family and randomly, a friends mum².

And it was a very manual process that year – those that lived in my block at uni could just tell me, and I would otherwise take guesses by phone and by email. I would manually update the website each day and them inform each player if they had scored. I would request guesses rather than leave them in place. I would update everyone on how it was going rather than just leave the onus on the players. I couldn’t last and it was the only year which operated this way. By 2004 the code that still largely (albeit tweaked) runs the website today was written, and I haven’t looked back since.

I was going to write about how the 2003 running panned out, but I’ll leave that for another time. The fact that the code remains largely that I wrote 15 years ago frustrates me a bit, but as I have previously written here – motivating myself to rewrite the code out-of-season is a bit of a push when it comes to motivating, and once it is the season I am using the site so feel less inclined to play with it. The solution is developing a new site alongside with a copy of all the data, obviously. I’ll try.

The site look remains that of my website at the time – which is essentially aping the F1 Digital service’s onscreen graphics (the service existed from 1996-2002 in various countries around the world, but only 2002 in the UK. These graphics existed towards the end of its life). Blues and yellows and greys – in fact here are a few screen grabs I’ve cobbled together from YouTube. Look familiar?

Screengrabs from F1 Digital in 2002 – lovingly known at the time as “Bernievision”

I’m slowly letting go of these but I want to let them go completely. I envisage a more Christmassy coloured site, but more importantly than the colour scheme I want to get away from the things it’s locking in. The “messages from competition control” for example. I am 100% convinced that I could show data items currently shown here in a better way, for example. I also want to overhaul the stats pages a bit and not having a “graphics template” to work to will, I hope, allow me greater freedoms.

Maybe next year then? We’ll see…

¹ I didn’t even know what a Boohbah was then, and frankly couldn’t explain very well if you asked me now! But that wasn’t important…
² A theme that went on to be repeated in future years, though for some reason they never seem to last!

2019

I recently moved house and that’s been a bit of a focus of late – it was only earlier this afternoon that I got to thinking how it was only a week to go and I should do the necessary behind-the-scenes bits to get the website into 2019 mode.

An aside – 20 November being “a week to go” is a statistic I’m interested in testing. Using the date of the first database entry each year, we get an idea of the launch date each year!

(data only exists from 2006 onwards)

Had to do a couple of tweaks to make the database query work – one year the competition carried on into the new year because of reasons, and other years robots click buttons in random months and record things in the database. But there we have it, and displayed another way:

Data correct as at 20 November 2019

In short, my assertion today that I am a week away seems to be bang on – 27 November is by far the most popular date for me to launch, and last year’s 28 was in the early hours making it reasonably likely I sent those emails late the day before too! I’m also interested to see that I have started the whole thing as early as EIGHT days away a couple of times – that just seems crazy to me now!

On to news about this year’s competition now and it isn’t great (for me at least) this year. This website’s host has upgraded its servers and as a result the code that powers the ACC is COMPLETELY broken. It’ll probably take a week to get going, and even then it may well be a bit of a bodge job just to get the basic functionality back without necessarily doing it well. That complete rewrite is needed more than ever!

But anyway let this be my pledge, in this election season, that in the next week I’ll devote my time to this whenever I can and the 2019 Advent Calendar Challenge will launch, on time, on 27 November. Possibly the 28th. Heck, even if the website can’t be made to work, I reckon we can work something more manual out…

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.

Recent Posts

Categories

GiottoPress by Enrique Chavez