Archive for November, 2007

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.

Comments (4)

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.

Leave a Comment

Domain Specific Languages: The New DSL

Everyone is blogging about Domain Specific Languages these days. Even beyond DSLs there are a lot of languages these days to care about. C++, C#, VB, ASP.NET, Java, Ruby, Python, PHP. The list goes on and on! Programmers need to know more languages than even the most freakish polyglot savant.

Sometimes we like this. This is where DSLs come in. Sometimes it’s so much easier to express a concept in one language than another, especially if your language was designed for one specific task. But it’s becoming next to impossible to use all these different languages simultaneously without a huge amount of glue code being written.

Have you ever been to a multilingual house? People change languages in mid-sentence, using words which more closely reflect the concept they’re trying to communicate regardless of its language. They use words which come more easily to them.

Imaging being able to choose your language in mid-program, in mid-method even. Yes, projects like Ruby on the JVM and on the .NET CLR and similar languages on virtual machines are nice, but trying to bridge the JVM to the .NET CLR or, heaven forbid, native code is painful at best. We have all these languages, but sometimes we have extant code which needs to be utilized. This is still very difficult to do.

Maybe all the old code will have to die. It lacks metadata. It’s much closer to the hardware than anything running in a virtual machine. Can a virtual machine expose enough functionality that we no longer need to drop down below it to do nitty gritty things?

My perspective is warped I suppose, I have to interface with hardware components. Actual real-world hardware components, and it is terribly annoying. What’s more annoying is I know how difficult the problem is.

I hate when I only have problems and no solutions.

Comments (1)