Santa Claus, also known as Saint Nicholas, Kris Kringle, Father Christmas, or simply Santa, is a famous figure originating in Western Christian culture. Santa is known for bringing gifts to the homes of nice children on Christmas Eve and in the early morning of Christmas Day.

There are a lot of homes with nice children out there. There are approximately 2.2 billion children under the age of 18. However, most of them (85 %) are Muslim, Hindu, Jewish or Buddhist and don't expect a visit from Santa. Let's assume there are 2.5 kids per home, and that there is at least one well-behaved kid per home. That gives us 132 million homes worldwide to visit for Santa. Assuming the houses are evenly distributed around the world, and that Santa would stay in constant darkness through the different time zones, he has approximately 31 hours to deliver gifts to 132 million homes. That's 1,178 homes per second. Difficult, but not impossible! And, thanks for the calculations abcNEWS.

Santa + Matchmore = success

To deliver gifts to 1,178 homes per second might sound difficult, but it's not an impossibility - especially not if Santa would use Matchmore's location-based technology! Let's assume Santa already has solved the potential problem of finding a big enough sleigh as well as enough number of strong and fast reindeers to carry the gifts through the night - without creating a sonic boom.

GPS pinpoints in homes and using Santa's smartphone

If Santa would like to save time, we advise him to integrate our location-based technology. Before taking off, Santa would place GPS coordinates as pinpoints at every home he plans to visit during the night. This would create tons of so called publications.

From his own sleigh, he would create a subscription through a digital device, for example from his own smartphone (yes, of course Santa has a smartphone!). The subscription will correspond to each of the publications which Santa has already placed out in the homes. Since it's possible to attach information to the subscription and publications, Santa would place information about what gift belongs to which kid. Every gift would have an ID corresponding to a home with the same ID.

In this way, every time Santa passes a house where he is supposed to deliver a gift, he would receive a message when he should drop the gift into the chimney. The message must, of course, consider calculations including the speed of the sleigh, the wind speed as well as the current elevation of the sleigh. Also, the virtual pinpoints work as silos up in the universe as long as there is a connection. So Santa can fly with his reindeers at any elevation he feels comfortable at, and still gets matches.

Santa using Matchmore's location-based technology

The light blue circles around the houses illustrate the publications which Santa placed before leaving his home on the North Pole. The green circle illustrates the subscription from Santa's smartphone.

Every time Santa receives a match between the publications and the subscription, he will get a message that he is approaching X's house, and should drop gift Y. As for example, when Santa approaches Phil's house he will receive a message that he should drop the gift belonging to Phil, the car toy, in this very moment. So instead of memorizing all the kids, their addresses and their gifts, Santa can automate his mission way in advance!

As soon as Santa and his elves know which kids have behaved well during the year and as soon as they have received the wish lists, they can set up the automation weeks in advance. This will not only provide Santa with a feeling of control and peace, it will also facilitate potential deliveries from Amazon or Alibaba to Santa's workshop.

Technically speaking - how does it really work?

In order to make the scenario above work, Santa has to put on his technical gloves - or he could always ask his helpful elves.

Create publications with Phomo

As mentioned before, Santa has to place pinpoints on the homes of the nice kids. The easiest way to do this is by using Phomo. As long as Santa knows the addresses and the GPS coordinates of the children, he can place the pinpoints through his laptop from back home on the North Pole.

Phomo is a phone motion simulator that allows developers to deal with the problems induced by the testing of location based applications. Accessible on a web platform, it helps developers to simulate motion of devices based on a defined mobility model. It also allows to easily create publications and subscriptions without using a physical device and without writing a single line of code.

To use Phomo, Santa must create an account at Matchmore here and create an app.

Steps to create an app on the Matchmore portal

Once it's done, he has to go under the tool's menu, then click on Phomo. On the Phomo page, he has to follow the steps below:

  1. Select an app.
  2. Create a new scenario.
  3. In the Device tab, he has to click on Create a device.
  4. On the map, he has to place a point on each house where there are nice kids. These points are the described pinpoints.
  5. Once it's done, he has to create a publication for each pin point with some information.
  6. The publications can be easily set up by using this code:
var topic = "gift" //The topic has to be the same as the subscription's topic
var distance = 100.0 //The distance is set in meters
var duration = 864000 //10 days
var family_name = "Phil's family" //Set your family's name
var gift = ["car toy", "Call of Duty Black Ops 4", "Teddy bear"] //List of gift preferences

val PUB = Publication(topic, distance, duration)
                PUB.properties = hashMapOf(
                    "family_name" to family_name,
                    "gift_preferences" to gift,
                    )
                createPublicationForMainDevice(PUB,
                    { result ->
                        Log.d("debug", "Publication made successfully on this topic " + PUB.topic)
                    }

7. The publications are done!

Subscription on Santa's smartphone

To make everything work, Santa has to add a subscription on his phone, which will match all of the publications. Since the matches need to be made in real time with Santa's real location, we can use this code snippet for the subscription:

var topic = "gift" //The topic is the same than the publication's topic
var range = 10.0 //Santa needs to come close to the houses
var duration = 864000 //10 days
var selector = "family_name = 'Phil\'s family' OR family_name = 'Karen\'s family OR family_name = 'Jenifer\'s family OR family_name = 'Barbara\'s family '" //List of all the families who are expecting to receive presents from Santa


val SUBSCRIPTION = Subscription(topic, ranage, duration)
                SUBSCRIPTION.selector = selector
                
                createSubscriptionForMainDevice(SUBSCRIPTION, { result ->
                    Log.d("debug", "Subscription made successfully with topic ${result.topic}")

                }

Now, everything is set up!

But, Santa needs to track the matches when he comes close to the houses. To do that, he has to add a match listener and activate his location. To add a MatchListener, he has to execute this code in his app:


 matchMonitor.addOnMatchListener { matches, _ ->

    //We should get there every time a match occur
    Log.d("debug", "Send a gift to this family: ${matches.first().publication!!.properties["family_name"]}")
             
            matchMonitor.startPollingMatches(1000) //Matches are refreshed every 1000 ms

        }

All set, and ready to go.

By this time of the year, Santa should know which kids have been nice and which kids have been naughty. The gifts are probably in the making and Santa is preparing his reindeers. Hopefully, Santa is already all set with his delivery for this year, so we are ready to collaborate with Santa for the Christmas of 2019. However, if Santa would like to improve his delivery with our location-based technology for this year, we are of course ready to implement our solution for the Christmas of 2018.

As for now, we would like to wish Santa a great good luck! And for everybody else - a merry, merry Christmas!