network world
By Fredric Paul
An award-winning writer, editor, and content strategist, Fredric Paul is Editor in Chief for New Relic, Inc., and has held senior editorial positions at ReadWrite, InformationWeek, CNET, and PC World.
Thank you
Your message has been sent.
Sorry
There was an error emailing this page.
Credit:
Thinkstock
Recent revelations about Uber and Google suggest that web companies may have their own purposes for your data.
Network World |
Nov 19, 2014 6:11 AM
PT
‘);//–“;
var adDivString = “”;
placementDiff = applyInsert($(this), adDivString);
if (debug)
console.log(“Just placed an ad and the placementDiff is: ” + placementDiff);
placementTarget = cumulativeHeight + placementDiff + interModuleHeight + adHeightBuffer;
}
else
var moduleDivString = “”;
var elementId = “drr-mod-“+moduleCounter;
moduleDivString = “”;
modules.push(elementId);
placementDiff = applyInsert($(this), moduleDivString);
if (debug)
console.log(“Just placed a module and the placementDiff is: ” + placementDiff);
placementTarget = cumulativeHeight + placementDiff + interModuleHeight + moduleHeightBuffer;
moduleCounter++;
loopCounter++;
}
// Avoid placing elements too soon due to non-large figures inflating the cumulative height
if ($(this).is(“figure”) !$(this).is(“figure.large”))
cumulativeHeight += grafHeight;
else
cumulativeHeight += $(this).height() + grafHeight;
}
});
// clone Related Stories module m-15 to come in after 2nd para in article body for mobile breakpoint display
var $relatedStories = $(‘.related-promo-wrapper’);
if ($relatedStories.length)
var $relatedStoriesClone = $relatedStories.clone();
$relatedStoriesClone.insertAfter( “#drr-container p:eq(1)”);
var $insiderPromo = $(‘.insider-promo-wrapper’);
if ($insiderPromo.length)
var $insiderPromoClone = $insiderPromo.clone();
$insiderPromoClone.insertAfter( “#drr-container p:eq(1)”);
//place left side element
cumulativeHeight = 0;
var leftPlacementTarget = tagHeight = leftPlacementTarget)
if (debug)
console.log(“congratulations… we’ve passed the initial start point”);
if (leftPlacementIndex == null)
//it’s not good enough to not be a left avoid – it also shouldn’t be a
with an immediately preceding small or medium image left avoid.
if (!isLeftAvoid($(this)) noPrevFigures($(this)) )
leftPlacementIndex = $(this).index();
$leftPlacementElement = $(this);
leftPlacementLookaheadStart = cumulativeHeight;
if (debug)
console.log(“is not a left avoid and no prev figures. ########## set placementIndex (“+leftPlacementIndex+”) and lookaheadStart (“+leftPlacementLookaheadStart+”) ##########”);
else
if (debug)
console.log(“is a left avoid or has previous figures. continue”);
else
if (debug)
console.log(“#### leftPlacementIndex already set to “+leftPlacementIndex+”. looking ahead…”);
//not null; has been set
if ((cumulativeHeight – leftPlacementLookaheadStart) leftIntervalHeight)
if (debug)
console.log(“###### THRESHOLD REACHED. LOOKAHEAD COMPLETE. END ###### (cumulativeHeight – leftPlacementLookaheadStart) (“+(cumulativeHeight-leftPlacementLookaheadStart)+”) leftIntervalHeight (“+leftIntervalHeight+”).”);
return false;
else
if (debug)
);
if (leftPlacementIndex != null elementNotNearEnd($leftPlacementElement, leftPixelWindow))
if (debug)
console.log(” insert into index “+leftPlacementIndex);
$(“#drr-container”).children().eq(leftPlacementIndex).before(“
“);
IDG.GPT.trackOmniture();
// Add Right rail module content
for (var i=0; i= 0)
var a = document.createElement(‘a’);
a.href = document.referrer;
var uriParts = a.pathname.split(‘/’);
a = ”;
if (typeof uriParts[3] == ‘undefined’)
epoParams += “typeId=” + defaultTypeId + “referrer=home”; // default is ‘home’ behavior
else
var refCatSlug = uriParts[3];
epoParams += “catSlug=” + refCatSlug + “referrer=article”;
// From SEARCH: Show article with catId same as current article
else if (document.referrer.indexOf(“google”) = 0
/**
* @param jqo Original jquery object target
* @param divString The div to be inserted.
* @return Difference in height between original placement target and final target.
* Checks first 6 elements for an allowable placement (600 pixel window).
* If none, check nearby for elements that are not right avoids.
* If none, place element before current target.
*/
function applyInsert(jqo, divString)
if (debug)
console.log(“applyInsert at top and jqo index is: ” + jqo.index());
for (var i=0; i 0)
children = $(“#drr-container”).children().slice(jqo.index(), allowElement.index() );
else
children = $(“#drr-container”).children().slice(allowElement.index(), jqo.index());
if (children != null)
children.each(function(i)
if (debug)
console.log(“About to add this element’s height to heigh diff offset”);
console.log($(this));
height += $(this).height() + grafHeight;
);
if (offset 300)
if (debug)
console.log(“isRightAvoid: found pre. return true”);
return true;
if (jqo.is(“figure”) jqo.hasClass(‘large’))
if (debug)
console.log(“isRightAvoid: found figure.large return true”);
return true;
if (jqo.is(“figure”) jqo.hasClass(‘medium’) jqo.hasClass(‘inline’))
if (debug)
console.log(“isRightAvoid: found figure has class medium and inline.”);
return true;
if (jqo.is(‘div’) jqo.hasClass(‘table-wrapper’))
if (debug)
console.log(“isRightAvoid: found div with class table-wrapper”);
return true;
if (jqo.is(‘aside’))
if (jqo.hasClass(‘sidebar’) !jqo.hasClass(‘medium’))
if (debug)
console.log(“isRightAvoid: found aside with class sidebar, without class medium”);
return true;
if (jqo.hasClass(‘statsTable’))
if (debug)
console.log(“isRightAvoid: found aside with class statsTable”);
return true;
if (jqo.hasClass(‘download-asset’))
if (debug)
console.log(“isRightAvoid: found class download-asset return true”);
return true;
if (jqo.hasClass(‘tableLarge’))
if (debug)
console.log(“isRightAvoid: found class tableLarge return true”);
return true;
if (jqo.hasClass(‘reject’))
if (debug)
console.log(“isRightAvoid: found class reject. return true”);
return true;
if (jqo.is(‘table’) jqo.hasClass(‘scorecard’))
if (debug)
console.log(“isRightAvoid: found div with class scorecard”);
return true;
return false;
}
// Return true if element has class ‘reject': will not place drr modules/ads next to these elements
function isRightReject(jqo)
console.log(“in isRightReject”);
if (jqo != null)
if (jqo.hasClass(“reject”))
if (debug)
console.log(“isRightReject: found ‘reject’ class”);
return true;
return false;
return false;
// Returns true if height of all elements after this one is more than 500; false otherwise
function elementNotNearEnd(element, pixelWindow)
if (pixelWindow == null)
pixelWindow = 500;
if (element == null)
return false;
var remainingHeight = 0;
var children = $(“#drr-container”).children().slice(element.index());
if (children == null)
return false;
children.each(function(i)
remainingHeight += $(this).height();
);
if ( remainingHeight pixelWindow)
return true;
else
if (debug)
console.log(“Element too close to end. Remaining height is: ” + remainingHeight + ” and window is ” + pixelWindow);
return false;
/**
* Return true if need to avoid this element when placing left module.
*/
function isLeftAvoid(jqo)
if (jqo.is(“figure”))
if (debug)
console.log(“isLeftAvoid: found figure. return true”);
return true;
if (jqo.is(“aside.pullquote”))
if (debug)
console.log(“isLeftAvoid: found pullquote. return true”);
return true;
if (jqo.is(“pre”))
if (debug)
console.log(“isLeftAvoid: found pre. return true”);
return true;
if (jqo.is(“div.gist”))
if (debug)
console.log(“isLeftAvoid: found github code block. return true”);
return true;
if (jqo.is(“aside”) jqo.hasClass(“sidebar”) jqo.hasClass(“medium”))
if (debug)
console.log(“isLeftAvoid: found medium sidebar. return true”);
return true;
if (jqo.hasClass(“statsTable”))
if (debug)
console.log(“isLeftAvoid: found class statsTable. return true”);
return true;
return false;
/**
* return true if there are no figures before the target placement that might bleed down into placement element
*/
function noPrevFigures($originalTarget) {
var targetIndex = $originalTarget.index();
var numElementsLookBack = 5;
var figureIndex = null;
var figureHeight = null;
var startIndex = targetIndex – numElementsLookBack
Like many journalists, I’m concerned and outraged about the recent controversy regarding Uber executive Emil Michael. In my view, his comments about hiring opposition researchers and journalists to “help Uber fight back against the press” by investigating their families and personal lives—particularly Pando Daily’s Sarah Lacy—have terrifying implications.
Michael quickly backed off his comments, saying his words “do not reflect my actual views,” while not denying he said them. (Reminds me of Charles Barkley once claiming to have been misquoted in his own autobiography!) And of course the company said it would never actually do such a thing. Trust us! But it has so far declined to fire or even discipline Michael.
Surprise! Uber knows where you go
But that’s not the most worrisome part of the story. It turns out that the coverage revealed what I think is an even more disturbing incident. From Ben Smith’s Buzzfeed article that broke the story:
In fact, the general manager of Uber NYC accessed the profile of a BuzzFeed News reporter, Johana Bhuiyan, to make points in the course of a discussion of Uber policies. At no point in the email exchanges did she give him permission to do so.
If that’s true, and Uber claims its policies strictly forbid this kind of thing, it’s an even bigger red flag to me. While this particular use of data may not have been malicious, the fact is that companies like Uber and many others have access to all kinds of data that could reveal a great deal of their users’ personal lives. And they face temptations to use and misuse it as they see fit.
They may have policies against using that data, but they have it, individuals at the company may have access to it, and it may not even violate any laws if they do—maybe just a toothless “user agreement” or “terms of service.” Heck, Uber hardly needs all those investigators to spy on journalists who use its cars; it could just check its database and see when and where they went.
Google is hiring! Why is that a problem?
Here’s another example—it seems that Google may be using search history to serve up special pages to folks who searched for various topics around the Python programming language. First discovered in Hacker News, the pages appear designed to find Python programmers and potentially hire them to work at Google.
Now, a job at Google may not sound like a bad thing—more like winning the lottery, for many people—but this practice totally creeps me out. It may not be that different than using search history to serve ads, but it feels invasive. Google knows so very much about almost all of us that it doesn’t take much to go from ads to Foobar Pages to who knows what. While it’s one thing to serve up pages that might get a Python programmer hired at Google, how big a step is it to start hiding (or just deprecating) search results that might lead those programmers to an alternate employer?
Of course, it’s not just Google and Uber. I can’t count all the various ways different companies are tracking data covering where I go, what I do, and what I read.
Remember the big to-do a decade ago over the Patriot Act allowing the government to see what library books you check out? Knowing just about everything about where you go and what you search for seems much, much worse. Of course, various government agencies—think bridge-toll authorities and healthcare entities—are also busy tracking your every move.
In most cases for most people, that’s probably not a big issue. But it’s easy to see how it could cause huge problems if misused.
How Silicon Valley startups try to lure top engineering talent
iPhone 6, iPad Air, Samsung Galaxy gear and big cheap TVs among the hottest electronic deals for Black…
Get our Daily News newsletter
The National Santa Agency has a handle on what everyone wants.
A site indexed 73,011 unsecured security cameras in 256 countries to illustrate the dangers of using…
Fidelity Investments today announced a cutting edge way for customers to check on the health of their…
Some say they are essential to a successful security career. Others argue they are an outdated concept…
Comprehensive cloud security services are taking over the market.
A look at some real-world IoT deployments that have actually delivered on the technology’s massive…
Copyright © 1994 – 2014 Network World, Inc. All rights reserved.
Article source: http://www.politico.com/story/2014/11/voting-problems-112511.html
Trending:
10 mightiest supercomputers on Earth
2014 Holiday Gift Guide
20-plus eye-popping Black Friday tech deals
Resources/White Papers
...
tech, technology




0 comments:
Post a Comment