Design Evolution => Designer Evolution

I’ve only been working in industry on real software since about February, and I’m beginning to be aware of just how much academia stunted my growth as a software engineer/designer. A Computer Science education (at least at University of Houston) doesn’t really teach you how to design or engineer software. They teach you a lot, but I’m pretty sure I never heard the terms IoC, MVC, Dependency Injection, Static Gateway, or even Design Pattern in any of my courses. I never got the opportunity to take Venkat’s OOAD course, which is probably one of the biggest regrets of my academic career, so maybe that’s what I’m missing. Even so, it seems a bit much to entrust the wholeness of modern OO software design to a single professor’s course.

The point of this post is that I’m learning a lot of design-related stuff, and I’m learning it fast.

Fast enough that the library I started at work about 2 weeks after I started working here is already unsatisfactory to me. It’s better than what it’s replacing, but I feel like it could be even better now that I have the experience of building it.

I guess that’s experience, but I’d rather just know it all up front. :)

Thesis/Dissertation AntiPatterns - EPS Files

So you’re writing your brilliant thesis in LaTeX, and very probably you are converting your figures and images to EPSfiles. That’s what I did, because nothing else would… you know… work.

Problem:
I deleted the originals. I figured “Meh, it’s just a format conversion I can convert it to anything later.” That was apparently wrong. I have all these figures, and for some reason this journal I submitting them to wants them in the most bizarre format (write your document in word, include all figures as separate files in CMYK format as TIFF files). That may not sound bizarre, but it’s very bizarre to me. I blame it being a bioengineering journal and I am used to computer science journals (who almost uniformly want LaTeX and pdf documents).

Anyway, I have been unable to convert these figures out of EPS to anything. I don’t know why. I guess if I had Photoshop I might be able to, but nothing I’ve tried can perform the task. ImageMagick pretends to, but I just get blank (but correctly sized???) images.

Moral: Keep your original files when you convert to eps. You’ll need them later. Regenerating them is a huge waste of time and in some instances may be impossible.

What do you do?

Shey tagged me with a meme asking “What do you do?” (in the context of job-ness).

It’s always kind of irked me that my friends in the corporate world don’t seem capable of telling me what they do. A typical inquiry goes something like this:

James: So, what do you do?
Corporate Friend: I create solutions for synergistic metaproblems.
James: … So, what do you do?

I usually give up before I actually learn anything.

So here is my attempt to tell you what I do, and hopefully at the end you’ll actually know what I do.

I work as a research assistant at the University of Houston, in the Computer Science department, in the Quantitative Imaging Lab. The lab belongs to Dr. Shishir Shah. We are a research lab which focuses on quantitative imaging, oftentimes in the biomedical domain. Quantitative imaging is the name given to imaging techniques which extract quantitative (real world) data from an image. E.g., measuring a cell’s exact diameter from an image, measuring a particles absorption, or measuring the height of a person from an image. We like to measure.

I have several project going on currently. My primary research topic is Vision Beyond Sight: Diagnosis and Classification of Thyroid Cancer Using Spectral Imagery. In collaboration with The Methodist Hospital, we are trying to create new automated methods for diagnosing and grading thyroid cancer using spectral imaging methods. Spectral imaging enables the capture of spectral information at every point in the imaging plane. Instead of capturing a single RGB triplet at each point as we would in a color image, we sample the entire visible spectrum (400nm - 700nm). Anyway, our efforts involve capturing spectral image data from thyroid biopsy slides and attempting to classify the slides according to their known diagnosis.

A secondary project I have is LMAL, the Light Microscopy Automation Library. It is an open source (albeit currently unreleased) library for microscope automation written in java. It abstracts out all the components of a common upright light microscope and allows computer control of the entire system from a standard API.

I am also responsible for some administrivia in the lab.

So what kind of tools do I use? We’re mostly a java shop. I use eclipse for java development. My favorite plugins are Subclipse and JAutodoc. I also use TortoiseSVN extensively. We have several SVN repositories, including one for publications and presentations. We use Trac for project wiki’s. I use Visual Studio 6/2003/2005 mainly for JNI when dealing with native drivers for microscope hardware. There are several newish java projects that may let me get away from JNI programming (Yay!).

So there. Do you know what I do now? I hope so.

Report: Presentation on Computing Research Association

This semester I am taking a Graduate Colloquium Class which consists of attending various seminars presented through the department and writing a short report about each one. It’s designed to give students an idea of what is going on in the research community. I have decided to include my reports in on this blog, as someone may be interested in them.

Presentation on the Computing Research Association given at the University of Houston Computer Science Department

Presenter:
Dr. Andrew Bernat
Executive Director
Computing Research Association
10/24/2007

Dr. Andrew Bernat presented on the work the Computer Research Association (CRA) performs to advance the status of computing education and research. The Computing Research Association aims to benefit those in the computing research fields which include Computer Science, Computer Engineering, and Information Technology. Their efforts are specifically targeted towards lobbying to influence governmental policy with respect to funding, providing resources which aid in fostering communities within the computing research field, and encouraging and facilitating the development of “human resources” in the form of educated persons. They employ various channels such as online and print newsletters, career postings, and blogs in order to disseminate information about their efforts and successes.

In order to further the community building aspect of their mission, the CRA hosts a biennial conference of department chairs from Ph.D. granting institutions in North America. They also have a series of programs and conferences for the advancement of women and minorities in computing research. In North America there is a great deal of disparity between the numbers of men and women enrolled in computing education programs.

Dr. Bernat also presented some interesting data concerning the trends related towards the number of computer science degrees produced and degrees declared nationwide. There was a significant decrease in the number of students declaring a computer science major after the dot-com bubble burst; however, that number appears to have either reached a plateau or increased slightly according to the latest data.

The CRA’s current efforts to influence governmental policy with respect to funding of computing research were also discussed. He presented compelling evidence in the form of brief case studies of research projects becoming billion-dollar industries that an overwhelming portion of economic growth in recent years is due directly to the growth of information technology industries.

Any attempt to build community and garner governmental support for computing research initiatives will prove to be of great benefit to the computing community as a whole. However, it is possible to envision some of their programs being rather controversial as they ultimately hope to fundamentally change the landscape of computing research.

Below are some related comments which would not fit the orignal report.

Many political factors influence the success and failure of CRA’s initiatives, and Dr. Bernat discussed the significant role they had in garnering acceptance for the American Competitiveness Initiative, an initiative designed to guarantee the United States’ competitive abilities in the future which included a hefty increase in research funding over ten years. Although many factors played their part in garnering more money for research and education programs, the CRA was able to obtain data which helped to create a negative PR storm with respect to funding of research.

Programs which I found particularly interesting are the CRA-W and the CDC which aim to promote the interests of women and minorities respectively in the computing disciplines.

Report: Interactive Physically Based Simulation

This semester I am taking a Graduate Colloquium Class which consists of attending various seminars presented through the department and writing a short report about each one. It’s designed to give students an idea of what is going on in the research community. I have decided to include my reports in on this blog, as someone may be interested in them.

Interactive Physically Based Simulation
Dr. John Keyser
Associate Professor
Department of Computer Science
Texas A&M University
10/01/2007

Dr. Keyser presented his work on Interactive Physically Based Simulations. The goal of his work is to produce real-time simulations which are not physically accurate but are good enough estimates to be visually believable.

Dr. Keyser discussed the differences between a real-time estimation and a physically accurate simulation in the context of applications. A training simulator for example may require real-time simulation whereas aerospace simulations require physical accuracy. An aerodynamics engineer will not be overly concerned as to whether or not his simulation is real-time if the results are completely wrong even if they are visually believable. His work also has applicability in the computer graphics domain, as it is beneficial for an artist to control scriptable elements. Scriptable elements are much easier to control than initial condition simulations. It’s difficult to understand how changes in initial conditions will affect the end result, so a physically accurate simulation is not of much use to an artist creating graphics for a movie.

Real-time simulation is achieved through simplification of the underlying simulation models, and through a careful decoupling of the various models. A particular simulation may be represented as several models in the computer in order to simulate the various effects taking place. Knowing which model depends on which other models, it is possible to minimize inter-model communication as time progresses. Real-time for his case is defined as a usable “action:response” cycle frequency with the simulation system.

Dr. Keyser showed various examples of his work including a fire simulation which included fuel concentration, smoke, and deformation of objects (such as matches). He also displayed a stunning water simulation which, in certain scenarios, was relatively close to a physically correct simulation. It used wave particles to simulate the waves spreading across the surface which was then rendered using a grid based approach. The use of a particle based system allowed hardware acceleration and provided nice looking results and a real-time interaction rate when using up to 300,000 particles simultaneously.