Archive: 2010

CMake Tip: Find the path to Visual Studio

December 28, 2010 No Comments by Richard

Finding ATL headers I needed to find the ATL headers that should be used with the currently selected generator in my CMake project (FireBreath). The reason for this is that if the user is running Visual Studio Express edition, the ATL headers won’t be there so we need to look for the Windows DDK (Driver […]

Read More »

FireBreath Tips: Asynchronous Javascript Calls

December 1, 2010 8 Comments by Richard

Never block a Javascript call! One cardinal rule of browser plugins is that you should never block the thread when processing a method or property call from Javascript.  In FireBreath, that means that any method or property on your JSAPI must never block, but should return in a timely manner. The reason for this is […]

Read More »

FireBreath Tips: Drawing on Windows

November 24, 2010 5 Comments by Richard

FireBreath Window Abstraction It is an interesting thing to me that so many people seem to have a hard time understanding how the FireBreath windowing abstraction works, since to me it seems fairly clear. Of course, I wrote it, so that’s probably the reason =] There are a few things you should understand before you […]

Read More »

FireBreath Tips: Working with Source Control

November 19, 2010 4 Comments by Richard

FireBreath, Source Control, and You Recently I have been asked repeatedly about how to properly use Source Control systems with FireBreath.  Everyone has their own idea of how this should work, and that’s fine — in fact, most of my suggestions you may decide to ignore.  However, I want to put forth what I consider […]

Read More »

Resizing an image with GDI+ with C++

November 11, 2010 6 Comments by Richard

Resizing images Resizing images is a fairly common need; there are lots of libraries around that do this.  However, I just needed to create thumbnails on-the-fly, and I certainly didn’t want to triple the size of my binary by linking against ImageMagick just to support resizing common image types. GDI+ has the capability to do […]

Read More »

FireBreath Tips: Dealing with JSAPI objects

November 9, 2010 4 Comments by Richard

FireBreath Tips and Tricks I have decided to start writing some tutorial type information for solving specific problems using FireBreath.  I don’t know how often I will post on this topic, but my goal is to do a series of short “tips and tricks” posts whenever I think of something that may not be obvious […]

Read More »

Integrating doxygen and confluence

October 19, 2010 4 Comments by Richard

FireBreath has a new website This last week FireBreath has taken a big step — we have a new website at The reasons for the move are varied, but what it comes down to is that Google Code’s wiki, while pretty decent for small projects, simply isn’t powerful enough to handle documentation for a […]

Read More »

Solr DisMax gotchas: fun with stopwords and punctuation

September 17, 2010 No Comments by Ben

I have been using Apache Solr on a recent project for my employer, and ran into some gotchas. Notably, I had issues with a DisMax query not working the way I expected because of inconsistent stopwords configuration on the fields being searched. I also ran into a problem with words being tokenized with their surrounding punctuation, […]

Read More »

A year in the life of an open source project – FireBreath 1.2 released

September 15, 2010 7 Comments by Richard

Starting a new open source project Beginning an open source project is probably one of the more cliché things to do in the industry. How many open source projects are out there that have almost no support, haven’t been updated in years, or are just plain useless? This is the story of how I created FireBreath […]

Read More »

Get help for browser plugins and firebreath

September 7, 2010 1 Comment by Richard

Having problems? The comments on this blog are full of questions particularly about browser plugins, and even more specifically about NPAPI plugins.  Now, I don’t mind helping people out at all; that’s how we all learn.  However, in an effort to help everyone help each other, I wanted to bring the IRC chat room for […]

Read More »