Tuesday, November 21, 2006

Replacing ANSI Portuguese characters by HTML entities

In order to improve the quality of web pages, characters in the upper half of the ANSI table should be replaced by corresponding HTML entities. Otherwise, browsers with different configurations might show incorrect characters.

To automatically replace these characters, I wrote two small bash scripts. The first, html_entities.sh, performs the replacement in na single file and the second, exec_html_entities.sh , recursively replace characters in all files in a given directory and all its subdirectories.

Saturday, September 09, 2006

SIBR prototype installation deployed

A couple of years after finishing the Sketch & Image Based Retrieval prototype, I finally had time to prepare an install package of this application. This package includes a brief user guide that will help users through configuration and drawing set classification process.

The SIBR prototype is available for download here.

Friday, September 01, 2006

3DISE proposal submitted

Our project proposal for the 3D IST Search Engine was submitted within the deadline. Now it's time to focus again on QiQA.

Monday, August 21, 2006

DrawingReader deployed

To allow easier analysis of part drawings, I developed a small tool, called DrawingReader. This tool reads vector drawings (currently DXF's) and is capable of run simplification and polygon detection algorithms in the drawing. With DrawingReader I expect to be able to easily test the changes and improvements I will make in the feature extraction algorithms.

Screenshot of DrawingReader prototype.

Friday, August 11, 2006

Backing up my data

After this lost week, fighting viruses in my computer I decided to do something I should have done a long time ago. A complete backup of my data. Therefore, I have just finished to store the contents of "My Documents" and my e-mail in DVD, backing up more than 3GB of compressed data.

Thursday, August 10, 2006

Major virus infection solved.

On last monday, my computer was infected with a virus. After more than three days of hard work I was able to clean it up. Indeed I had to remove three different trojans. Anyway, it's all fine now and I can resume my work.

Tuesday, July 11, 2006

SIACG 2006 in Santiago de Compostela

Last week I've been in Santiago de Compostela (Spain) to attend the 2006 Ibero-American Symposium in Computer Graphics (SIACG 2006) . There I presented a paper focusing hand gesture detection using CALI. Together with Ricardo Jota and other Portuguese colleagues we saw the semi-finals world cup game between Portugal and France, which we loose. But besides that major drawback and the fact that, due to mechanical problems, I had to give up making the trip in my motorbike, this journey was very fruitful and funny.

PS: Anyone have some pictures from SIACG?

Thursday, June 01, 2006

Unexpected Deadlocks!

Yesterday, I spent the whole afternoon trying to fix a bug in EditION application. After a few hours of despair, I finally found the source of the problem. Its was caused by an unexpected deadlock of the working threads. Despite all my efforts of avoid such situations when programming threads, I relentlessly inserted mutex lockers inside class destructors. This was a very bad idea. Usually, a destructor calls other destructors. This way, an unexpected deadlock can easily happen.

Thus, yesterday I learned an important lesson: Thread synchronization in destructors should be used very carefully.

Wednesday, April 19, 2006

New version of QiQA UI

User interface for QiQA query application was redesigned. To use a large number of textual fields in the query it was necessary to change the way textual queries are introduced. Below is illustrated the non-functional prototype of the new user interface.

Redesigned user interface for QiQA

Monday, March 13, 2006

QiQA classification module "talks"

I have been developing the QiQA (Quick Quotation Assistant) classification module. This should index existing documents in several computers into a centralized server. After this classification, it will be possible to make keyword searches in the server and find related documents. Currently, I am focusing on communication (RMI-based) between server and clients. The user interfaces and basic communication features for both server and client are now implemented.

Click to enlarge.
QiQA classification module

Thursday, February 16, 2006

Return of Deflektor

The last time I developed anything in Java was a few years ago. The "Deflektor" project, in which a team of collaborative agents play on their own this old-times game. Since I now need to create in Java a distributed application, I decided to take a look at "Deflektor". After a few hours, I was able to run it properly.

Deflektor and agents working.

Monday, February 06, 2006

Trip to Plzen

Last week I've been in Plzen (Czech Republic) attending the 14th International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision (WSCG 2006) . There I presented a paper, titled "A Calligraphic Interface for Managing Agents". Besides showing our work, I saw what other researchers on computer graphics, visualization and computer vision are doing. Despite the freezing cold, as you can see in picture below, everything runs smooth.

Freezing in the University Campus.

Tuesday, January 24, 2006

BareHandCALI with marks

Extending the work developed with Ricardo Jota in BareHandCALI, we integrated in this prototype the mark detection algorithms implemented by the MultiModal Painter team. It is now possible to see on screen the features extracted by CALI from hand poses, using both mark or markerless detection.


Wednesday, January 18, 2006


In the last couple of days, I have been, with Ricardo Jota, developing a prototype to test the behaviour of CALI library in hand pose detection. We had just finished the preliminary version of BareHandCALI. This version uses a standard web cam and simple computer vision algorithms to detect hand contour. This contour is analysed by CALI and extracted features are presented on screen.

BareHandCALI analysing a hand gesture.

Friday, January 13, 2006

Reading XML with TinyXml

The next version of EditION tool should support template-based entities. These templates would be specified in XML files. To implement this feature, I need to integrate a XML parser into my VC++ code. After comparing a few libraries, I chose TinyXml. This simple, small, C++ XML parser is powerfull enough for my need and very easy to learn. It took me only a couple of hours to learn how to use this parser and it was very easy to integrate in my code. I strongly recommend TinyXML to anyone who wants to manipulate XML data in C++.

C++ versus MatLab

After a discussion with the MultimodalPainter senior students regarding performance of RGB to HSV conversion algorithm in MatLab, I decided to compare the time needed in MatLab and C++ compiled files to run a very simple algorithm. To that end, I wrote the following pseudo-code in both programming languages:

Function SimpleCycle(Matrix M) {
ACC is a dummy variable
ACC = 0

for each line L in M
for each column C in M
ACC = ACC + value stored in M(L,C)

return ACC

Using as input an integer matrix M with size 350x350 , this simple algorithm proved to be a good choice to show the performance differences in MatLab and C++. Below are the results obtained in informal tests:

Based on these results I made no comments. I just want to point out that the test programs took less than five minutes to write and run from scratch in MatLab, but more than twenty minutes in C++ (including the matrix creation and time measuring routines incorporation).

Tuesday, January 10, 2006

Freeing space in server

I've spent a couple of hours "helping" our server administrator. To that end, I backed-up of my files in the group server and then I made a selective clean up. This way I freed more than 200MB from the "/home" volume. Unfortunately, I am not the major responsible for the lack of disk space and this 200MB means less than 1% of total volume size.

Thursday, January 05, 2006

BibTeX in resources page

I added a field for the BibTeX reference in my PhD resources page. Using JavaScript, XML and XSL I inserted a small button in each entry to open a pop-up window with the complete BibTeX reference, when it exists for that entry. One example of this new feature can be viewed in entries of "3D Models Retrieval" resources page.

Tuesday, January 03, 2006

Camera-ready version submitted to WSCG

The camera-ready version of our paper titled "A Calligraphic Interface for Managing Agents" was submitted to 14th. International Conferences in Central Europe on Computer Graphics, Visualization and Computer Vision (WSCG 2006).