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();

Saturday, 30 March 2019

Mark Zuckerberg actually calls for regulation of content, elections, privacy

It’s been a busy day for Facebook exec op-eds. Earlier this morning, Sheryl Sandberg broke the site’s silence around the Christchurch massacre, and now Mark Zuckerberg is calling on governments and other bodies to increase regulation around the sorts of data Facebook traffics in. He’s hoping to get out in front of heavy-handed regulation and get a seat at the table shaping it.

The founder published a letter simultaneously on his own page and The Washington Post, the latter of which is an ideal way to get your sentiments on every desk inside the beltway. In the wake a couple of years that have come with black eyes and growing pains, Zuckerberg notes that if he had it to do over again, he’d ask for increased external scrutiny in four key areas:

  • Harmful content – He wants overarching rules and benchmarks social apps can be measured by
  • Election integrity – He wants clear government definitions of what constitutes a political or issue ad
  • Privacy – He wants GDPR-style regulations globally that can impose sanctions on violators
  • Data portability – He wants users to be able to bring their info from one app to another

The story of why the letter breaks down each doubles as kind of recent history of the social network. Struggles and missteps have defined much of Facebook’s last few years, with several controversies often swirling around the social network at once. Not every CEO gets asked to testify in front of Congress. Facebook houses and controls an incredible collection of data, playing a key role in everything from ad targeting and interpersonal relationships to news cycles and elections.

I’ve spent most of the past two years focusing on issues like harmful content, elections integrity and privacy. I think…

Posted by Mark Zuckerberg on Saturday, March 30, 2019

“Lawmakers often tell me we have too much power over speech, and frankly I agree,” Zuckerberg writes, three days after issuing a blanket ban on “white nationalism” and “white separatism.” He goes on to describe the company’s work with various governments, along with its development of independent oversight committee, before anyone can accuse the company of completely passing the buck.

“One idea is for third-party bodies to set standards governing the distribution of harmful content and to measure companies against those standards,” Zuckerberg writes, “Regulation could set baselines for what’s prohibited and require companies to build systems for keeping harmful content to a bare minimum.”

Zuckerberg goes on to encourage increased legislation around election tampering and political advertisements. Notably, the U.S. Department of Housing and Urban Development hit Facebook earlier this week with charges that its targeted ads violate the Fair Housing Act.

The op-ed rings somewhat hollow, though, because there’s plenty that Facebook could do to improve in these four areas without help from the government.

Facebook’s harmful content policies have long been confusing, inconsistent, and isolated. For example, Infowars conspiracy theorist Alex Jones was removed from Facebook but not from Instagram. Meanwhile, bad actors can just hop between social networks to spread problematic posts. Facebook should apply enforcement of its policies across its whole family of apps, publicly work through its logic for why it does or doesn’t remove things instead of having those discussions leak, and cooperate better with fellow social networks to coordinate blanket takedowns of the worst offenders.

As for election integrity, Facebook made a big advance this week by placing all active and old inactive political ad campaigns into keyword-searchable Ad Library. But after pressure from news publishers who didn’t want their ads promoting politicized articles to be included beside traditional campaign ads, Facebook exempted them. Those ads can still influence the electorate, and while they should be classified separately, they should still be archived for research.

On privacy, well, there’s a ton to be done. One major area where it could improve is allowing people to more completely opt out of search, including by their phone number, to avoid stalkers. And better controls should be available for how Facebook uses your contact info when uploaded in the address books of other users.

Finally, with data portability, Facebook has been dragging its feet. A year ago, we published a deep dive into how Facebook only lets you export your social graph as a list of friends’ names which can’t be easily used to find them on other social networks. Facebook must make its social graph truely interoperable so users don’t lose their community if they switch apps. That would coerce Facebook to treat users better since leaving would actually be a viable option.

Taking these steps would show regulators that Zuckerberg isn’t just paying lip service in hopes of getting a more lenient sentence. It would demonstrate he’s ready to make change that serves society.



from TechCrunch https://ift.tt/2I0IsBy
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support