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.

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