Opt-in/Opt-out: How to Add Shades of Gray

Update: See related CMO.com article The choice of opting in or out, as presented by many businesses to their customers, is a limiting one. Adding shades of gray to the options improves the likelihood that your customers will find one they like. Enlightened e-newsletters are already using this principle by allowing their readers to select from a list of different newsletters that target different aspects of the subject matter. Many of these newsletters also allow readers to select the period (daily, weekly, monthly) at which they’d like to receive the newsletters. As described in research by Wilson, et al, providing users more choices leads to higher customer satisfaction and the sharing of more data. I was lucky enough to sit in on a talk by Professor Sadeh of Carnegie Mellon University describing this research a few years ago. It was then that I decided to create methods to enable “shades of gray” for a broader set of data types. This paper describes an application that enables its users to share their location. Shades of gray can be easily added to location by changing the resolution of the data. Resolution can be changed by adding noise or decreasing the data precision. A simple resolution set for location could be: Latitude & longitude provided to the precision of the measurement method 10 meters (e.g. in a building) Block Zip code City State Country Hemisphere How do you create similar resolution sets for other types of data. The first step is to create a taxonomy of the different data types you’ll be dealing with. Make the taxonomy as simple as it can be without losing important distinctions. A data taxonomy for data related to a bike ride might be: Location Speed Acceleration (could be calculated from other data) Altitude Rider age Rider weight Rider heartbeat Rider respiration rate Pedal force (could be calculated from other data) Gear selection Cadence (could be roughly calculated from other data) Bike weight Bike type Bike manufacturer Bike component model & manufacturer Bike drive train efficiency (could be roughly calculated from other data) Temperature Humidity Date-time Tire pressure Some of the bike ride data elements are dynamic, requiring small sampling intervals, while others change slowly enough that they could be described using a single sample that is structured as part of the ride’s “context”. Some of the data elements, as noted above, could be calculated from other data elements and reasonably removed during a follow-up normalization step. The above data set works well when comparing bike ride to bike ride, but what if you want to compare a bike ride to other types of transportation or recreation. One obvious way to generalize the taxonomy is to change...

Read More

Setting up the Django Base Template for Website Development

I’m trying to expand my technical repertoire by building a website using Python and Django. I’ve been through a couple of Django tutorials and have modeled my data, page design and website user workflow, so there’s not much left to do but get the stuff coded up. Actually, I started project-specific coding as I worked through the tutorials.  By the time I realized that I needed to use Django Base Template, I’d already gone through two restarts. Restarts are a natural part of learning a new development environment and the practices that surround development in any language. For those who aren’t coders, let me explain a little. Starting development in a new language is more than just learning language syntax. On top of that you have to include the following stack (mouse over the text in the box to see a brief description): Deployment and Management Tools Development Tools Language Add-ons Style Rules Language Idiom If I were to arrive into a company that is already developing applications, they will have defined their preferred stack and would help me understand how to apply it to their standards. Since I’m currently a development team of one, I have to rely on the internet and networking to get the same information. That can wslow an independent developer down. While searching for information and tools to develop a Python/Django website with Twitter Bootstrap (CSS, HTML and JavaScript framework/templates), I stumbled upon the Django Base Template  that incorporates the work of Mozilla Playdoh  and Two Scoops of Django . Django Base Template is a project template with a lot of goodies that I probably won’t take advantage of in my first project. It was, after all, created for Mozilla Employees to support a very large set of functionality. At some point I’ll trim it down to what I actually need, but for now more is better. I’m using Django Base Template for development on a Windows 8 (yeah, it’s as bad as everyone says it is) computer with Bitnami DjangoStack v1.4.4  and virtualenv . I updated the version of Django that comes in DjangoStack from v1.4 to v1.5. I decided a few months ago to use Komodo as my Python editor. I use Programmer’s Notepad  for most other editing purposes, but Komodo seems to have a more tightly integrated set of Python templates. One of the cool things it does is give me real-time feedback on adherence to the PEP 8 programming style guide . I see that Programmer’s Notepad has a Python language add-on now, so maybe I’ll give it a try again. So I’m installing Django Base Template and suddenly the fun begins. The build process gets to the bcrypt component...

Read More

Distribution Scope, Security, and Useful Tools

While working on the Facebook Privacy Informer App, I had to tackle the issue of “Scope of Distribution” of your personal information. Actually, this should be more properly named as “Scope of (Intended) Distribution”. Facebook privacy controls allow you to set the distribution of various aspects of your Facebook profile. In general, the controls allow you to set distribution to: (The inappropriately named) “Only Me” A subset of your friends, Your friends Groups that you belong to The general public Why does Facebook say “Only Me” when you share information with Facebook? Shouldn’t the setting be labeled, “Only Facebook (and whoever they decide to share it with)?”. Even when you spend the time to tune those controls, there will certainly be leakage of your information beyond your intended settings. Facebook has enough money that you would think your biggest issues would be their intended privacy violations (sales of tracking ads) and your own privacy control lapses (friending people you don’t personally know). Unfortunately that’s not really true. There is a 1 in 4 chance that your account will be hacked this year. Given the information that Facebook acknowledges it holds about you, and other information it won’t tell you about, that’s somewhat alarming. With all that information, and many examples of leaky security, what happens when the almost inevitable major breach occurs? Still… Facebook is a very useful and entertaining service for many of us. So the issue is not how fast we run away from it, but how we control our risk to value ratio. The Privacy Informer Apps is intended to provide feedback on your risk and strategies for reducing that risk. The Privacy Informer for Facebook app is currently in development and has had limited demos. One of the issues I had to incorporate into the risk scoring strategy was Facebook’s distribution scope controls. Once I  added that factor to the scoring model, I saw that it could also be used to incorporate security and reputation risks into the scoring. An example of a security issue is when Facebook says that it will only share information with your friends, but then one of your friend’s account gets hacked. A reputation issue is when Facebook gives you control over some information, but then hides other information about you that it intends to monetize. In both cases, there is an expansion of scope beyond the limit your settings indicated. In this model, if you set that level to be “Friends”, I adjust the risk value calculation to include some leakage to the public. That adjustment begs the question, how does one know how much to tweak the value? That’s where some interesting tools and data sources can provide...

Read More