Quantcast
Channel: Booking.com dev blog
Browsing all 114 articles
Browse latest View live

Hardening 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 Article


Native 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 Article


Image may be NSFW.
Clik here to view.

Custom 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 Article

A 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 Article

MySQL 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 Article


Image may be NSFW.
Clik here to view.

Automating 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 Article

Image may be NSFW.
Clik here to view.

More 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 the fantastic work that Dave Mitchell is doing. The...

View Article

MySQL 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 Article


Image may be NSFW.
Clik here to view.

Reusing 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 Article


Image may be NSFW.
Clik here to view.

Goldilocks 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 Article

Image may be NSFW.
Clik here to view.

Would 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...

View Article

Better Crash-safe replication for MySQL

At Booking.com, we use MySQL replication extensively for read scaling. However, because we have so many slaves (we have thousands), sooner or later, one of them will fail. In MySQL 5.5 and earlier,...

View Article

Image may be NSFW.
Clik here to view.

B.Smashing – A Front End evening with Booking.com and Smashing Magazine

On Friday 10th October, Booking.com hosted the first-ever combined Booking.com and Smashing Magazine event, B.Smashing, at our head office in Amsterdam.For years we have been attending Smashing...

View Article


Distributed Top-N Similarity Join with Hive and Perl Part I

At Booking.com we have a lot of data to manage. Most of the time MySQL does the job, but for very large datasets and heavy analytics we use Hadoop and Hive. Most of the time Hive serves our analytical...

View Article

A/B Testing - Concept != Execution

ol li p {font-size: 100%!important;} “We tested that, and it failed.”This typical excuse is rampant in the world of A/B testing, but it can overlook the fact that a concept in and of itself is...

View Article


IO::Socket::Timeout: socket timeout made easy

Without network operations, running a website for booking accommodation online would be nearly impossible. Network operations can be anything from simple actions like talking to a browser with a user...

View Article

Image may be NSFW.
Clik here to view.

Better Parallel Replication for MySQL

Parallel replication is a much-expected feature of MySQL. It’s available in MariaDB 10.0 and in MySQL 5.7. Yet, both lose efficiency when replicating through intermediate masters. In this post, we’ll...

View Article


Image may be NSFW.
Clik here to view.

Evaluating MySQL Parallel Replication Part 2: Slave Group Commit

(The previous post, Better Parallel Replication for MySQL, is Part 1 of the series.) Parallel replication is a much expected feature of MySQL. It is already available in MariaDB 10.0 and in MySQL 5.7....

View Article

Image may be NSFW.
Clik here to view.

Sereal - a binary data serialization format

We introduce Sereal, a new, binary data serialization format that provides high-performance, schema-less serialization for Perl and other languages.As with many things in computing, serialization of...

View Article

About opening doors and asking questions: An interview with Janne Jul Jensen

With more than 80 designer brains at Booking.com we “think” we know quite a lot. However, being a data-loving company, we have figured out that 986 UXers know even more – 986 is the number of members...

View Article
Browsing all 114 articles
Browse latest View live