I had missed this (or, rather, Google Alerts had). AlphaVax had apparently given a presentation titled Flow-Cytometric Evaluation of T-Cell Responses Elicited by an Alphavirus Replicon Particle Vaccine for Cytomegalovirus (CMV) in Healthy Adults sometime in June.

Quite a mouthful. The presentation describes how AlphaVax used multiparameter flow cytometry to explore one of their vaccine candidates. They then used – among other applications – SPICE 5 to do their data mining, visualization, and production of presentation-quality graphs for their presentation.

Samples were fixed and stored at 4°C until acquisition on an LSRII flow cytometer. Flow data was analyzed with FlowJo version 8.7 (Tree Star, Ashland, OR). Further data analysis was performed using software (PESTLE and SPICE, version 5.0) provided by M. Roederer and J. Nozzi, NIAID, NIH.

It makes me proud to know my work is directly helping researchers find vaccines for “what ails ya.” Very gratifying.

 

Okay, enough is enough. Everywhere I read people discussing the iPhone 4 signal loss issue (by cradling the phone in the palm of the left hand), people imply it’s not objectively measurable, or it’s entirely nonexistent. It reminds me of the original MacBook Pro processor whine issue: “the only whine I hear is the people who think this is a real problem.” Right. We’re all morons.

Whiny

As I mentioned with the MacBook Pro issue, the whining issue turned out to be very real. There were various conditions under which it occurred for different users, but I was “lucky” enough to get one of the affected laptops. I found older people couldn’t hear the extremely high-pitched whine, yet it gave me a damned “sick-headache” from its persistence. I finally narrowed it down to a fairly specific cause. I’m not a radio / antenna / electronics expert, but something didn’t seem to be correctly grounded. If I laid my finger (not an inanimate object, not conductive metal, not a ferrite rod – nothing) on the right-hand side of the rubber inlay between the hinges on the “lid,” the whine immediately stopped. As soon as I removed my finger, the whine slowly returned. If I “gently tapped” that same spot out of frustration, it might stop for quite awhile before returning. The whining didn’t come from the speakers. It was strongest near the very spot I could touch to make it stop. This told me it was some kind of feedback, interference, or some damned problem with one or more specific electronic components.

Apple refused to acknowledge the problem. Reading the various forums revealed a plethora of fan boys and fan girls repeating the same uninspired joke again and again: “The only whine I hear is from you.” Well …

It’s not as if I work with technology every day, so you’re absolutely right. The sickening headache I developed every day from this one Apple product among many I owned or worked with is all in my head after all! Thank God for your unilateral diagnostic skills! A sample size of exactly one surely accounts for all!

Yeah, I had that laptop less than a year.

Ugly Bags of Mostly Water

Humans are salty and wet. We tend to interfere with electrons and even radio signals. Which is the problem here? Are we blocking the radio waves or shorting the thing electrically? I say the iPhone 4 problem definitely seems to be caused by bridging the very part of the phone likely to be wrapped in a nice, salty, meaty hand – I think it’s electrical.

I don’t accept Jobs’ bullshit “you’re holding it wrong” answer. Anyone who holds the phone on the left side of their head is going to cradle the phone with its lower-left corner tucked into the palm, just under the fleshy root of the thumb. How can you possibly defend a phone that can’t be gripped on one whole corner without dropping its signal?

To be clear: my phone doesn’t just lose signal strength when I grip it “the wrong way;” it completely drops the signal in about one second flat. In three, a call is dropped entirely. No data gets through while I’m holding it that way.

… and it’s not in my fucking head.

And Steve: I’m not made of money and I rely on my communication device to communicate, so it really is a pretty big godamned deal when it’s so easy to cause it to fail. Considering how vastly easier it is compared to any other phone I’ve owned since my first one in nineteen-ninety-fucking-seven, I’d say it’s quite a bit more than a non-issue.

There is definitely a problem. I’ll accept it doesn’t affect everybody, but if your position is, “it works for me, so you’re an idiot,” then I can’t respect you let alone your opinion. Sorry.

One explanation that makes a lot of sense is the possibility of the sim card contacting the metal sim tray (which contacts the metal frame). I can confirm my own sim card was cut so that all the gold contacts along one edge come into direct contact with the metal sim tray. It was definitely shaved too close (much like a fingernail cut too far back, its nerves screaming at contact with anything, even air). My own 5-minute experiment with electrical tape failed because the thickness of the tape prevented the card from seating correctly. I may have to try again.

The one thing that makes me doubt this proposed solution is that the sim tray slides into the opposite side of the phone – the one that isn’t bridged by holding it “the wrong way.” This observation would seem to shoot holes in the running theory of interference by sim shortage.

What makes me so sure it’s some sort of short circuit is that today my phone failed me (signal-wise) for more than an hour. I was very sweaty, so even though I was avoiding holding it “the wrong way,” it still refused to transfer data or keep a stable call. Guess what happened when I wiped it down with a damp, then a dry cloth? Like magic, it was stable again. Perfectly. Instantly. Magic!

I’m Not a God Damned Idiot

So I’ll wrap this up by making this emphatic statement: the iPhone 4 most definitely has antenna issues for some users. My own completely drops the otherwise full signal on contact in multiple areas that all had strong signals for my 3GS and are far apart from one-another. I love the iPhone 4, but, being my only phone, this is quickly becoming a major issue for me.

 

I think Jitterbug (the cell phone and operator service aimed at the elderly) should expand and offer navigational services.

The Jitterbug

For those who haven’t heard the wonderful news, Jitterbug provides simple phones and live operator services and caters to the elderly. The biggest feature seems to be the ability to call the operator and have them operate the phone.

Jitterbug phones have large displays and keypads, as well as loud speakers. The services comes with what can only be described as “old-school” operators, who can add contacts to customers’ address books, add appointments to your calendar, and even take dictation of a text message.

Why, Back in My Day …

Jitterbug’s success undoubtedly comes mainly from the operator service, which reminds an older generation of simpler times. Once upon a time, you could “ring Jenny the Switchboard Operator” to have her connect calls for you. You might even get to know Jenny and have a brief chat with her before she connected you to “Klondike 529.”

Still Relevant

The Jitterbug goes beyond this, though. Now that wonderful young lady Jenny can take dictation for you and send it as a text. Never before has it been so easy to send, “Happy Birthday, Grandson, LOLZ” to your grandson via a communications channel he actually uses!

New Feature

I propose a new feature: Navigational Services. Wouldn’t it be the bees knees if Jenny could give you directions like all those new-fangled iTelephones and Robot Phones? And how!

Let’s listen in on Ethel as she calls Jenny for directions on her Jitterbug.

Ethel [ takes twenty or so seconds to open the phone and press zero because she's always looking for the hand crank ]

Jenny: “Operator speaking.”

Ethel: “Jenny? Ethel here, how are you?”

Jenny: “Why, I’m just wonderful, Ethel! How’s your grandson? Did he enjoy the pegboard you got him for his birthday?”

Ethel: “Oh, he loves it! Thanks for asking? How’s Fred?”

… [ 5 or 10 minutes go by in this way ] …

Ethel: “Say Jenny, I’m looking for that new Buttons! Buttons! Buttons! store the girls have been talking about. Would you know where that is?”

Jenny [ chuckling knowingly ]: “I wondered when you’d get around to looking into that place. I can give you directions.”

Ethel: “Oh, that would be wonderful!”

Jenny: “Certainly. You go out to the old Harker place and take a left past where the old fruit stand used to be.”

Ethel: “The one old Farmer Harker’s grandson ran before he retired?”

Jenny: “That very one. Follow that into town. Then, at the corner of Elm and Second – where you used to buy a whole bag of penny whistles for a nickel – and head toward the old soda parlor where you met Jeb Jenkins and slapped him for looking at your ankles when your slip rode up a bit.”

Ethel: “Mmm hmm.”

Jenny: “After that, you’ll turn right at the corner where you and Mabel used to wait for the trolly. Turn left into the parking lot of that newfangled mall that used to be Old Man Savage’s mill.”

Ethel: “Oh! I met my late husband, Mr. Carmichael there for our first date!”

… [ and so on ] …

Now I’m sure you can see the benefits. Following the success of deploying such a feature, Jitterbug could expand their operator services and offer Internet surfing. Why get one of those confusing computers when you could have Jenny take care of all of that stuff?

I think we would all be wise to invest in Jitterbug. They’re going places … slowly … with their blinker on …

 

Sitting here drinking my Saturday morning coffee (it’s almost noon), my eyes focused on the back of a Whiskas Temptations cat treat bag. I had no idea how goddamn weird the Whiskas marketing team is.

Whiskas Temptations Bag

Whiskas Temptations Bag

The back of the bag reads:

Not to be savored but once a year, oh no! This girthy bird of paradise can be enjoyed each and every day. I’ll wrap myself in his arms of sustenance and sink my teeth into those delectable drumsticks! Gravy and stuffing, hah! The only thing that’ll be stuffed is me, once I devour this phenomenal fowl…mmmm…I need my Temptations treaaa…zZzZzzz…

Um. Yeah.

 

My recent announcement on Twitter about the release of SPICE 5.1 public beta prompted a few questions. I also get questions from the occasional interested developer, friend, or family member, so I thought I’d describe it a bit.

My Day Job

Your taxes (and mine) pay my salary. My employer is Lockheed Martin, MSD, Inc. and I work as a contract software developer for the Bioinformatics and Computational Biosciences Branch of the National Institute of Allergy and Infectious Diseases (part of the US Dept. of Health & Human Services).

BCBB is providing their bioinformatics and technology expertise to the VRC (Vaccine Research Center), among other NIAID initiatives. I’ve been working on a software application called SPICE for the VRC for the last three years.

The Problem

The Vaccine Research Center does as their name implies: they research possible vaccines for things like HIV, H1N1, and others. To do this, they administer a test substance and take lots of blood samples over time, looking for a useful immune response.

The blood samples (for many subjects, over different time points, with different vaccination methods) are all washed with a biomarker (a kind of stain that binds to certain cell types or cells that carry out a particular function) run through a machine called a flow cytometer. The flow cytometer bounces different color (wavelength) lasers off the individual cells and detects the presence of these biomarkers, which fluoresce when hit with a particular wavelength.

All this let the researchers know what percentage of cells fall under a specific category. For example, one category might be “what percentage of cells belong to Subject A, one week after the vaccination challenge, that are CD4, Interleukin 2 positive, and Interfereon-gamma negative?”

Now, what do we do with 20,000 categorical measurements? They have to be evaluated in a number of different ways to see if an immune response occurs, what type, when, and how strong (among other things).

You might think, “Okay, load all that up in Excel and start making charts.” There are a number of problems with that approach, but I’ll simplify them: Excel is slow and cumbersome when used for setting up and dynamically modifying complicated data views and its graphing capabilities are vast but don’t quite cover what the researchers need to see.

The researchers may want to average all the subjects together (because average response is more useful than that of an individual), overlay by vaccination type (because an injection might be a better vector than an inhalant), and ignore CD4 cells, looking only at CD8s. Then they might want to eliminate a few subjects who didn’t complete the study. Then they might want to turn the whole thing on its head and compare individual responses, grouping by their study group. All these custom data views would take a lot of effort to configure and reconfigure in Excel.

That’s where SPICE comes in: Simplified Presentation of Incredibly Complex Evaluations. This application allows you to cut, shuffle, recombine, compare, isolate, and reorder this vast categorical data set in near-real-time by drag-and-drop. What’s more, you can choose graph types, format the print-quality graphs, then drag them straight from the graph view into PowerPoint for a nice presentation of your findings, or into Word to write a paper. All this you can do in minutes (even seconds) versus hours.

My Part

I was brought on board to build SPICE 5, a complete rewrite to an in-house tool written and personally maintained by Dr. Mario Roederer. Bright guy.

Through version 4, Mario used an older Mac development library called Carbon. With Carbon’s future looking bleak and Cocoa designated as Apple’s New Hotness for Mac OS X apps, it looked like SPICE needed a good update. With ever-increasing duties keeping him from delving into an entirely new API, Mario needed an experienced Cocoa developer, preferably with a background in biology.

Instead, he got me.

The goal was to bring SPICE over to the Cocoa world – to modernize it and maybe add a few new features. As any developer would expect, there was plenty of scope creep. It took over two years to meet the extra demands placed on the new version (bigger data sets, more options, etc.).

SPICE 5.0 (the version I wrote) gained the ability to handle much larger data sets (while being more efficient with memory) by virtue of using a hash table instead of a sparse matrix. It also gained more formatting features and an easier-to-use data view control panel.

But it was pretty slow for a variety of reasons. Even slower than what we affectionately call, “Old Spice” (cue the whistled Old Spice tune). It also mirrored the “saved settings” mechanism of SPICE 4, where a particular configuration (a “data view” in proper terminology) was saved from the UI or loaded back into the UI.

I’m not a biologist. I’m not a scientist. I don’t even have a Computer Science degree. It took a lot of effort to build version 5.0 and I had no problem building it to “mirror” version 4 as much as possible. Once it was done and I saw what I had made, I realized I understood the problem very well by that point and I began to have some ideas of my own. SPICE 5.1 was very much on my mind.

I think I’ll end this post here as it answers the question of what I’m working on for Uncle Sam. In short, it’s an application that helps researchers identify good vaccine candidates for things like HIV and H1N1.

Up Next

In my next post, I’ll focus on the development aspect of version 5.1 for you developer types out there.

Disclaimer

Opinions and view points expressed in this article are my own. I do not speak for the US Government or Lockheed Martin, MSD, Inc.

 

I posted some source code (NonSelectingTokenField) in response to a StackOverflow question. It avoids the default behavior of selecting all tokens when becoming first responder or ending editing.

The source code is a drop-in NSTokenField subclass, but it’s also a good example of how to change the selected range of any NSTextField subclass. Since there’s no direct method to manipulate the selected range in an NSTextField subclass – other than the brain-dead -selectText: method, which selects all text in the field – this question has come up countless times over the years.

Jun 152010
 

It’s been awhile since I posted and a few things have been going on lately that’ve been keeping me busy or demotivated (depending on the subject). I thought I’d post a brief update.

Web Site

You’ll notice a new look for my site. The theme is not mine, rather it’s a slightly customized version of the “monochrome” WordPress theme.

That’s right, I said WordPress. Drupal turned out to be a huge pain in the ass to maintain and is serious overkill for what I needed. Meanwhile, WordPress 3 (currently at release candidate 3) adds better support for static pages and custom menus. I spent some time migrating my information back to WordPress, choosing a theme I didn’t hate, and getting things generally back up and running again.

I have to say I’m much happier with WordPress. Drupal is overkill and quite contrary.

Bartas

Bartas Technologies endeavors are chugging along at a slow but mostly-steady pace. XTabulator and Transcriva updates are in the pipeline. More than that is in the pipeline too, but that’s for a later date.

Zendesk

I’m still with Zendesk, despite my misgivings over the pricing debacle. Things seem to be working well enough, but my opinion of the company is still definitely shaken. I’ve decided they’ll keep my business for now, however.

Home Life

As with any home, there are happy moments and unhappy moments. I’ve had plenty of both over the last few weeks with family drama, relationship growth (not a snarky comment, but rather the reality), and some good times. I’m more or less in reasonably high spirits, though there are still things to work on. I’m inclined to label that normal.

 

Mikkel Svane ( @mikkelsvane ), CEO of Zendesk, made what must have been quite a difficult apology for the price increase fiasco two days ago. What are my thoughts? Well, I’m not quite sure.

When this all started, I raised a few points about trust. I stand by those points firmly. I wasn’t angry at the price increase itself. Here were my complaints:

  • The disproportionate amount of increase
  • The unrealistic value placed on features (like forums) that are not optional and that free, open-source does better
  • The inarguable abuse of the term “grandfathering”
  • The data lock-in for cheaper plans
  • The substantial disparity in pricing, compared with competitors with similar or superior offerings
  • The poorly-phrased responses from Svane on Twitter and in Zendesk’s forums

All of this amounted to a breach of trust in the company. Their actions belied the corporate image they’ve worked so hard to put forth. In short, it was a grievous error in judgment.

Then, two days and a few hours after the whole thing started, Svane posted an apology titled, “Sorry. We messed up.

I would be a hypocrite if that’s all it would take to make everything okay again. Have Svane and his investors learned their lesson? By lesson, I don’t mean, “the social web can fuck you up as easily as it can help you,” as it’s obvious they have. Rather, the lesson to which I’m referring is, “if we say we’re good guys, we can’t make a douche bag move.”

I honestly don’t know the answer to that. The real question is, “will I stay or will I go?” For now I don’t know. I’m undecided. I need to know I can trust Zendesk not to decide to hold my data prisoner and jack up their prices again. Their promise to “grandfather” existing customers in (the proper use of the term) isn’t in any contract. It’s their word, which has been tarnished recently.

Plenty have praised Svane’s apology – I’m one of them – but that doesn’t mean all is now well. So, stay or go? I’ll let you know. I’m sure I’m not the only one debating this, either.

© 2011 Joshua NozziJoshua Nozzi is a Cocoa developer for hire.Suffusion theme by Sayontan Sinha