Tuesday, June 23, 2009

[code] The library watch

"There are no bad tools, there are only bad workers" Well, there may be some truth to this, but surely good tools cannot hurt! Any skilled programmer has a few libraries up his sleeve, ready to be launched after some nasty problems lurking at him.

In fact, I find libraries to be an essential tool for a researcher in a hurry to prototype ideas - which often involves solving non-trivial sub-problems. So, what libraries are you using in your every day endeavors?
Here are my favorites (I'll skip the basics such as libpng, zlib, etc.):


  • Loki - the libary that made me realize what templates are for. Andrei Alexandrescu's book is a must read!
  • TAUCS - linear solver for sparse matrices
  • ANN - approximate neighbor search
  • AntTweakBar - GL/D3D gui, simple, clean and powerful
  • LUA - scripting, very easy to integrate
  • tolua++ - makes lua even easier to integrate with c++
  • TClap - command line parameters, template based
  • ODE - physics
  • Bullet - physics
  • fftw - fast Fourier transforms
  • SDL / SDL_net - media library. I essentially use it for multiplatform threads and networking. A bit old-school but still very effective.


Now, some libraries I am planning on using much more regularly:


  • Boost - how could I live without it! (the answer is Loki+Tclap+SDL+home-grown-stuff ;-) but of course Boost is a must-use)
  • SQlite - SQL database in a local file (no server, no config, all is done from your application). Thanks to Anteru for pointing this one out!

Wednesday, May 6, 2009

[research] Video of our SIGGRAPH paper

Our paper on procedural textures was accepted at SIGGRAPH 2009!!!

We will release the paper soon, but in the meantime you can check out our paper's video on the project webpage.

Wednesday, April 1, 2009

[conference] Eurographics 2009

I am currently at EG 2009. Interesting papers, brainstorming, fun and - since we are in Germany after all - a fair amount of good beer :-)

Marcio Cabral will be presenting our 'Mesh Puzzle' paper, and I'll be sharing a talk with Li-Yi Wei to present our STAR report on texture synthesis; co-authored with Vivek Kwatra and Greg Turk.

Btw, don't miss the tutorial implementation of our Parallel Controllable Texture Synthesis algorithm (SIGGRAPH 2005).

Saturday, March 14, 2009

[various] RotoPath


How much time do you spend navigating through folders every day? For me, the answer was: Way too much.

I decided to give a try to an old idea and created a very simple app to navigate through folders (folders only, this is not a file explorer!!). It presents folders in a wheel. A left click goes to the next folder, a right click opens explorer on the folder. The wheel can be displayed at any time by pressing Left-Control and Left-Windows simultaneously.

As can be seen some folders are shown in red: These are the folders you use most often. Hence, they are visually outlined so that you can quickly get to the places the most important to you.

There are three special icons in the middle: Open command line at current folder, Show favorite folders, Go back to the computer root.


RotoPath is brand new and will likely have a few bugs, but it already helps me a lot on an everyday basis. Maybe you'll find it useful as well.

[No longer available]
Enjoy!

Monday, March 2, 2009

[linux] Fedora saved my day!

Today I just lived what I consider to be a true computer technology miracle.

I was teaching in Paris today. The class involves powerpoint slides and then some OpenGL programming (each student has a computer to work with). As usual, I prepared my slides and the source code for the gl tutorials on my laptop. What was not usual is that I *forgot* to backup the files on my usb stick. 'So what?' did I think when arriving at the airport, it would really be bad luck if my laptop crashed today.

Guess what.

Windows soon refused to boot, chkdsk kept detecting more and more bad sectors at every run, and so on. The usual story. The dell repair tool only knows how to format the entire thing (I have a XPS M1330, and yes the NVidia card was faulty), and there was no booting windows. After the first battery emptied I felt very lonely, with my faulty computer, in the middle of the airport with no power plug in sight. 'If only I was home, I could boot from my Knoppix CD, access the NTFS drive and save the whole thing on a USB stick.'. And then I saw the light. Here it was, looking at me through the book shop window: The February issue of 'Planete Linux' - a French magazine about the Linux OS - and the distribution of the month was Feodra 10 Live with an included CD!!!

After spending 6.20 euros on the magazine - not a bad read by the way - I quickly tried it out. After a few minutes I had a full fledged Linux running! I was able to mount the faulty ntfs partition (with scary errors) and was able to retrieve my slides!

Arriving in the classroom, already feeling lucky enough, I was planning to ask a student for his laptop to display the slides. But, out of curiousity, I tried the included openoffice. It did open the slides with success! So, while I was at it, feeling quite invicible, I plugged the projector to my laptop-with-fried-hdd-but-working-Live-Fedora. And *it* *worked* *just* *fine*.

So here I was, with my CD-only OS, displaying my slides with OpenOffice on a DLP projector and all this for 6.20 euros when 2 hours earlier I was screaming over my dying Windows-powered fried-hdd laptop.

Needless to say, Fedora just won an unconditional fan!!!! I am actually writing this entry using the very same Fedora Live CD, through the included WiFi support.

Thanks guys for saving my day :-)

Tuesday, February 3, 2009

[code] SAPI

I recently rediscovered SAPI, the Microsoft speech API. I used it a long time ago, and basically forgot about it. Which is a shame, because it is a really fun tool to play with. It is extremely easy to make your computer talk. While the voice is a bit aging under XP, the Vista voice is reasonnably good.

For those interested, here is how to call SAPI from C#.

Friday, December 12, 2008

[code] Compiling on a share with VC2005

While trying to compile on a share (with all permissions) I got an error message concerning the opening of a '.rsp' file. After a bit of search it turns out to be a known issue.

To fix it, simply redirect temporary files to a local directory, such as:
$(temp)\$(ProjectName)\$(ConfigurationName)
(setting in Configuration Properties -> General, Intermediate Directory)

More info on
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101276