How Can Hackers Help In The Fight Against Cancer?

When 1 in 3 humans are affected by a disease, it needs attention and help from all corners. There are many types of cancers, so it’s hard to say if we’ll ever be able to completely cure cancer. But prevention, early detection and proper care are crucial in cancer diagnosis and its treatment.

As David Agus, a cancer doctor, would like to say:

In health care today, we spend most of the dollars — in terms of treating disease — in the last two years of a person’s life.

I pondered on it one evening and thought I’d find out about some “programmable” possibilities related to cancer research for hackers from the non-scientific community, besides the obvious means of help like donations (both charity and research), awareness drives and volunteering.

I got in touch with Jon Kiddy, a software engineer who works at Roswell Park Cancer Institute. Jon kindly shared his views and pointed out that the current state of cancer research can be summed up in one of Daniel Markham’s excellent posts. After having read the book on the subject called “The Emperor of All Maladies”, Daniel went on to state the general problem with cancer research is that the US healthcare isn’t setup to support individualized care and treatment, which is currently undergoing the most intensive scrutiny. A commentor on Hacker News responded to Daniel’s post with this inspiring message:

You want to fix cancer, don’t wait for the scientists. They are hobbled by regulation. Be an engineer: get out there and make one of the viable solutions work, and make it work outside the US.

What started as modest self-education, has led me to several impactful ways in helping with cancer research:

1. Distributed Computing Projects – In 2003, with grid computing, in less than three months scientists identified 44 potential treatments to fight the deadly smallpox disease. Without the grid, the work would have taken more than one year to complete. Participating in a distributed computing project is the easiest way to get involved with cancer research.

You can donate your unused computer resources to research projects like Help Conquer Cancer, Help Fight Childhood Cancer, Rosetta@home, Folding@home.

Grid computing works by splitting complex computations into small pieces that can be processed simultaneously on individual public nodes, there-by reducing research time and making the technology infrastructure cost-effective.

2. Build on “Big Data” – Massive amounts of raw data is available for analysis in cancer research. As Jon wrote back to me:

The problem comes when there is such a large amount of data to process in a field where each individual’s treatment is usually uniquely suited only to them. Hadoop/Hbase is in use by The Cancer Genome Atlas to make some of this process more bearable. Their datasets are invaluable.

The combination of Apache Hadoop (for distributed computing), HBase (distributed database), MapReduce (for distributed computing on large datasets on clusters of computers), R Project (for statistical computing), and Gephi (for visualization and exploration) changes the way we think about analysis of Big Data.

Data analysis, data visualization and even Web crawler technology are all important in cancer research, for processing highly distributable problems across huge datasets using a large number of computers.

Last year, the Cloudera Data Science Team wrote about some of their work with Hadoop:

Instead of focusing on a handful of outcomes, we can process all of the events in the data set at the same time. We can try out hundreds of different strategies for cleaning records, stratifying observations into clusters, and scoring drug-reaction tuples, run everything in parallel, and analyze the data at a fraction of the cost of a traditional supercomputer. We can render the results of our analyses using visualization tools that can be used by domain experts to explore relationships within our data that they might never have thought to look for. By dramatically reducing the costs of exploration and experimentation, we foster an environment that enables innovation and discovery.

3. Apps and Tools – Personal profiling and monitoring could be another area of focus for developers interested in cancer research or general health-related diagnosis.

There are lots of possibilities for personal solutions that aid in collective science.

“In lieu of spending a decade in training to become an oncologist, I have been able to put my skills to practical use.”, Jon says about the impact he’s making.

I really wish for many more technology enthusiasts to devote their time, skills and efforts in the fight against cancer. In what other ways can we help? Do share your comments and views.

Reverse Schlep Blindness

Ever insightful, Paul Graham, recently wrote about Schlep Blindness, a phenomenon related to overlooking hard and unpleasant problems:

Why work on problems few care much about and no one will pay for, when you could fix one of the most important components of the world’s infrastructure? Because schlep blindness prevented people from even considering the [difficult] idea of fixing payments [that Stripe is doing].

I completely agree with Paul. However, I also tend to think that there’s a reverse schlep blindness at play in a lot of cases. Some startup founders often subconsciously ignore or avoid problems that seem too simple to solve. They would rather work on complex problems, requiring complicated architectures, plethora of ‘cool’ technologies and ‘beautifully’ intricate code, all of which few care much about and no one will pay for. Maybe it’s another form of schlep, a cognitive bias after all.

Yet another mobile website builder? Too simple to be “ground breaking”. Yet another Web form builder? Too easy, I’ll look naive. Yet another cloud platform for developers? A VPS is enough and there’s Heroku for everything else. Yet another blogging platform? Boring, most use WordPress anyways. A bingo card creator? Naaa.

‘Too simple to do’ doesn’t mean that it’s easy to build, easy to sell and unfeasible as a business because one might think there aren’t any paying customers for it. Such markets are often overlooked and eventually existing competition suffers a slow death due to lack of innovation and new ideas.

Hard problems are good, because both good and bad solutions to those tedious problems will result in learning, eventual innovation and disruption. Simple problems are good too, because their execution will require a radical (yet simple) solution, and that’s hard to do in itself.

Someday, Everyone Will Be a Programmer

Over the past few decades, Computer programming has ignited gallons of technological innovation, disrupting one industry after the other. For as long, programming has been a skilled task, a niche profession, art of sorts too. It has also made good programmers a rare breed. But I’ve started to imagine that in the coming years everyone will be able to program.

“Give a man a fish and he will eat for a day. Teach a man to fish and he will eat for the rest of his life.”

Most people already program their devices as end-users to a tiny extent, be it an iPhone or the heating thermostat. But a more diverse level of programming will reach the masses, sooner than one might think. It won’t be the same as one would perceive writing complex computer code. It will be more intuitive.

At the moment, the majority of programming is profit or research oriented. The mass programming that I anticipate will primarily be self-serve. Want your refrigerator to automatically order a watermelon and some cold beverages for home delivery based on periodic weather forecast checks? Just program it through your tablet. Want to replace a broken part in your juicer mixer? Just program the 3D printer to make a new one right at home. Want the carpet vacuumed before the in-laws arrive in the evening? Just program the personal robot at home to do so while you are at work.

This emergence is already being made possible due to:

1. Open hardware initiatives, that make device integration and prototyping easier than ever, like Arduino, Raspberry Pi, SparkFun, Seeed Studio, GTA04, Pandora Handheld, and its all going to be huge.

2. Global ‘Learn to Code’ initiatives, that encourage programming as a fun activity for all, like Code Year 2012 (where 333,628 people have already enrolled at the time of writing this post), the UK government introducing programming lessons into British schools, and ‘The Academy for Software Engineering‘ – New York City’s first public high school that will actually train kids to develop software, and even the One Laptop per Child (OLPC) project will reach out to kids in under-developed nations.

3. Visual programming tools, that enable a simplified approach to developing applications, will also help accelerate the adoption of the self-serve programming culture, a bit like ifttt I suppose. But their UI/UX will take a few more years to achieve mass appeal. (Updated 21 Feb 2014: checkout some fascinating screenshots of Visual Programming Languages)

4. Community support – Years ago I read somewhere that “Institutions will try to preserve the problem to which they are the solution.” I believe programmers and hackers are not such institutions. We like to share, teach and learn in the process. The sheer volume of open source projects out in the wild is an evidence of this. The existing programming community will help thrive the Long Tail of mass programming.

Computer Science may remain to be for the elite, but someday, soon, self-serve programming is going to become a common man’s Swiss Army Knife.