Wednesday, March 3, 2010

Bipolar happy paranoia

I know, I know. No posts, no Super Paper Fridays, no random techno-babble. I feel I owe the folks that check in from time to time an explanation. So, here goes...

Personal issues abound.
I've had a disturbingly high number of family members pass away in the last 6 months, including 2 grandparents. I was extremely close with one, and the other was the last immediate family member from that entire half of the family (so that adds estate issues into the mix). If that wasn't enough, my mother has recently had some serious health problems, as did my aunt (the mother issues are just in the early phases, the aunt issues are hopefully over). So, if I'm not working, I'm thinking too much about all the other chaos, and generally not feeling the 'will to blog'.

Lab excitement and frustration
I REALLY want to talk about the experiments I'm running and the really, really interesting data I'm collecting, but I can't. It is isn't clinical trial related concerns, it's the sense that I've got something big and want to be extra careful at all stages of analysis and interpretation.

My super-secret project (shhhh!) is going along swimmingly. It took me about two years to assemble it conceptually, and (prepare for some ridiculous bragging) the resulting flow is simple, elegant, practical, and far reaching for the field. It doesn't interrupt any ongoing studies that others might be running, requires minimal dedicated time (a major issue when you have a dozen people trying to schedule their experiments with the limited number of subjects), and has an early lynch pin (if it was going to have major problems, they would have been apparent within the first session). The setup requires no major alterations to what's already in place and can be adapted easily as the underlying tech changes, but is separate enough from other projects to allow me to claim my own niche. As the results come in and we begin thinking about their implications, the effort put into this branch of the grander scheme can be fed back into other projects. Perfessionally (personally+professionally), it has given me the flexibility to essentially dust off some of my old skills and gain the experience of pushing through nearly every step of the system, rather than just making a minor change to something that already existed. So, yeah, I'm very happy with how the science is working out so far. Hopefully I can start to dish out some actual details as the papers start to flow.

Information visualization abomination: Matlab
Yes, I know it rocks for matrix operations and fast prototyping. I try to think about how nice it is to easily plot simple graphs, really I do. BUT, I would like to stab the GUI editing tool (GUIDE) in the face. You got Matlab (any version at least after 2007a-ish)? Okay, draw 5 pop up menus, 5 radio buttons, 5 toggles, I dunno... throw a dozen uicontrols on a new empty figure with GUIDE. Okay, now select them all. Now tap the arrows on your keyboard a couple dozen times. It you were able to move those demon-spawned cinders of UI evil more than a couple dozen times without sending Matlab into a tailspin of Java heap space disaster, you're doing better than I am. And the med school student working with me. Across 6 computers with 3 OSes, some with as little as 4GB of memory, some with as much as 16GB. The Java heap space doesn't care how much memory you have. You might as well be working on a circa 1985 Tandy.

There are other things that drive me nuts about that venerable development platform, like sometimes I just want a null value. Matlab Roulette time! Will the null value be treated as an empty matrix, NaN, a string containing 'NaN', or will it just delete those entries in the data structure? Did you pass a row or column vector? Doesn't matter much, since you'll have to babysit the results - that's what I call it when you can't just call a function and know the format it returns. It results in an annoying trial-and-error or single stepping drudge at every other step. And don't get me started on graphing's voodoo properties. Alright, I got my axes set up with all the labels and fonts, and tick marks etc etc etc just as I want them... aaaand plot... joy! Matlab has decided to results every third property to some default value. Not all the properties, but enough to waste 15 minutes of wondering why it decided to change the 'DataAspectRatio' to 'CowsGoMoo'. Oh, and it halted before the figure handle was assigned (or you forgot to bow to your benevolent overlords {}, [], (), ., and ', leading them to eat your CloseRequestFcn), so your figure like some nerd-rage fueled zombie window that refuses to close.
(incidentally...
ohGodNotAgain = allchild(0);
for pleaseKillMe = 1:length(ohGodNotAgain)
delete(ohGodNotAgain(pleaseKillMe));
end;
clear all;
abandon(hope);
The last line wasn't real, but then again, guess what clear all does? Sometimes it clears all. Sometimes... I think it works on alternating Tuesdays when clear objs is busy.

Discussion
So, that's my life right now. Don't get me wrong... it's been great (aside from the family insanity), but I'm too busy to really post much. Besides, every news story seems to be covered so completely that I'd rather tag the RSS feeds and pass them on (lots on the 'Interface and HCI' feed) in order to reserve posting for stuff that I can add to the discussion on (time permitting). Check out the feeds for interesting, exciting, awesome and buoyant stories.