Undergraduate Research at the Vis Center

Richard Kaufman

Richard Kaufman

2011 Summer Intern

University of Puerto Rico, Mayagüez Campus

Project: Packaging STITCH

 

 

Journal Entries
June 18

This first week has been about settling at UK and the VisCenter [1]. I’ve met the awesome people I’ll be working around; I got an account on the computer I’ll be working with; found out where the food places are; and much more. 🙂 All in all it has been a week of learning.

This summer I’ll be working on the STITCH project.[2]

“The STITCH project is aimed at improving technology to make laparoscopy and other types of minimally invasive surgery less stressful, both physically and mentally, for the surgeon.” [2]

I feel great because I feel that my contributions are going to directly impact our lives. It will provide better tools and more information to the surgeon, which will in turn improve our health.

This week I’ve dipped my feet in the water. I’ve been reading about setting up multi-projector display systems [3]. I also helped a graduate student calibrate cameras, projectors, and set up a 6 projector display. The whole thing is larger than 10 times me! Impressive!

I hope that in the following weeks I get more into actual research. Theory is really interesting, but practice is more fun. 😛

[1] http://www.vis.uky.edu/
[2] http://www.vis.uky.edu/STITCH/
[3] http://www.crcpress.com/product/isbn/9781568813103;jsessionid=SLWI22Da9epo-46rixkNsg

June 24

The STITCH project is coming to an end after three years. In this final phase, we need to consolidates the various software that has been developed. To make it easy for a new user to obtain the STITCH software, I’ve been assigned the task to package the software in a debian package. This means that a GNU/Linux user with a debian based distribution, would be able to download STITCH and get it up and running with the double click of a button.

To make this I will be writing CMake files. CMake is a ” unified, cross-platform, open-source build system that enables developers to build, test and package software by specifying build parameters in simple, portable text files.” [1] The classic tool for building and packaging software in UNIX enviroments has been ‘make’. However, make files are difficult to write, hard to read, and harder to maintain.

This week I’ve been learning CMake, how it works, its syntax, and writing examples with it. I like it a lot!

Next week I will start translating makefiles to CMake files. If I don’t get stuck too much, I hope that by the end of the week I have at least one STITCH software already ready with all the necessary CMake files. My goal is that two weeks from now, the whole thing will be ready to be shipped!

Wish me luck! 😉

[1] http://en.wikipedia.org/wiki/Cmake

 

July 8

Last weekend was the Fourth of July weekend. I had a blast! I spent the whole day in Downtown, Lex. They had awesome music, booths, food, horses, and lots of good vibes all over the place. And of course, fireworks! I also helped my roommate and lab mate Sergio do a time lapse shot of the fireworks. Be sure to check it out! [1]

Now back in the lab. 😛 Well, I feel this week has had a lot of progress. I finished writing a CMake files for the smartImage software. smartImage is part of the software that has been developed for STITCH. Now I definitely feel comfortable working with CMake and translating those puzzling and confusing CMake files.

Here’s a fun thing I noticed while working on the CMake file. Well, since CMake is open source software, I was looking at some of the code I’m using, specifically CMake modules. When I’m reading the FindImageMagick.cmake file [2], I notice a familiar name in the file license. Let me copy paste that for you…

#=============================================================================
# Copyright 2007-2009 Kitware, Inc.
# Copyright 2007-2008 Miguel A. Figueroa-Villanueva <miguelf at ieee dot org>
#
# Distributed under the OSI-approved BSD License (the “License”);
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================

See the name Miguel A. Figueroa-Villanueva? He was my advisor for a research project I was working in at the University of Puerto Rico at Mayagüez! What a surprise! So, his contributions to C Make has made my work much easier. Awesome! 😀

I know that on my last post I said I would be done by this week. Well, not everything went according to plan. I did finished one of the files. Now I really hope to be done with the other software next Friday.

And to finish off this week’s journal entry, I’ll leave you with what I’ve decided will be my research question.

“Now that the STITCH project is coming to an end, how can we organize and package the STITCH software so it can be easily distributed, easy to install, and ready to be used?”

Peace!

2011 July 15

This morning we had a seminar about multi-disciplinary research. It was lectured by Bill Endres, from UK’s English Department. He is working with Dr. Brent Seales on the FOLIO project. He is also part of the team that scans and studies the facsimiles of old documents like the Chad Gospels.

Last week I talked about how I finally felt comfortable with CMake and Makefiles. Well, I got a lot of momentum and I finally finished the project. However, not the way I, or anyone for that matter, was expecting. After long work days, and a lot of code examination, I came to the conclusion that this project was not going to be able to be packed in a neat Debian Package. The problem is in the design of the code, specifically in the design of the Makefiles in the VIBE software.

VIBE is software that has been developed as part of the STITCH project. However, the Makefiles use Chromium’s Makefiles as a dependency, which in the end makes a huge spaghetti compile process. Why this has been done, I don’t know. However, my work is not to complain, but to solve problems, so that’s what I did.

That day I had a meeting with my advisor, Jens Hannemann, and talked about what we can do. In the end we decided that the sane and easy thing to do would be to place everything inside a virtual machine, and distribute that. That certainly works for the short term, but I would like to see nice software packages in the long term.

Today I’ve been placing everything inside a VM and it’s almost ready to be deployed. As soon as it gets revised, and everything works someway the VisCenter is pleased with, the my work here is done. I shall report back when that happens. 😉

Since I still have three weeks left here, I will start working in a new exciting project, FOLIO! I already got papers to read about Folio, but I haven’t done so yet. As soon as I do, I’ll start writing about it.

Peace!