Christmas Easter ‘Bomb’ of Ant Design

A commit to Ant Design, an enterprise-oriented open-source Web UI library by Ant Financial (蚂蚁金服), on 10 September 2018 buried an Easter egg for Christmas, which has caused a heck of havoc since Christmas. This entry also talks about not-so-obvious features in my blog.

Christmas Easter ‘Bomb’

The egg is triggered when local time determined by the end-user browser is 25 December. When triggered, it changes the title attribute of button a elements to Ho Ho Ho! and adds clouds/snowflakes onto them. There are other effects. Embarassing is that there are a ton of typos in the egg. Here is the workaround to the egg in Chinese and in English.

Someone used an affected version of Ant Design in a project for NDRC of China (发改委) and had a busy morning on Christmas (in Beijing time). For those less familiar with China, the communist party is atheistic and Christmas isn’t a national holiday in China. It is inappropriate to have such content on NDRC websites.

Ant Financial, of course, is clear of any liability because Ant Design is (and has always been) licensed under the MIT License. The point is that this surprise (and the havoc it creates) demolishes the credit Ant Design (and even Ant Financial) has built over the years.

Bonus Reading Larry Osterman talks about no-Easter-egg policy in Microsoft.

Non-obvious features of this blog

There was a feature for planting Easter eggs in the blog entries (added in April 2017), and one could reveal the eggs by running window.GLRevealHiddenEggs(). However, it was little used and after a few iterations, no entry was using this feature any more. I once used this feature to hide the answers to certain questions, which is now replaced by collapsible areas (thus no longer ‘hidden’). As of now, it is completely removed.

The other non-obvious feature is that the website displays a rainbow stripe from June through August (added in May 2017). This feature is available only if JavaScript is on and the system is not in High Contrast mode.

Please enable JavaScript to view the comments powered by Disqus.