Rafael Baptista

Get USB Drive Serial Number on Os X in C++

August 10, 2012

Getting the serial number for a USB Serial drive on Os X is tricky just like it is to get a USB serial number on Windows. We want to get the serial number of a USB Flash disk that is…

Overloading Global operator new and delete

June 7, 2012

Programmers are often advised not to overload global operator new, and to stick to overloading just class specific operator new. The arguments against are many, but they basically boil down to that it is difficult to do it correctly. But…

Get USB Drive Serial Number on Windows in C++

June 1, 2012

Getting the serial number of a USB device in Windows is a lot harder than it should be. ( But it’s a lot easier than getting the USB serial number on Os X!) It is relatively simple to get USB…

Pseudo Functors and Template Magic

May 29, 2012

A functor is an object that works like a function. That is it overloads operator(). They are useful when you need to create a series of functions each of which works mostly the same way, but you want that instance…

Implementing Portable Threads and Mutexes

May 26, 2012

Implementing a portable framework for multi-threading doesn’t have to be difficult or error prone. With the right framework, implementing multi-threaded programs can be pretty simple, and you can hide all the platform dependent functions. You can also implement your threading…

Generating 64-bit Random Numbers in a Given Range

May 14, 2012

There are good standard ways of generating 32-bit random numbers. If you need something really simple, it is possible for example to generate decent random numbers with a Linear Congruential Random Number Generator:

Using BerkeleyDB to Store Serialized Objects in C++

May 10, 2012

I’ve been working on a C++ interface to Berkeley DB to support some ongoing projects. The goal is to create an interface that allows me to store serialized C++ objects in a database. Each object is flattened into a text…

Link Errors Compiling MySQL C++ Programs on 64-bit Windows

May 9, 2012

I’m starting to code up a simple MySql connector class. Here is the code for the class. First the header:

Generate Stack Traces on Crash Portably in C++

May 5, 2012

There are three basic steps to getting this done, trapping signals, getting the stack frames, and then demangling the c++ symbols. Trapping Signals When a program crashes the operating system will sent it a signal, to give it one last…

About Me

My name is Rafael Baptista. I lead teams who build iconic digital products used by millions of people every day.

I'm currently working on an online travel agency called SkyMonde.

I was previously Head of Product at KAYAK. I built a very successful multi-brand SEO program for them that also included brands like OpenTable, Momondo, CheapFlights, Swoodoo, Checkfelix, and HotelsCombined.

I occasionally advise startups on SEO, the most successful of which is Insurify.

Previously I was CTO of Mimoco and worked on SEO at TripAdvisor focused on flights and vacation rentals.

For many years I was a game developer, helping make games for Harmonix, Apple, THQ, LucasArts, Nickelodeon, Ubisoft and many others. My biggest selling game was the Rockband Series.

I've worked on speech recognizers at Kurzweil, and genome mapping at the MIT/WIBR Human Genome Center.

I wrote the web server that this site runs on.

Social

linkedin icon stackoverflow icon

Projects

SkyMonde

An online travel agency

Demangler.com

Automatically demangles gcc C++ symbols

KJam Build Tool

A build tool like make or bjam