Skip to main content

Legacy Blog Posts

90 personal blog posts from 2008–2016

January 14, 2016

Upgrading an Amazon ECS cluster to Docker 1.9

As announced yesterday , Amazon ECS now supports Docker 1.9 (1.9.1 actually). Woohoo. In order to benefit from this update, a cluster must use the lat...

December 31, 2015

Installing a Minecraft server on AWS

This one is for all the kids (and geek dads & moms) out there. I'm surprised I didn't get to write this sooner :) Running your own Minecraft server in...

December 27, 2015

A silly little script for Amazon Redshift

One of the great things about Amazon Redshift is that it's based on PostgreSQL. Hence, our favorite PostgreSQL tools can be used, notably psql . Howev...

December 10, 2015

A silly little script for Amazon ECS

I'm currently spending a lot of time playing with Amazon ECS and Docker. The ecs-cli tool is very convenient to manage clusters and tasks, but I neede...

December 3, 2015

Video of our talk at Velocity Conf

The video of our talk at Velocity Conf in Amsterdam is now online.

November 16, 2015

Filtering the AWS CLI with jq

The JSON-formatted output of the AWS CLI may sometimes feel daunting, especially with a large number of objects. Running ' aws ec2 describe-instances...

November 11, 2015

Set up the AWS CLI on MacOS in 60 seconds

I had to do this AGAIN on a new Mac, so here goes: 1) Install Homebrew $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast...

May 11, 2015

Reading list (May 2015)

Tech books: one of the great loves of my life. There isn't much I'd rather do than grab a book, lay on the couch and immerse myself in complex systems...

May 11, 2015

Lambdas in Spark: now you're talking!

In a previous article , I tried to figure out what the hell lambdas could be good for in Java. Short version: nice, but not compelling (mostly because...

May 7, 2015

Video: Cloud Computing World Expo 2015

Here's the video (in French) from the roundtable at Cloud Computing World Expo 2015 back in April. The topic was: "is it realistic to build your IT sy...

April 17, 2015

Test drive: real-time prediction in Java with Amazon Machine Learning

Following up on my two previous Amazon ML articles ( batch prediction with Redshift and real-time prediction with the AWS CLI ), here's a quickie on i...

April 16, 2015

Test drive: real-time prediction with Amazon Machine Learning

As explained in my previous article , Amazon ML supports both batch prediction and real-time prediction. I burned some rubber (and some cash!) on batc...

April 14, 2015

Test drive: Amazon Machine Learning + Redshift

Last week, AWS launched their flavor of "Machine Learning as a service", aka Amazon Machine Learning . It was not a moment too soon, given the number...

April 1, 2015

AWS Startup Day: "Moving Viadeo to AWS"

Happy to share my keynote presentation at the AWS Startup Day yesterday in Paris!

March 19, 2015

Java 8 and lambdas : ooooh, that's how it works, then.

Disclaimer: several people "complained" about this code being overly complicated & verbose. Trust me, I did it on purpose to illustrate what many lega...

February 25, 2015

CTO Crunch @ France Digitale

Here are my slides from last night's "CTO Crunch" event by France Digitale. Thanks to everyone in the audience, lots of great questions! Life in the t...

February 16, 2015

Viadeo @ Devoxx France 2015

Hello, Working at Viadeo (www.viadeo.com) now. The Aldebaran adventure didn't work out as planned: details in this Rude Baguette post , which feels to...

May 13, 2014

Aldebaran @ AWS Summit, Paris 2014

What a day! Talking about Aldebaran Robotics in front of 1200 people during Werner Vogel 's keynote... Dude, I don't think it gets any better than thi...

March 19, 2014

I'm baaack... and I'm hiring!

Ah, it looks like I've left Criteo. Had a lot of fun there, but hey, there's always something more exciting at some point, right? Speaking of which, I...

October 1, 2013

Max Schireson (MongoDB) @ Criteo !

Max & Julien Criteo had a very special guest today! Max Schireson, CEO of MongoDB , was kind enough to make a special detour on his European trip just...

September 25, 2013

Viking laws for tech teams, part 7: attack one target at a time

This post is part of the " Viking laws for tech teams " series. Lack of focus is the single biggest issue a team can face. It usually ranges from " we...

September 20, 2013

MongoDB Motorcycle Club, Paris chapter

Great MongoDB event in Paris yesterday ! Thank you to MongoDB and to all attendees for giving me the opportunity to present the work of our teams. Lot...

August 21, 2013

HOWTO: compiling ffmpeg + x264 + MP3 + AAC + Xvid + AMR on Ubuntu 12.04

By popular demand (according to page view stats), I've decided to refresh the Dec'2008 post ( "HOWTO: compiling ffmpeg + x264 + MP3 + Xvid + AMR on Ub...

August 21, 2013

Arduino: LCD thermometer

I am truly and utterly in love with the Arduino project . There is no simpler and easier way to learn both programming and electronics. Believe me, th...

August 17, 2013

Node.js, part 5.1: don't you C?

Leslie Lamport once said (before many of you were even born): " You know you have a distributed system when the crash of a computer you've never heard...

August 16, 2013

Node.js, part 5: Zero the hero!

And you thought I was on holiday? Time to hack our Node app again and introduce another great piece of software called zeromq . On top of having one o...

August 5, 2013

Node.js, part 4: the Big Kahuna syslog!

To paraphrase the immortal Samuel Jackson in Pulp Fiction: " Logs! The cornerstone of any nutritious application! ". And my Node.js app doesn't have a...

August 3, 2013

Node.js + MongoDB, part 3: exit memcached, enter ElastiCache

In a previous post , we added caching to our Node.js + MongoDB web application, thanks to an EC2 instance running memcached . As you may know, AWS sup...

August 2, 2013

Node.js + MongoDB, part 2: here comes memcached!

Let's elaborate on the Node.js + MongoDB app. I lied: it's not really worth $1 billion... yet. It surely will once we've added memcached to the mix ;)...

July 31, 2013

HOWTO AWS: mount S3 buckets from a Linux EC2 instance with s3fs

As we all know, the preferred way to access AWS S3 is to use the S3 API . However, you should know that it's also possible to mount an S3 bucket and a...

July 29, 2013

The billion dollar app (Node.js! MongoDB! Clouds!)

Today, I'd like to show you how to build a basic web app running on EC2 and connecting to a MongoDB instance running on MongoLab. We used Python so fa...

July 27, 2013

Mass rename on Synology

Sorting through my digital "archives" (*cough*)... A while ago, I showed you how to mass encode audio files from FLAC to MP3 using only the default to...

July 25, 2013

From one cloud to another (or is it the same one?)

As previously described , MongoLab offers multiple cloud options for your instances: AWS, Azure, etc. What about my now legendary Python program ? ;)...

July 24, 2013

MongoDB and Python gang thegither!

After a couple of recent posts on MongoLab and Python , I guess it was pretty obvious to mix both :) The only thing you need to add to your system is...

July 22, 2013

The $1 fix

I've got remote-controlled electric shutters at home. Very nice. I've got kids too, who love to play with remote controls (read: throw, smash, stomp,...

July 19, 2013

VirtualBox: ssh to guest VMs in 30 seconds

Playing with VirtualBox again... but how the hell do you ssh into NAT guests? Looks like I forgot how to do it :D So, for all of us memory-challenged...

July 19, 2013

Fooling around with Python on a Friday night

Browsing and listening to my LP collection... and updating the corresponding Excel file because, well, I have quite a lot of stuff and I can't remembe...

July 15, 2013

Your MongoDB instance for here or to go?

In this post, I'll show you how to install MongoDB either on your local machine or in the cloud. Let's look at the local installation first. This is a...

June 27, 2013

MongoNYC 2013: my video

The video of my 40-minute talk, "How Criteo Scaled and Supported Massive Growth with MongoDB" is now available. I hope you'll enjoy it!

June 25, 2013

MongoNYC 2013: my slides

My slides are now online on the 10gen website. There are plenty of other good presentations, check them out! Business Track: How Criteo Scaled and Sup...

June 24, 2013

MongoNYC 2013: interview with The Cube

I've just had the pleasure to speak at MongoNYC 2013 . What a cool event! Over a thousand attendees in the heart of NYC! I'll post the video of my tal...

March 15, 2013

Friday afternoon @ Criteo

Wow, finally a quiet Friday afternoon. *This* is how it feels, then :) Time to enjoy one of the nice couches we just "borrowed" (ahem), while catching...

February 21, 2013

Kanban Ops @ Criteo

Our very own Kanban board wall. Keep rockin', Prod team ;)

February 1, 2013

Keynote speech at E-marketing Paris 2013

Criteo keynote speech at E-marketing Paris 2013, by Gregory Gazagne (Managing Director Europe) and myself (starting at 15:20). In French only. I wish...

December 27, 2012

Viking laws for tech teams, part 6: be direct

This post is part of the " Viking laws for tech teams " series. 5 more days till 2013. Here's my contribution to the holiday cheer :) Whether you like...

September 5, 2012

Viking laws for tech teams, part 5: agree on important points

This post is part of the " Viking laws for tech teams " series. "Agree on important points": this sounds like a no-brainer, right? Obviously, a team w...

September 3, 2012

Viking laws for tech teams, part 4: keep your weapons in good condition

This post is part of the " Viking laws for tech teams " series. As much as I regret it, software engineering doesn't actually involve two-handed sword...

August 31, 2012

Viking laws for tech teams, part 3: find good battle comrades

This post is part of the " Viking laws for tech teams " series. It boils down to this: you need to join the right company. Many of you will disagree,...

August 30, 2012

Viking laws for tech teams, part 2: keep yourself in shape

This post is part of the " Viking laws for tech teams " series. Skills, attitude, stamina: the iron triangle of survival in challenging environments....

August 28, 2012

Viking laws for tech teams

Viking laws... An oxymoron to most people, I'm sure. That's not surprising given that the Men from the North have long been depicted as drunken primit...

July 27, 2012

Under the hood of Real-Time Bidding

Originally written for boom , the latest in performance display advertising. Within the display advertising environment, Real-Time Bidding has evolved...

July 18, 2012

Learning about data centers

A lot of my time was spent visiting data centers lately, with more visits on the horizon. Supersonic growth, you see :) Not that I'm complaining, mind...

June 18, 2012

New Criteo office in Paris

Only one word: AWESOME. Publisher / Scalability / Production teams settling down Our own private 5th-floor garden One of our meeting rooms... the name...

May 20, 2012

Audio mass encode on Synology NAS (FLAC to MP3)

Quick Sunday hack while waiting for the damn rain to stop :-( I was looking for an easy solution to mass-convert my music library from FLAC to MP3 (be...

April 27, 2012

Criteo Code of Duty 2 - www.code-of-duty.com

April 6, 2012

Life 24/7/365.

Cons: No life No friends No sleep No (good) food Pros: Leading the best of the bunch Pushing the envelope daily (mine too) Getting to kick everyone's...

April 2, 2012

Hiring in the trenches

I've hired a lot of people in the last 5 years : software engineers, sysadmins, DBAs, support techs, project managers... I'd say one hundred of them,...

July 7, 2011

Error message of the day

Windows: the only OS displaying cryptic error messages in Chinese BEFORE you even logged in... What a piece of sh#t.

July 4, 2011

Code review @ Criteo

Weekly code review in one of my teams. Notice the high-tech cardboard project stand :) Of course, these reviews are strictly compliant with the proven...

March 2, 2011

Life @ Criteo

Knuth... What else?

January 14, 2011

Hadoop EC2 scripts broken on Windows / cygwin

Grrr... As of 0.21.0, the list-hadoop-clusters and delete-hadoop-cluster scripts need the rev utility, which is neither installed by default nor avail...

January 10, 2011

Installing Hadoop on Windows / cygwin

Highly unnecessary... unless you're stuck with a Windows machine :-/ 1) Install Cygwin This is as straightforward as it gets, but don't forget to add...

November 9, 2010

Scrum @ Criteo

Well, well, well. So long Pixmania, hello Criteo ! New company, new job, new friends... but some things shouldn't change, should they ? Post-its ? che...

September 8, 2010

New Pixmania Pro websites

This morning, the Pixmania IT team launched the new generation of Pixmania Pro websites. 21 countries, no less. Job done. Let's move on!

June 16, 2010

"They said it couldn't happen"

One of our data centers has suffered repeated incidents over the last months. Much more than is expected and much more than our other data centers. To...

June 7, 2010

Certified Scrum Product Owner :)

May 20, 2010

Zzzzzzzz

Pics taken yesterday after a 30-hour day... Well deserved, too ! The Evil Mister B. Sleeping on the job, Perrin ? Me, under my desk :))

May 19, 2010

New Pixmania & Pixmania Pro websites

After a looooong night, your IT friends @ Pixmania are happy to introduce the new generation of Pixmania & Pixmania-Pro websites for Greece, Hungary a...

March 1, 2010

New PC World website live

Another retailer joins the e-merchant platform :)

March 1, 2010

New Dixons website live

And another one :)

February 15, 2010

New Currys website live

Launched at 5AM Paris time ! The largest electrical retailer in the UK is now running its online business on the e-merchant platform :)

April 3, 2009

HOWTO: compiling VLC 0.9.9 + live555 + all major codecs on Ubuntu 8.10

VLC 0.9.9 was released a few days ago, so here's an updated version of my popular tutorial on how to build it from source on Ubuntu. As always, all co...

January 23, 2009

HOWTO: H.264 YouTube videos in mediatomb (no more transcoding for PS3!)

As you probably know (and as explained on Wikipedia ), YouTube supports several video formats. Until then, mediatomb could only stream standard videos...

January 19, 2009

HOWTO: building evolution on Ubuntu 8.10 (to fix IMAP slowness...)

[ Updated on 2009/01/29: evolution 2.24.3-0ubuntu1 - available in today's package updates - fixes the IMAP issue. I guess people yelled hard enough! ]...

January 16, 2009

HOWTO: processing multichannel audio (DTS, AC3, WAV)

DVDs have made multichannel audio popular, most notably DTS and Dolby Labs' AC3 , and it looks like no one will settle down for good old stereo anymor...

January 12, 2009

Press release: Digiplug selects Telecity Group for its digital asset management platform

Paris , January 12th 2008: Digiplug, a provider of IT solutions and services dedicated to the production and distribution of multimedia content, has c...

January 10, 2009

x264 benchmarks (individual flags & motion estimation)

As discussed before , finding the right set of x264 flags is a rather complex task. What do these flag mean? What's their effect on encoding time? On...

January 10, 2009

HOWTO: converting mkv files to play on the PS3

There's no doubt that Matroska is a great open source container that can store anything (and the kitchen sink too). Unfortunately, as of today, it's n...

January 7, 2009

HOWTO: ffmpeg & x264 presets

As discussed earlier , the ffmpeg command line can be quite daunting, especially when used to encode x264 video... Wouldn't it be nice to store your f...

January 5, 2009

French Scrum User Group

Xebia have just started a French Scrum User Group . Registration is free and open to everyone. Says Scrum co-creator Jeff Sutherland : " I would like...

January 5, 2009

DO NOT scream at your hard drives!

We all know that vibrations hurt the life expectancy of hard drives. But do they impact performance too? This bizarre experiment would tend to confirm...

January 4, 2009

HOWTO: compiling mediainfo (CLI & GUI) on Ubuntu

Today, I will cover a must-have tool for anyone who likes to play with audio / video transcoding : mediainfo . Indeed, mediainfo will tell you everyth...

December 28, 2008

HOWTO: adding Last.fm scrobbling to mediatomb

Lastfmlib is C / C++ library allowing music applications to "scrobble" tracks on last.fm . A patch has been recently released to integrate this librar...

December 27, 2008

HOWTO: quick reference on audio & video encoding with ffmpeg

The purpose of this article is to serve as a quick reference on how to use ffmpeg for audio and video encoding. Boy can these ffmpeg flags be tricky t...

December 26, 2008

HOWTO: setting up a VOD server with VLC

In a previous article , I showed you how to build VLC from source. Since this build included the live555 streaming libraries, the resulting VLC is abl...

December 24, 2008

Mediatomb 0.12 on PS3: video thumbnails, YouTube and Apple movie trailers

In a previous article , I explained how to build mediatomb , an open source media server able to stream music and video to UPnP devices, such as the P...

December 23, 2008

VirtualBox 2.1.0 released, with much better network support

2.1.0 is a major update for VirtualBox . Here are the main new features: Support for hardware virtualization (VT-x and AMD-V) on Mac OS X hosts Suppor...

December 22, 2008

HOWTO: compiling mediatomb + ffmpegthumbnailer + all libraries for Ubuntu... and PS3 :)

Today I'd like to talk about mediatomb , a media server with a nice web user interface allowing you to stream your digital media through your home net...

December 21, 2008

HOWTO: installing gmake, gcc, svn and git on OpenSolaris

OpenSolaris is a cool OS, but it's lacking a lot of software packages present in all Linux distributions. This should improve gradually, but in the me...

December 21, 2008

HOWTO: compiling VLC + live555 + all major codecs on Ubuntu

[Updated on 2009/04/03] VLC 0.9.9 is out. Here is the updated tutorial . In yesterday's post, I showed you how to build a pretty complete ffmpeg . Tod...