Web History Center Member

Two years ago, I helped my school organize a World Wide Web conference entitled WWW@10: The Dream and the Reality. During that conference, I met several Web pioneers including Robert Caillau, Ted Nelson, and more. While that experience was great, more would come. Robert Caillau, Professor Pickett, and I were walking across campus from Hatfield Hall and I mentioned that we should create a center for Web history with the resources that had been unearthed in planning the conference. Little did I know that it would become a reality. Anyhow, Caillau mentioned that somebody had already gone around to most of the Web pioneers and interviewed them exhaustively and had subsequently disappeared. Consequently, Professor Pickett tracked down the person who had done these interviews and talked to him about making use of what had already been gathered. That person who had disappeared was Marc Webber, who ran webhistory.org. Last year, Professor Pickett got approval to begin a center for Web history at Rose-Hulman Institute of Technology and we have been looking for groups with which to partner since then. Even with the help in organizing the conference and the initial suggestion to have a center for Web history, I was never officially connected with the project; that is, until now. A few days ago, Professor Pickett extended membership to me with the work I had done and interest shown in finding other project partners and general interest in Web history. Check out the revived Web history project.

Bugs in OpenCV

The work I do right now at Rose-Hulman Ventures for Elastic Image involves the use of OpenCV, an open source computer vision library. Earlier this summer we updated from OpenCV 0.9.5 to OpenCV 0.9.7. However, portions of our software quit working after the update. We recently downgraded to 0.9.5 again until we can figure out what the problem is in 0.9.7. Some theories were that internal formats of OpenCV changed and we were relying on certain internals of OpenCV. However, I was invesigating it today and found that there is a problem with 0.9.7’s implementation on cvSetIdentity. That function is supposed to set the diagonal of a matrix to a given number and everything else to zero. The problem is that the same test case code shows that 0.9.7 is only setting position 0, 0 to the value and not the entire diagonal. This is confirmed in three ways. Looking at the internals of the matrix confirms shows this issue as does cvTrace which tells the sum of the diagonal and cvmGetAt which retrieves the element at a given position in the matrix. Hopefully, the issue will get sorted out and we can update to 0.9.7 or later again. That version has a newer chess board detection algorithm that works better when lighting conditions are not ideal.

Memory Leaks bite the dust

In my work for the summer, the software simultaneously captures three images of an object with a grid printed on it. The three images are used to build a three-dimensional model of the object. There is information added to this as well, but it is related to the process that is unique to the company so I can’t say what it specifically is. However, we put new cameras into the system this summer. The new cameras are 22208×3000 resolution. With the larger image sizes the program leaks memory like never before and is incredibly slow with all of the data in memory being processed.
To tackle these issues, I have been using Valgrind. Initially, the software used so much RAM that even with a 4GB swap file, memory would run out with the extra memory used by Valgrind. I then contacted other Valgrind users and they suggested I try a newer version that had less memory overhead. It worked. I have since discovered the following  leaks: memory was not released from several structures. The user interface was never freed. There were some miscellaneous unclosed file descriptors. Anyhow, these are mostly fixed. I would, however, like to make the user interface lazily initialized so that the memory intensive portions can be freed when not displayed.
There are definitely other issues remaining, but they are being tackled each day.

Yet Another Blog Attempt

This is yet another blogging attempt. I have tried several times before, but I never blog consistently enough for my blog to be of any value. Anyhow this entry starts yet another attempt.