Nicolas Kruchten

Nicolas Kruchten
writes code and visualizes data
in Montréal, Québec, Canada.

Galapagos

Galapagos

In 2003, I wrote a neat and powerful piece of software called Galapagos for my 4th-year undergraduate thesis (download PDF). It was a framework for the development of advanced (i.e. distributed, parallel and/or hybrid) evolutionary algorithms, applicable to a wide range of computational challenging optimization problems. I applied it to a variety of transportation-related problems at the University of Toronto.

Full post »


Rubicon Tech Talk: The Algorithms Automating Advertising


I was invited to speak on a panel at a Rubicon Project product launch, and this is the video of the event.

Full post »


Volunteer Database for Santropol Roulant

Volunteer Database for Santropol Roulant

There’s an organization in Montreal I think is awesome called Santropol Roulant which, among other things, has a meals-on-wheels operation. They have hundreds of volunteers and wanted to upgrade the system they used to store their volunteer information, so I helped them out, and I’ve open-sourced the results, in case any other non-profit wants a very simple volunteer-list management system.

Full post »


My QR-Code Business Card

My QR-Code Business Card

This is the machine-readable back of my new nerdy QR-code business card!

Full post »


Real Time Bidding, Characterized


There doesn't appear to be a good Wikipedia entry for RTB for me to link at the moment, when I want to blog about it so I'll draft my own explanation here. (Edit: there is an entry now, but I like my characterization better!) Keep in mind while reading this that I'm looking at RTB as a software engineer with an interest in economics, rather than as an ad industry veteran!

Full post »


Using make to Orchestrate Machine Learning Tasks

Using make to Orchestrate Machine Learning Tasks

One of the things we do at Datacratic is to use machine learning algorithms to optimize real-time bidding (RTB) policies for online display advertising. This means we train software models to predict, for example, the cost and the value of showing a given ad impression, and we then incorporate these prediction models into systems which make informed bidding decisions on behalf of our clients to show their ads to their potential customers.

Full post »


Datacratic's Dataviz System

Datacratic's Dataviz System

At Datacratic, working with data often means data visualization (or dataviz): making pretty pictures with data. This is usually more like making fully machine-generated images than carefully laying out "infographics" of the Information Is Beautiful school but I find they usually end up looking pretty good. There are lots of good tools for graphing data, like matplotlib or R or just plain old Excel-clone spreadsheets but what we use most often is Protovis, the Javascript library for generating SVG, coupled with CoffeeScript, which is a concise and expressive language that compiles down to Javascript.

Full post »


Rancilio Silvia iPhone Remote Control

Rancilio Silvia iPhone Remote Control

This is a screenshot of what I pull up on my iPhone every morning now after its alarm clock wakes me up. That's right, it's an interface to turn on my espresso machine so that it will warm up to a specific temperature by the time I'm done snoozing! I can even look at a real-time plot of the temperature to confirm that it's holding where it should be and doesn't need to bumped up or down a degree.

Full post »


Statsd, Graphite and Nagios

Statsd, Graphite and Nagios

At Datacratic we tend to worship, like Etsy (and AppNexus!), at the Church of Graphs. We've even started using Statsd, the system they've released to collect stats and relay them to Carbon for display in Graphite. And by display, I mean display on a dashboard visible to the entire dev team at the office, as seen above! Statsd is a very simple system to which you can send UDP messages about various stats you want to track, which it then aggregates and passes along to Carbon, which stores them in Whisper, Graphite's back-end data store. That's a lot of moving parts but it works very well. Sending stats to statsd is extremely easy from any language (we do it from Javascript and C++) and carries low overhead, which is key for the type of work we do.

Full post »


Graphing Silvia Temperature on iPad


So I finally got around to working on my Silvia Mod Plan, getting all the way to Step 5! The video above is a demo of the setup I have to show a real-time graph on my iPad of the boiler temperature in the Silvia.

Having installed the thermocouple in the Silvia and played with my TC4 shield, my initial plan was to use the Arduino to transmit data to my iMac using XBee as a wireless serial link, where I would run a NodeJS process which would read data from the USB port and which would communicate with the iPad via a WebSocket over Wifi (phew, mouthful!). Ideally the Arduino would speak Wifi but in the meantime I figured I'd play with this setup. I chose NodeJS because it seemed really easy to set up WebSockets using socket.io, and that seemed like a good way to feed data to Smoothie Charts for real-time graphing. I rewrote the code in CoffeeScript, because it's the best way to write NodeJS code IMO (a discovery I made after writing the first version of this code 4 months ago) and because it's so fitting for this project!

Full post »



© Nicolas Kruchten 2010-2017