How to change the world over the weekend

I love hackathons.

I love winning them. I love competing in them. I love winning them.  I love judging them. I also love not losing them.

This weekend, I am acting as a mentor to the first Health 2.0 hackathon in Houston Texas. As far as I know (which is not that far, really) this is the first hackathon in Houston to be focused exclusively on healthcare. Serving as a mentor rather than having the opportunity to directly win might seem counter intuitive, given how competitive I am. But I have had complaints about being a “professional” Health IT expert entering these contests, and as one of the organizers of the event, I do not want to be seen as unfair. This was a hard decision to me because in most cases, if I have to choose between winning and being unfair, I choose winning.. but my Houston Health 2.0 co-conspirators prevailed upon me this time…

I do well in hackathons because I know how to avoid the number one pitfall in healthcare hackathons: It is too tempting to make toys.

To really rock a Healthcare Hackathon you have to have a real strategy to build something that will make a difference, but something that you can still prototype in two days. Here are general thought strategies that have worked for me:

  • Have you carefull searched the web for someone implementing your first-blush idea? The android iphone app stores? Your idea is probably not original?
  • Rather than focus on original “ideas” to find “original problems”, clinician partners on your team are critical for this perspective!
  • Seek problems where there is no money to made solving them. Problems that already have money already have attention, it is hard to do original work in those spaces!
  • Only a few doctors are enlightened enough to pay attention to the hacking approach. How can we multiply the impact of a very few doctors?
  • Most patients are not e-patients, they are reactive and unwilling or unable to change their own healthcare behaviors. How can we minimize what each patient must do, but still have an impact?
  • Are there patient pain points so strong that we can rely on at least a few highly motivated beta testers?
  • How can we leverage the cloud, even with HIPAA limitations?
  • How can we crowd-source effectively, ensuring that every participant is evenly and instantly rewarded for contributions? How can we make crowdsourcing fun?
  • How can we leverage pre-existing Open Source code or APIs? Stand on the shoulders of giants… Hello! Obvious!!
  • How can I flesh out my team at a hackathon by pitching to clinical, educational, design, art or video collaborators?
  • If a programming task is hard for me, can I find a geek that can do in a few minutes what it would take a whole week for me to learn?
  • Getting a good idea is easy. Getting a good idea that is small enough for me to finish in two days is hard. How do I trim all the fat?

Here are some ideas that I will be pitching to participants to this weekends hacking contest. If I can find geeks with the required programming skill-sets and the team to ensure that they have the clinical and design backup that they need, I think these are all doable in two days.

Big Data on medical students:

Medical students are the only ones who understand the problems in medical school. I have designed a hack that will allow us to use big data on them directly to discover and fix the issues with our process for making doctors. I think this will require a team who can code in cross-platform Java… but a web-platform programmer could be tolerated in a pinch. SQLlite experience is a plus.

Better medical wikis

Only Wikipedia has the critical mass to sustain itself, so the only way to make a medical Wikipedia is to do it inside Wikipedia. But how do we ensure that the medical parts of Wikipedia are accurate enough for clinicians and experts, but simple enough for the average patient to find them useful. I think I have found a way to use the Wikipedia API’s to dramatically improve the quality of Wikipedia articles on health issues, but I will need a team who knows how to either build a chrome or firefox module…. are perhaps super fancy JavaScript bookmarklet

Cross the channels at health conferences

Every healthcare conference has a back channel, and in my experience at healthcare conferences, many of the real experts are in the crowd tweeting. Conversely the people who line up to ask questions at a microphone are unvetted, a tragic portion of those who ask questions are actually pitching their own projects, or exercising an obsession, or asking a stupid question (and yes… there is such a thing as a stupid question… or at least there are many morons who feel comfortable wasting my time with questions). I am pretty sure it will require something like Node or Pythons Twisted, but I think we can use Twitter to hack health conference Q&A for the better….

The calculus of pain

In healthcare we have policies that help to ensure that “drug seekers” are unable to access excessive amounts of opioid pain killers. Assuming we define “denying a patient pain medications as a positive”, then these policies are “high sensitivity”  (has few false negatives). Said another way, they have been shown to reduce the number of deaths from medication overdoses in those states that apply them. But good policies are also “high specificity” (has few false positives). In this case, a “false positive” is to deny a patient who has legitimate untreatable-without-opioid pain access to effective pain control. The debate is mostly rhetoric here, with law-enforcement and organizations who represent pain patients both resorting to rhetoric  because there is no way to accurately measure false positives. But what if we could create a dynamic visualization that estimated false positives from the data that we do have? Essentially, we could create a “calculus of pain” diagram that both sides could ‘agree’ on, but use differently. As you might expect, this ‘rhetoric negation GUI’ will require extensive D3/javascript expertise.

Simple games for fitness

I am interested in creating tools that use Geocoding and QR codes together to motivate health. I need IOS and/or Android developers for this one.

Twitter plus epatients

Lastly I am interested in the ways that e-patients tend to favor twitter and I might be interested in developing an e-patient specific twitter tool. Need to code in a web-friendly language.

Quantified Self device hacking tools

The QS community very clearly needs a specific tool that I have gotten alot of requests for. You must know either hardware interfacing (usually C or C++ for usb drivers etc) or web authentication (OAuth et al)

Do something awesome using Natural Language Interfaces.

One of the API sponsors for this hackathon is Ask Ziggy which is essentially a “Siri as an API” for app developers. Its a clever idea and there are lots of possible uses here… no specific technical requirements other than to us this API.

Do something awesome with DocGraph

This is of course, our own data set.. and you can read about it at the main DocGraph site.

Do these sound vague enough?

I hope these are pretty vague ideas. I intentionally am leaving out the critical “how” part of each idea!

I hope this list is enough to spark some interest and get developers to attend this conference. I will not be the only one pitching ideas, and teams attending with pre-baked ideas typically do well at these kinds of events. Still if you want to use my ideas, and hear me explain how to do them and why they will work then you need to meet my specific criteria. First, you must be willing to develop  in the open, and under Open Source licenses. I am giving you a hackathon winning idea for no money. (and I am fairly certain, given that I have judged more health 2.0 contests than anyone else) Even if you do not win the contest, these ideas are so good that I will probably be able to make you fairly famous in the Health IT and Health 2.0 communities.

By working on my ideas you kind of hedge against losing at all. If you are able to pull of the projects, then I will give you credit publically for your awesomeness, which is valuable to anyone looking to make a name. For this valuable insurance service,  I need to be able to start from where you left off if you decide to abandon the project after the hackathon… That means github and the FOSS license of your choice (I like the AGPL)

You also -must- have the skillset that I require for a given project for me to give you the details on a project. I cannot have my best ideas just “out there” for people to run off with!! I am pretty sure that I have at least one project for every kind of developer that I can think of listed above. If I could do all of these ideas myself with my programming skill set.. guess what… I would have already done them or I would save them so that I could win some other hackathon! Each of these projects leverages a very specific hack of some kind. Either hacking hardware interfaces, user expectations, software design, data levers or something like. After I describe the “how” of each project there will be an “aha/wow” moment, when you think “We didn’t I think to do that?” (Note I felt this way after seeing IFTTT for the first time). If I am handing you a “wow” world-changing hack then I have to know that you will make us both look awesome when you pull off the hack. Don’t worry if you do not have a specific skillset I define here. I have lots of other ideas based on what you are good at! This especially applies to designers and other artistic types and to clinicians!! All of these projects could use clinical/design help!!

If you have not signed up yet, then I would get over to the signup page now. So far, every Houston Health 2.0 event has sold out so far, and we expect this one too as well. I have some pretty awesome project proposals but I can tell you now that these will just be a few of the awesome ideas that we are bringing to the table for this Hackathon. Most importantly, if you already have a project in mind, then you will be able to find a team to help you hack on your project! All you need is alot of motivation, a little skill and a willingness to collaborate. Or even just one of those three would do…

Looking forward to seeing you there!!






Making QR code stencils

I have been on a quest to be a able to spray-paint QR codes, in mass production.  I recently demoed my QR code stencil work at Maker Faire.

The secret, in short, is chicken wire and caulk.

I tried the following methods unsuccessfully:

  • cardboard cutouts (subject to the island problem)
  • suspending wires across a board and using duct tape (suspending wires takes too long, duct tape moves when covered in spray paint)
  • using very large chicken wire and using foam blocks to plug the wholes. (far far far to time consuming, but theoretically should work resulting in a massive QR code about 1 meter x 1 meter)
  • using a very small hole circular whole punch on paper (subject to the island problem, but less so)

The first thing that I got working is using very small chicken wire, and using caulk to bridge the gaps between the parts of the wire required to block the spray. This seems to work. A picture, as they say, is worth a thousand words.

QR code stencil
QR code stencil using chicken wire and caulk

Pretty simple see! Now, once you have created that stencil, you can use black spray paint to create a readable QR code on anything you -own-

Tips for creating the stencil:

  • Create a printout of your QR code that is exactly the same size of the QR code (I did not think of this. Karen Herzog figured out after two seconds of thinking about it)
  • Print the QR code on really thin, flimsy paper if you can.
  • Lay the QR code down, and lay the chicken wire over it.
  • Caulk anywhere there is white (ie. so that the black will spray through)
  • Let dry overnight.
  • In the morning, you will find that the paper is also caulked

Suppose you do not own the thing in question. There is still hope. To create somewhat more legal QR code graffiti, you can create a reverse stencil (i.e.  instead of putting caulk to block black spray paint, you use a negative stencil to block white spray paint). Then you can use white chalk spray paint against a dark surface. Remember that the QR code standard requires a “field of white” around the QR code, so using a reverse stencil you have to be careful to spray generously around the QR code too.

While at Maker Faire, I bought a hoodie and used this method to spray paint chalk on it. You can see the results below.. it still scans!!

A QR code sprayed on a Maker Faire hoodie

For those who prefer to watch the action first hand…

Here is a video of how the reverse chalk spray works on asphalt

Here is a video I made b/c I was losing my voice that basically shows what I was doing with QR codes at Maker Faire.

Announcing Open Glaze


I am here at the first ever Quantified Self Conference and I am announcing a new Open Source Game Layer project called Open Glaze.

Here are the basics of my Game Layer philosophy that are influencing my work on Open Glaze.

  • This is not one monolithic system. Its a Unix software development philosophy. It is a series of tools that do one thing really really well, and you can chain them together to do interesting stuff.
  • This is not intended to be a platform play. Platforms are intended to be profit sources which is why they are so popular in start-ups, but I am not convinced that this model works in this area.
  • I suppose you could make a platform play out of Open Glaze if that is what interested you.
  • I am substantially non-committal on the Open Glaze software sub-projects. I will probably be open sourcing almost everything (unless there is a very good reason not to) and if the projects are not popular or useful, and cannot attract other maintainers, I intended to abandon them.
  • Everything here, is part of the huge experiment that I call Programmable Self experiments that do not work will be taken out back and shot.

What -is- Open Glaze? It is a series of tools:

  • TokenGeo. This is a website that lets you create reverse geo tokens. Take a look at the reverse geo caching box, for a reference. The basic workflow is, create token stickers that use QR code-based URLs that  to lead you to a place using your GPS enabled smart phone, and then, once you get to that spot, open up some new spot on the Internet (open a secret URL).
  • 1 to 11. (because this one… goes to eleven) is a place to create your own Quantting web forms, that log the results to Twitter in the Graffiter syntax.
  • LinkedLast is a method for using your Twitter feed as a controller for the destination of a QR code.
  • StatusPresent is a method for using your Twitter feed as presentation software, and to crowd source tweets for Q/A sessions. (not sure how this relates to healthcare frankly… but it was an experiment)
  • WalkOrGive is a website that uses the fitbit API and the Twitter API to create “giving performance gambling”. If you meet your step goals for the week, walkorgive will tweet your success to your stream and ask your followers to make donations to your favorite charity (using a PayPal link) in your honor.
  • Of course, more to come

Programmable Self Reading List


I am preparing for my talk at Quantified Self about my work on Programmable Self. I was asked to make a “reading list” for the people who were interested in this subject so I wanted to create that here. Please add links in my comments section for titles that I have omitted!! Requirements for inclusion are simple. Anything that applies to using technology to change your own behavior. I would also suggest that you get a kindle from Amazon. Kindle will run as software on the iphone, ipad, and android, as well as OS X and Windows. So you do not need to buy a new device if you do not want to, but buying the kindle edition of the following books will probably save you more than $100.

My goal here is to have something relevant no matter what your background. If you are a behavioral economist, then there is some cool gamification stuff here. If you are all about gamification, then there is some cool behavioral economics stuff here… Please help me make this list even better with comments!! (thanks to Lesath for pointing out a broken link!!)

While there are some “gamification” books here, most of this has to do with recent research into human motivation.

I would also take a moment to check out BJ Fogg’s work from the Persuasive Technology lab at Stanford. What I like about BJ’s work is that he seems very focused on making simple models for clear communication. BJ did a good job convincing me that most people have something different in their head when you say “behavior” or “engage” or “change”. Given that, you need a kind of simple vocabulary for talking about what behavior intervention your are discussing. So you should understand the following basic concepts.

I have decided that this is a good place to keep links to important videos after watching Jane McGonigal (Super Better above) give an awesome TED Talk.

If you feel like learning about programmable self from a conference, then I suggest a couple of options:

I will add more links as time goes on. What did I miss? Leave me a comment with your favorite resources for behavior change.


Health Foo Camp

I am happy to announce that I have been invited to the first ever Health Foo Camp. There is not even a web-page for this yet, but it has been previously announced on the RWJF blog

FOO stands for Friends of O’Reilly. It is an invitation event that puts some of the top geeks and thinkers in the same room. This is the first health-focused FOO camp.

This is a pretty big deal for me. The moment I first heard of Foo Camp, I realized that going to one was on my bucket list.

This was similar to the first time I realized that Regina Holliday sometimes auctions off her art. I realized that being wealthy enough to win an auction of one of her art work was my new definition of being rich… I also secretly covet one of her custom jackets.

Anyways, when something like this happens I begin to realize that maybe I am making the difference I want to with my life. It looks like people are finally taking this whole Open Source Health Software thing as seriously as I do. Its a pretty awesome feeling and after sharing a celebratory dinner with my wife, and soaking up the good news for a few days, I thought my readers might like to share in my sense of satisfaction. At least I think I have readers….


QR code stencils, the problem

I love QR codes.

I think the notion of simple graphical URLs is beautiful and elegant. If my wife were a graphical data object, I think she would be a 2D QR code.

Think of it, you can put links anywhere you want, in the real world!

You can put them on tshirts, coffee mugs, stickers, business cards… anything in the real world becomes a link to something in the virtual world. Awesome.

I have been playing with QR codes, with an eye towards gamification and behavior change for quite some time. I love the fact that with android and/or iphones you can rely on the GPS coordinates that webkit (the core of both browsers) will provide, makes a QR code a token that can do different things in different places. Think of the possibilities!

You could make geo-caching much much more interesting…

But how do you make durable (or intentionally not durable) QR code in a reproducible way? How do you manufacture large QR codes, that can be scanned accurately at a distance?

The first approach is simple to print the QR codes on either single sheets (A4 or US letter) and then clear paste them to some type of flat surface. You can use throw-away planks of wood from the hardware store to make durable QR code links. But what if you want to make a QR code on some permanent surface, like a wall or pavement. This basic idea can be taken pretty far, for instance you can paste the printed QR codes into ceramic tile or even bake it on, for a near permanent tag.

The simplest solution would be to use a stencil with black spray paint. QR code scanners vary greatly in their ability to pick up contrast, but the color black, and some other color, will almost always pick up. This has an advantage over gluing paper, because you can tag objects that are not entirely smooth. Moreover, with spray paint that does not damage the surface (more later) you can create images that can be placed out in public, non-destructively.

But what is the problem with a QR code stencil? In a word, islands. In order to make a stencil with, say, photo paper (which would otherwise be a great technique), you need a way to address bits that the stencil needs to block, that are not physically connected to the rest of the stencil. Its easier to show than explain. If you are spray painting black, for instance, and you want to make a stencil of the following QR code, you will have the following trouble spots:

A demo of the QR code islands that make stencils difficult

See the issue, the two anything white, that does not connect to something else white (even by a corner) is going to be an issue. You might be able to make something clever for the places where this happens in most/all QR codes, but each QR code is going to have random “islands” that are often just one pixel big… and in different spots each time. These are the real headache. Making a traditional stencil simply will not work.

Also, making a stencil is very very slow. If you have to cut each pattern by hand.. ouch… way to much time. We need something faster too!

My first approach to solving this problem was to try and find a programmatic solution. For a given URL, there are many different ways to encode into a QR code. It might be possible to use an algorithm that detects this type of “island status” to find a QR code solution that did not happen to have any islands. You could make an application smarter by posting meaningless GET variables at the end of a URL until you found a version of the URL that would work (of course, I am focused on using URL shorteners like to ensure that you have a simple-as-possible QR-code. The more character in the URL, and the more complex the QR code is and the harder it is to make a stencil. The shortener ensures that the QR code is manageable.

I gave up on this technique after noting that there were islands in all of my test runs for various URLs, but the idea is sound.

Thinking about commitment contracts

Commitment contracts are a way of limiting and shaping your own behavior.

If you know that your “future self” (a useful Behavioral Economics concept) is going to be weak willed, you can make a commitment that limits your future behavior to do the “right” thing.

The classic example that everyone always uses of this is of Odysseus and the Sirens. Odysseus has himself tied to the mast of the ship by his men, so that he will not be able succumb to the siren’s song.

I think commitment contracts are probably the single most important tool we have in hacking our own motivations. Currently you can make commitment contracts through, but I have been thinking carefully about how to make commitment contracts into something that you can access in code.

I think this is going to be a central theme moving forward with the Programmable Self concept, so you can look forward to many more posts about it.