Category Archives: Research

Matlab with CGI

If you call Matlab from, say, Perl, and it segfaults on startup with this message, please note that you must set the HOME environment variable, as Matlab requires a home directory. I used /tmp, but feel free to set it to whatever accessible directory you wish. It took me nearly 2 hours to figure this out, so I am posting this in the hope that it will save others from repeating this.
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005

————————————————————————
Segmentation violation detected at Wed Jul 25 13:37:45 2007
————————————————————————

Configuration:
MATLAB Version:   7.0.4.352 (R14) Service Pack 2
MATLAB License:   213660
Operating System: Linux 2.6.8-1.521smp #1 SMP Mon Aug 16 09:32:47 EDT 2004 x86_64
Window System:    No active display
Current Visual:   None
Virtual Machine:  Java is not enabled
Default Charset:  US-ASCII

Register State:
rax = 0000000000000000   rbx = 0000000000000001
rcx = 0000000000000000   rdx = 0000002a959cf9a0
rbp = 0000007fbfffbdf0   rsi = 0000000000000000
rdi = 0000000000000000   rsp = 0000007fbfffbdb8
r8 = fefefefefefefeff    r9 = 0000002a96c8cb50
r10 = 0000000000000001   r11 = 0000002a9593ccb0
r12 = 0000000000000000   r13 = 0000007fbfffcf50
r14 = 0000002a95af70e0   r15 = 0000002a959cf9a0
rip = 0000002a96bfe790   flg = 0000000000010246

Stack Trace:
[0] libc.so.6:strlen~(0x7fbfffcfa0, 0x2a95c4ffa5, 0, 0) + 48 bytes
[1] libmwservices.so:svGetToolboxCacheFile(0, 0, 0, 0) + 31 bytes
[2] libmwbridge.so:mnRunLoginScript()(0x7fbfffd008, 0x00590420, 0x7fbfffd170, 0x2a95d7d61b) + 549 bytes
[3] libmwbridge.so:mnRunPathDependentInitialization()(0, 0x004015a0, 0, 0x7fbfffd1b9) + 28 bytes
[4] libmwmcr.so:mcr_init_handler(long)(0x7fbfffd430, 0x0058e360, 0x00592470, 0x2a96d99cf8) + 539 bytes
[5] libmwmcr.so:mcrInstance::mcrInstance(mcrOptions&, MfileReader*)(0x2a97559b79 “libc.so.6”, 0x2a97673dc3 “libc.so.6”, 0x7fbffff120, 0x2a97673dc3 “libc.so.6”) + 484 bytes
[6] MATLAB:mcrMain(int, char**)(0x00401730, 0, 0, 0x004015c0) + 226 bytes
[7] libc.so.6:__libc_start_main~(0x7fbffff7df “-nosplash”, 0x7fbffff7e9 “-r”, 0x7fbffff7ec “test”, 0x7fbffff7f1 “-logfile”) + 164 bytes

Please follow these steps in reporting this problem to The MathWorks so
that we have the best chance of correcting it:

1. Send this crash report to segv@mathworks.com for automated analysis.
For your convenience, this information has been recorded in:
test.out

2. Also, if the problem is reproducible, send the crash report to
support@mathworks.com along with:
– A specific list of steps that will reproduce the problem
– Any M, MEX, MDL or other files required to reproduce the problem
– Any error messages displayed to the command window
A technical support engineer will contact you with further information.

Thank you for your assistance.  Please save your workspace and restart
MATLAB before continuing your work.

Ruminations Over Salad for "The Optimization of Systems"

While eating at the local Wendy’s (basically the only source of food that is open past 2 PM in all of Templetown – words cannot describe how much I hate this city), I noticed two important things:

  1. Potentials (Materials, Ideas, Things that aren’t yet in their final Form) always existed in one form or another since the birth of the universe, yet are only usable after undergoing a change or series of changes. The essence is eternal, but the structure is only transient. For example, “this salad did not exist yesterday”: certainly the salad as an assembled component did not, but the lettuce, tomatoes, and partially hydrogenated soybean oil did exist. Even before they existed in those forms, they existed as part of a plant. The First Law of Thermodynamics guarantees this.
  2. Wendy’s now serves breakfast.

Expanding more on the Potentials, this should be a very intuitive, even downright obvious, idea. What makes it interesting is the particular framing of my thoughts: I realized that this could be used to derive a potential function (as in the amortized analysis technique) that serves as a “signature” of the changes physical objects undergo. I need to develop the idea further, but it’s something to talk about if I ever get around to writing “The Optimization of Systems”.

An interesting alternative

Now that I’m thinking about interviews, I just realized a very interesting idea for an alternative: the bottom line is performance on the job, so that’s all we should really test.

Why not hire the candidate for a day and see how he/she does? That seems like the most pragmatic interview of all.

There is surprisingly little literature that treats an interview as a statistical test. I sense a research opportunity.

Sensitivity and specificity of an interview?

My newly-discovered penchant for freezing up and forgetting rudimentary facts during interviews makes me question the sensitivity and specificity of a multi-round interview process. That also makes me question whether such thing as a ground truth for good employees exists (maybe performance on the job?)

Anyway, once we have a ground-truth, we can perform an ROC analysis at various performance “thresholds” (note that we need only interview a population of candidates once; the criteria are the stringency of selection). The area underneath the curve would yield a measure of the method’s accuracy, while the curve itself would illustrate the relationship between sensitivity and false positive rate (that is, how many good candidates are hired vs. how many bad ones are hired). Of course, what we’re really interested in is the Positive Predictive Value: how efficiently does the interview process select good employees?

I wonder if any studies were performed on this? Hopefully so; I’d hate to think that such a stressful process exists simply based on tradition.

Another cancer treatment idea

I’m probably making some false assumptions here, but bear with me for a moment…

Malignant cells invade adjacent tissue.

Tissue may be normal or cancerous. Hopefully cancer cells can’t tell the difference.

Treatment is a natural selection process. Cells that survive the treatment proliferate and form treatment-resistant recurrences.

My idea is this: Examine a tumor for an area that is sensitive to chemotherapy or another treatment. Remove these cells (along with the rest of the tumor in a patient, but don’t use the rest), optionally genetically engineering them to curtail their ability to evolve, making them secrete some sort of treatment molecule (a telomerase antagonist would be a very good choice, IMO), or doing other things that may help treat the cancer. Grow these cells.

Now inject them back into the patient at the original tumor site.

Wait a little while and then blast the whole thing with whatever treatment those cells were vulnerable to.

The optimal hypothetical scenario is that the vulnerable tumor cells displace the original tumor, invading those cells just as they would invade normal tissue. The treatment then eradicates them, leaving the patient with virtually none of the vulnerable cells and substantially fewer resistant cells than they would otherwise have. Not a complete cure, but it should boost survival time significantly and may even boost cure rates due to elimination of micrometastases.

I’ll keep thinking. I’m still officially researching on the diagnostic side rather than the treatment side, but perhaps I have an audience (or at least someone to tell me why it won’t work) for these sorts of ideas now that I work with oncologists.

Ivies

Adding to the list, no fewer than three people who seem extremely intelligent criticized the situation that the ivies forced me into today. Coupled with almost all of my professors, including two on the grad. level that didn’t even know I had applied to those schools in the past, the list is becoming quite extensive.

Really, mathematical talent is not something you just brush off and refuse to train. Especially not after evidence of it starts to manifest.

Stress and grad. school

You know there’s something wrong with the system when the people in charge say things like this:

“Jorge Cham’s talk was humorous and helpful. His cartoon strip has been a giant plus in helping graduate students acknowledge and cope with the stress they experience.”

– Isaac Colbert, Dean of Graduate Students, M.I.T.

Rather than trying to reduce the stress the students feel in the first place!

Classifying MBTI from a text sample

Using text mining techniques, I am going to attempt to build a naive Bayesian classifier capable of determining a person’s Myers-Briggs type from a sample of text that they write. This should be a fairly quick project once I finish with everything else. Whether it works or not is another story. Most likely it will, but no one will use it, so I’ll never accumulate a sufficient training set. No one uses anything I create these days, despite the constantly improving quality of my creations.

Anyway, if it does work, it’s publication-worthy, as this sort of thing hasn’t been done before, as far as I can tell. It could open up a whole new approach to automated psychological testing.

Update: It’s been done by uClassify. Pretty neat stuff.

Independence

To the world: either let me manage my own time or show me that you can manage mine as effectively as I can. I should not be forced to remain idle for long periods of time – it’s a waste of both my time and yours. My time is one of my most valuable resources: I can spend it doing anything from staring at the walls to curing cancer (something my group is actually trying to do).

As a subset of this, if you’re going to coop me up in a lab/office, please give me work to do or let me seek my own out. If I’m bringing Gödel, Escher, Bach with me to the office (and I’m not working as a professional philosopher) or I’m furiously scribbling down mathematical research (and I’m not working as a professional mathematician), that is a sign that you are not using my time effectively enough to keep me busy. Even if the work is fascinating, it must more or less fill the time that I’m forced to be there or there really is no reason for me to be there at all.