My regular morning begins with a cup of coffee, news websites, Facebook (just kidding – I am among 541 people in North America who don’t have a Facebook account), and since April, with checking the new FME coin submissions. In four months, there were only seven days when we didn’t receive any new coin tweets.
Our coin contest resonated really well among you, our customers and partners. We received over 600 tweets with #FMEcoin hashtag and pictures. You took your coins to world famous landmarks (, , , , ) and exotic places (, ), to mountains (, ) and mines (), to your favourite local parks and restaurants (, , , ), you photographed them on real workbenches () and at almost real Tardis (), with a real gorilla () and a stone lion (), you even turned coins into a point cloud () and fish bait ()! I simply cannot mention all the wonderful entries we received – just have a look at all of them together.
By all means, the contest was a big success.
In my first blog, I talked about the workspaces that made possible a smooth flow of submissions, simple approval process, and publishing pictures from tweets. In this blog, I’ll talk about the results and give some stats. As you can easily guess, FME is behind everything – from choosing the winners to preparing the statistics page.
Choosing the lucky winners
Choosing five lucky winners in such an important contest couldn’t be left in the hands (or functions) of regular random number generators, which often only appear random, whereas in fact they use some predictable mathematical formula.
For our contest, we used a web service provided by random.org, where true randomness comes from atmospheric noise. The service can generate a lot of different and really random things – from trivial numbers to sounds and colors, but we needed only a random sequence, which consists of the numbers from 1 to the total amount of the contest entries. That is, each entry receives a random number. Then we sort by these number and take the first five unique names.
When we ran the “TheLuckyWinnersAre.fmw” workspace on August 2nd, the weather chose the following winners:
Now I wonder why I don’t use InlineQuerier more often – it really deserves much bigger role in my (and perhaps everyone’s) workspaces. Besides, don’t you agree that writing SQL statements is a really really fun exercise?
Almost all contest stats are calculated using SQL statements within InlineQuerier – only the distances travelled by the coins are calculated with other transformers. InlineQuerier allows us to bring all incoming features together and output features with precisely defined attributes for the next step.
We can learn a lot about our data based on a few queries processed within the transformer.
Most tweets had their location set correctly. In some cases, as I explained in the previous article, the coins were randomly placed in Siberia. I tried to place them where they belong when I could conclude the location from the text of the tweet or when I was able to directly contact the author.
Your coins traveled to 6 continents and 32 countries, including such remote destinations as Uganda, Rwanda, and North Korea.
Russia not only lends its vast Siberian territory for the orphaned coins – perhaps the cutest entry of the contest also came from this country:
Of course, I was curious about the locations of the most Northern, Southern, Eastern, and Western coins. Within InlineQuerier these questions are easily answered with the simple min/max queries on latitudes and longitudes.
I also tried to find how high the coins went. Google Elevation API allows finding the elevation of a place by its latitude and longitude. 5014 meters above sea level is the record elevation, not surprisingly located at the base camp of the Mount Everest.
A few coins reported their elevation below sea level, but only the coins from the Netherlands really went that deep (as opposed to sea-traveling coins, where the google service returns the depths under the vessels).
But without a doubt, despite the reported elevation of 64 meters, the deepest dive the coin made was posted by VeloLaguna from Napili Bay, Hawaii:
I tried to find the coins that traveled most. Of course, I didn’t have any information about the movements of the contest participants. I simply took the locations of the properly georeferenced coins, sorted them by date, connected with lines, reprojected them to _AZMED_ projection and found the total length of all the lines per user. Even with this very rough approximation we can be pretty sure that the users nickison and scyphers_ traveled over 30,000 km.
All non-spatial records were calculated with InlineQuerier – SQL is a perfect tool for such stats.
In total, we received 686 submissions. We approved 512 tweets from 147 unique users.
The best (and the last) day, August 1st, expanded our collection by 34 images. Only 7 days of 118 didn’t bring us any coins.
The winner of the gold medal (to reference the Olympic Games in Rio), the user ETLsolution posted the most coins – 73, mostly from the Netherlands, helping his country to get the first place in the unofficial world championship with 69 coins. The silver medalist DaniloAtFME tweeted 38 times. The user PCGVeenstra added a lot of coins on the last day of the contest winning the bronze medal with 28 tweets.
It was interesting to observe some rivalry between traditional competitors in different areas – the United Kingdom (60) and the United States (54), Sweden (8) and Finland (7), Spain and France (both posted 5 coins), Brazil (43) and Germany (42).
KenAtSafe, a Safer living in Europe, visited and tweeted from most countries with FME World tour stops: 11.
The pages prepared with HTMLReportGenerator can have text and tables, images and charts, even web maps of different kinds:
The transformer makes a snippet of HTML code. We can prepare many and combine them into a single page with HTMLLayouter, which allows controlling the position of each snippet on a resulting page.
A really nice feature of this transformer is that it allows nesting (HTMLLayouter can consume the output of the other HTMLLayouters) – our HTML pages can have sections and subsections formatted quite differently.
The report then can be published directly from FME to some web hosting service, such as Amazon or Dropbox. This essentially turns FME into a web page authoring and publishing tool.
Check the full report page.
We learned several things from this exercise. First, our FME users are incredibly enthusiastic and creative. They travel a lot, which was really important for the contest. It was so much fun seeing the interesting locations and unique perspective they brought to this event.
Second, even we were surprised how easy it was to make a complete system using FME to glue together a variety of services. The contest consists of 5 workspaces, 2 Google Fusion tables and 3 Dropbox folders. The system’s robustness and lack of administrative overhead make it very tempting to keep it going.
Lastly, we realized that having Twitter as the only way to take part may was a bit too limiting. At FME Days in Germany, a special FMECoin photo contest conducted by our partner con terra accepted submissions by email!
As a post-mortem technical exercise, we added email monitoring to the contest workflow. You can now send an email to email@example.com with an image of your coin. Add the name of your location to the subject line and a message to the body of the email. And if your phone can properly embed your location into the photo, there is no need to do it as we had to do with Twitter, which wasn’t very easy for many of us during the contest. Eventually, the image will make its way to our gallery.
The requests to keep the whole #FMECoin infrastructure running once the contest is over is probably the most satisfying feedback we received. Our users want to take coins to their trips and adventures and tweet (and now email!) more images from the different corners of the world.
Since the contest was received so enthusiastically, we definitely want to conduct similar events in the future, perhaps, engaging more media platforms, but with absolutely no doubts – entirely made with FME, both Desktop and Server.