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

Sunday, 2 February 2020

Everyone loves the coronapocalypse

The 2019-nCoV coronavirus is a global public health emergency of significant concern. It is also, simultaneously, a fount of misinformation, wild conspiracy theories, and both over- and under-reactions. Whose fault is this? So glad you asked. I happen to have a little list.

Purveyors of misinformation. As archly observed by The Atlantic, that misleadingly-self-described Harvard epidemiologist who tweeted “HOLY MOTHER OF GOD” followed by math errors was … well … wrong.

However he pales in comparison to the bioweapon theorists at Zero Hedge (who were banned from Twitter as a result, apparently for doxxing a Chinese scientist) and let’s not forget to shake a finger of blame at the people who posted / linked to the much-debunked, non-peer-reviewed “signs HIV insertions in the coronavirus” paper online.

Science itself. Why would people link to that paper? Well, because non-peer-reviewed preprints are often mistaken by the general public for peer-reviewed science. Why are preprints so increasingly important? Because awful, predatory scientific publishers massively overcharge for access to scentific papers, often even when they’re funded by public money.

Social media. Not to belabor my dead horse here, but what you see on your social media is determined by algorithms optimized for engagement, which frequently means outrage. That viral HOLY MOTHER OF GOD tweet would have been more of a minor blip if Twitter still kept to strict chronological timelines. Note that this would also make “good” tweets far less viral. That would be the price we pay for abandoning the engagement algorithms, but it seems at least plausible that it would still lead to a better world.

General innumeracy: You remember how I mentioned people were underreacting too? I have seen so, so many self-identified galaxy-brain thinkers informing us that it’s silly to be so concerned about the coronavirus when the flu kills more people. I’ve even seen a handy Myths and Facts infographic wandering all over Facebook, ‘informing’ us all that “the common flu kills 60 times more people annually than Corona.”

People, the flu and nCoV-2019 are not comparable. It’s apples to zebras. We know exactly what to expect from the flu: we don’t yet know what to expect from this new virus. That’s why it’s of concern. You especially cannot compare annual death rates, since we don’t know what this new virus’s annual death rate is, since it’s only existed in humans for two months. Sheesh.

Human nature. This is arguably the big one. On some level, everyone loves an apocalypse, in that it’s a narrative they completely understand, one they can envision and have envisioned for themselves. So anything in the real world associated with an apocalypse gets clicks, commentary, and reshares.

I should know: when not writing for TechCrunch I happen to be the director of the GitHub Archive Program, which includes a whole bunch of present-day archiving, as well as very-long-term 1,000-year storage which is primarily intended for historical or recovering-abandoned-technologies usage … and yet everyone’s mind, whenever I talk about it, immediately jumps to “Canticle for Leibowitz”-style postapocalyptic scenarios, and stays there.

Which is fine! I mean, I appreciate that everyone’s interested in the project and has ideas about it, just as I appreciate that the coronavirus is a global public health emergency, and people should be paying close attention to it. But our collective fondness for apocalyptic narratives, combined with the other contributors above, may, if we’re not careful, transmute that attention into belief in wacky conspiracy theories and misinformation. Please stop to think, before you believe, and before you share.



from TechCrunch https://ift.tt/31nDFld
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support