Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Friday, 27 November 2020

No Google-Fitbit merger without human rights remedies, says Amnesty to EU

Human rights NGO, Amnesty International, has written to the EU’s competition regulator calling for Google’s acquisition of wearable maker Fitbit to be blocked — unless meaningful safeguards can be baked in.

The tech giant announced its intent to splash $2.1BN to acquire Fitbit a year ago but has yet to gain regulatory approval for the deal in the European Union.

In a letter addressed to the blocs competition chief, Margrethe Vestager, Amnesty writes: “The Commission must ensure that the merger does not proceed unless the two business enterprises can demonstrate that they have taken adequate account of the human rights risks and implemented strong and meaningful safeguards that prevent and mitigate these risks in the future.”

The letter urges the Commission to take heed of an earlier call by a coalition of civil society groups also raising concerns about the merger for “minimum remedies” which regulators must guarantee before any approval.

In a report last year the NGO attacked the business model of Google and Facebook — arguing that the “surveillance giants” enable human rights harm “at a population scale”.

Amnesty warns now that Google is “incentivized to merge and aggregate data across its different platforms” as a consequence of that surveillance-based business model.

“Google’s business model incentivizes the company to continuously seek more data on more people across the online world and into the physical world. The merger with Fitbit is a clear example of this expansionist approach to data extraction, enabling the company to extend its data collection into the health and wearables sector,” it writes. “The sheer scale of the intrusion of Google’s business model into our private lives is an unprecedented interference with our privacy, and in fact has undermined the very essence of privacy.”

We’ve reached out to the Commission and Google for a response to Amnesty’s letter.

Google’s plan to gobble Fitbit and its health tracking data has been stalled as EU regulators dig into competition concerns. Vestager elected to open an in-depth probe in August, saying she wanted to make sure the deal wouldn’t distort competition by further entrenching Google’s dominance of the online ad market.

The Commission has also voiced concerns about the risk of Google locking other wearable device makers out of its Android mobile ecosystem.

However concerns over Google’s plan to gobble up Fitbit range wider than the risk of it getting more market muscle if the deal gets waved through.

Put simply, letting sensitive health data fall into the hands of an advertising giant is a privacy trashfire.

Amnesty International is just the latest rights watcher to call for the merger to be blocked. Privacy campaign groups and the EU’s own data protection advisor have been warning for months against letting the tech giant gobble up sensitive health data.

The Commission’s decision to scrutinize the acquisition rather than waiving it through with a cursory look has led Google to make a number of concessions in an attempt to get it cleared — including a pledge not to use Fitbit data for ad targeting and to guarantee support for other wearables makers to operate on Android.

In its letter, Amnesty argues that the ‘safeguards’ Google has offered are not enough.

“The company’s past practice around privacy further heighten the need for strict safeguards,” it warns, pointing to examples such as Google combining data from advertising network DoubleClick after it had acquired that business with personal data collected from its other platforms.

“The European Data Protection Board has recognized the risks of the merger, stating that the “combination and accumulation of sensitive personal data” by Google could entail a “high level of risk” to the rights to privacy and data protection,” it adds.

As well as undermining people’s privacy, Google’s use of algorithms fed with personal data to generate profiles of Internet users in order to predict their behavior erodes what Amnesty describes as “the critical principle that all people should enjoy equal access to their human rights”.

“This risk is heightened when profiling is deployed in contexts that touch directly on people’s economic, social and cultural rights, such as the right to health where people may suffer unequal treatment based on predictions about their health, and as such must be taken into account in the context of health and fitness data,” it suggests.

“This power of the platforms has not only exacerbated and magnified their rights impacts but has also created a situation in which it is very difficult to hold the companies to account, or for those affected to access an effective remedy,” Amnesty adds, noting that while big tech companies have faced a number of regulatory actions around the world none has so far been able to derail what it calls “the fundamental drivers of the surveillance-based business model”.

So far the Commission has stood firm in taking its time to consider the issue in detail.

A series of extensions mean a decision on whether to allow the Google-Fitbit merger may not come until early 2021. Though we understand the bloc’s national competition authorities are meeting to discuss the merger at the start of December so it’s possible a decision could be issued before the end of the year.

Per EU merger law, the Commission college takes the final decision — with a requirement to take “utmost account” of the opinion of the Member States’ advisory committee (though it’s not legally binding).

So it’s ultimately up to Brussels to determine whether Google-Fitbit gets green lit.

In recent years, competition chief Vestager, who is also EVP for the Commission’s digital strategy, has said she favors tighter regulation as a tool for ensuring businesses comply with the EU’s rules, rather than blocking market access or outright bans on certain practices.

She has also voiced opposition to breaking up tech giants, again preferring to advocate for imposing controls on how they can use data as a way to rebalance digital markets.

To date, the Commission has never blocked a tech merger. Though it has had its fingers burnt by big tech’s misleading filings — so has its own reputation to consider above reaching for the usual rubberstamp.

Simultaneously, EU lawmakers are working on a proposal for an ex ante regulation to address competition concerns in digital markets that would put specific rules and obligations on dominant players like Google — again in areas such as data use and data access.

That plan is due to be presented early next month — so it’s another factor which may be adding to the delay to the Commission’s Google-Fitbit decision.



from TechCrunch https://ift.tt/3fIhjCo
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support