Dotfiles distribution
When faced with managing dozens of servers, keeping your configuration files up to date (or existent) becomes a real chore. AtBooking.com we saw many interesting ways people had solved this problem,...
View ArticleIs your A/B testing effort just chasing statistical ghosts?
Controlling for repeated significance testing errors and false positive rates in commercial A/B testing is often perceived as a bit of a pedantic, academic exercise.In academic research, lax...
View ArticleProfiling in Production
At Booking.com, we're big fans of monitoring. With the usual battery of system-level monitors, we keep an eye on the health of our servers. As you would expect from any commercial internet company, we...
View ArticleOn the importance of localisation
Here at Booking.com, we support over forty different languages, and we've seen the business value in enabling users to read in their own language, and see information presented in a format they are...
View ArticleOK: Monitoring enabled
To run a website like Booking.com you need a lot of servers. Not just webservers, but also mail servers, database servers, name servers, proxy servers and a lot more. How do we make sure they are all...
View ArticleThe Dreaded "Attempt to free unreferenced scalar"
Every single time I see an error message that looks likeAttempt to free unreferenced scalar: SV 0xDEADBEEF, my heart sinks. I know that I am in for an extended debugging session. Debugging memory...
View ArticleResponsive Email
As the number of users who read our newsletters on mobile devices has grown, we've started creating mobile friendly, responsive newsletter templates [1], which make it possible to display our content...
View ArticleThe Next Sereal is Coming!
Sereal is a fast, compact, binary, schema-less serialization format that aims at dynamic languages' data structures and specifically supports many of Perl's complex structures and concepts.Over the...
View ArticleHow we do talent development in Booking.com IT
As you have read in other blog posts, we really value our developers and we give them all the freedom in finding better ways to support our website visitors in booking their accommodation. To keep up...
View ArticleHardening Perl's Hash Function
In 2003 the Perl development community was made aware of an algorithmic complexity attack on the Perl's hash table implementation[1]. This attack was similar to reports over the last few years of...
View ArticleNative Extensions for Perl without Smoke and Mirrors
The standard mechanism by which one can hook native extensions into Perl, dubbed XS for "eXternal Subroutine", is often criticized for its arcane syntax and for obscuring how the interaction with the...
View ArticleCustom Browser Extensions for Front End Developers
Booking.com is displayed in dozens languages all over the world. We also support over fifty currencies. You can browse prices on our site in either the accommodation's preferred currency or a currency...
View ArticleA Faster Perl Runtime in Tiny Steps
Booking.com uses the Perl programming language heavily across its entire technical infrastructure. At the size of our infrastructure, even small performance improvements can translate into hefty...
View ArticleMySQL 5.6 GTIDs: Evaluation and Online Migration
At Booking.com, we use MySQL to operate our web site where tens of million of pages are viewed and over 625,000 room nights are reserved every day. This is a lot to ask for our database infrastructure....
View ArticleAutomating CSS sprites for large organisations
CSS sprites have come a long way in the ten years since Dave Shea first wrote about them for A List Apart, way back in 2004. Amazon was an early proponent of CSS sprites.A CSS sprite is the technique...
View ArticleMore Optimizations in Perl 5.20-to-be
In a recent post on his blog Matthew Horsfall explained a few of the optimizations to Perl that he contributed recently. On this site, we reported on thefantastic work that Dave Mitchell is doing. The...
View ArticleMySQL Slave Scaling (and more)
At Booking.com, we have very wide replication topologies. It is not uncommon to have more than fifty (and sometimes more than a hundred) slaves replicating from the same master. When reaching this...
View ArticleReusing Bitmap objects on Android
Memory management in Android can be a bit complicated if the application has heavy media demands. The Booking.com Android application had an issue explicitly dealing with memory management that...
View ArticleGoldilocks and the Three Experiments
Once upon a time, during a usability test in a low and Nether-land, a seemingly meaningless pinch of the fingers by a middle-aged Dutch man named Geert sparked a series of three experiments by a girl...
View ArticleWould you like fries with that?
img { max-width: 90%;}The Hamburger Icon.The Hamburger Icon – it’s everywhere. All around you. In web apps, mobile sites, desktop sites, and computer software. The ubiquitous three-line icon is now so...
View Article