Wednesday, October 9, 2013

Do not track me - Warning for using web apps like MenuTab Pro for Facebook

Many of us are becoming more acutely aware of websites tracking us.  Browsers are implementing features to help protect privacy, but many of these features are left up to the website and the honor system to implement.

There are protections for your web browser.  Script blockers that can help protect your privacy forcefully by blocking access to known script sites.  My favorite for Safari is JavaScript Blocker.  The problem with these is that they require a bit of technical knowledge and impact the usability of browsing the web, but they are getting better.

Some applications that utilize web services on your desktop do not share the same protections as web browsers with the “do not track” option or plugins.  The other day I noticed that MenuTab Pro for Facebook by FipLab connects me to every tracking site that Facebook uses, and potentially more if MenuTab is tracking me themselves.  It’s a long list, including:

  •, and

Wow… that’s a lot of tracking.  If MenuTab really wanted to implement a value-add feature, they would block these sites from their app.

Monday, January 21, 2013

Progress on Semantic Web Dashboard


I am in the process of adding another source of data to my Semantic Web Dashboard.  I want to chart my number of friends via Social Media over time.  I started with Facebook - but Facebook doesn’t give me access to my historical friends count, only the current count today.  So, I’m writing a app that will record the number of friends I have on a daily basis.  I plan to expand it down the road to include number of postings and other things.  This will mean that any chart I create will have limited data initially.  I didn’t get to actually creating the chart yet, it took me long enough to figure out Facebook’s Graph API and to get that working properly (did I mention that I hate JSON?).

Here is the source to my PHP script that grabs my friend count:



    $user_id = “7412441”;

$app_id = “REMOVED”;

$app_secret = “REMOVED”;

$my_url = “REMOVED”;

$app_token_url = “”

. “client_id=” . $app_id

. “&client_secret=” . $app_secret 

. “&grant_type=client_credentials”;


$response = file_get_contents($app_token_url);

$params = null;

    parse_str($response, $params);

$graph_url = “” 

        . $params[‘access_token’];

    //$app_details = json_decode(file_get_contents($graph_url), true);

    //$query_url = “” . $user_id . “&access_token=” . $params[‘access_token’];

$query_url = “$user_id?fields=friends&access_token=” . $params[‘access_token’];

    $rawdata = file_get_contents($query_url);

    //echo $rawdata;

$friends = json_decode($rawdata, true);

$friends_count = count($friends[‘friends’][‘data’]);

echo $friends_count;

// Write to RDF, not complete yet.

$RDFData = “data.ttl”;

$fh = fopen($RDFData, ‘a’);

$stringData = “”;