Copyright 2017-2018 Jason Ross, All Rights Reserved

A single goat
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

The Original Simulation

In The Monty Hall Problem – A Simulation In JavaScript we wrote a simulation for the Monty Hall Problem. The simulation consisted of two separate iterations through some JavaScript code that recorded the results of the competitor either changing their selection, or keeping their original choice, respectively.

Looking again at this, the idea of there being two iterations through the same code seemed a little excessive and made me start to idly wonder: could this be done in one iteration? This might make the simulation faster, although it would need to be timed to make sure of this, and it doesn’t take long to run anyway. It might improve the integrity of the simulation though. After all, what if something happens during those two iterations so that the odds involved in the second iteration change? It’s not likely but it’s just about possible – maybe the random number generator has a bug or some other strange side effect occurs, and then we can’t be sure what would happen.

If we could get all the information we need from a single game that should eliminate this possibility.

The Monty Hall Problem - It can really get your goat!

User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active

The Problem

You are a contestant on a game show, and are allowed to select one of three doors. Behind one of the doors there is a car that you can win, and behind the other two doors are goats (You don’t get to keep the goats!). You choose a door and then the host, who knows what is behind every door, opens another door to reveal a goat. You are then given the chance to change your selection to the remaining door.

Should you stick with your original selection, or choose the other door instead?

Sometimes weird data sneaks up on your system and you don't see it until it's too late.
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Nobody likes work-related phone calls in the early hours of the morning; they have a nasty tendency to ruin your day, if not your weekend, and even worse they’re usually avoidable. The most avoidable of all are those caused by import data being, for want of a better word, garbage.

In the early days of a system things might work fairly well – the system has been developed to handle the data formats described in the “Data Transfer Specification” - but it doesn’t take long before things seem to go downhill quickly. Comparing the data you’re receiving to the specification, you’ll often discover that the description in the specification and the actual data your system receives are getting further and further apart. What should you do?

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

After a lot of persuasion and, frankly, nagging from all of us, my wife has finally started to share her rather awesome recipes and household hints and tips on her own web site. As she has lots of readers from outside Canada she asked me to put together a feature on her site showing the current weather in Calgary, partly so that her readers can identify with her and partly to prove that it really does get as cold here as we tell people!

I looked around the web for a free weather site (she’ll probably upgrade when the site gets more visitors) and found one with decent reviews at APIXU ( They have some weather widgets but, like all of the other weather sites, none were quite the right size and none displayed quite what she wanted. The API looked quite good though, so I decided to give the site a try.

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

When people or companies make data available through APIs, it might seem that the simplest thing to do is to just download the data whenever you need it. It’s true that this is simple but it’s also very inefficient, and this inefficiency will only get worse as your system’s demands increase. For big data / cloud/ large scale systems you need a different approach, especially as it might not be just you who pays.

Analysis Paralysis
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

Sometimes, when you or your team are trying to solve a problem, you find that you’re going round in circles and getting nowhere. There is always a reason why every solution is wrong, or you’re worried that if you start working on one solution it’ll turn out to be a dead end. You get into a cycle of thinking more and more about the details, where everything could go wrong, and then you realize you’re overthinking the whole thing. You ask for more information, and if and when it arrives then it too gets analyzed and you find you’re no closer to an answer than before. The whole process just goes on and on, with no apparent end in sight, and no actual results to show for it.

This is “Analysis Paralysis”.

Medway Union Workhouse Before Its Demolition, As Featured On My History Site
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

In the everyday rush of work and family life it’s easy for personal projects to be neglected. That’s what happened to one of my sites, which hadn’t been updated since I moved it to a new web host in 2010, and was showing its age. I decided it was time to update it, so thought I'd describe the process here.