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, 27 October 2019

Week in Review: You break it, you buy it

Hey everyone. Thank you for welcoming me into you inbox yet again.

Last week, I talked about Zuckerberg’s quest to tell us that Facebook has governing principles when he’s really just building the stairs one step at a time.

If you’re reading this on the TechCrunch site, you can get this in your inbox here, and follow my tweets here.


The big story

Plenty of ink has been spilled on WeWork and SoftBank and WeWork’s Adam Neumann, and yet it still feels like not nearly enough people are talking about it.

The startup’s post-S1 saga has just been just so messy that it’s understandable one could only grab a sneaking glance of headlines before having to look way.

One reason everyone is talking about it because Neumann’s maneuverings have created an anthology of sketchy founder dealings that’s nearly cartoon villain worthy. He’s got the eccentricities of Jack Dorsey, the frattiness of Evan Spiegel and the “change the world” delusions of Elizabeth Holmes. Critiques of WeWork weren’t all that sparse preceding its S-1, and yet many of venture capital’s talking heads had some kind of founder-friendly admiration for someone that seemed to had bent the world’s heftiest venture capital fund to his will.

It’s far beyond the pleasantries now, what happens to WeWork could deeply shape how late-stage venture capital operates. SoftBank was raising the second vision fund just as WeWork’s shit hit the fan and now it’s the fund’s deepest embarrassment and a financial commitment they’ve poured $18.5 billion into. If WeWork craters, that second vision could fall far short of its aspirations. Plenty of Silicon Valley’s investors would be happy to see control shift to more even-handed institutional forces who did not have capital commands that could set terms with a glance. Nevertheless, there are an awful lot of unicorns that have depended on SoftBank’s growth capital up to this point who would be in danger of being left high and dry.

At this point, SoftBank’s sunk costs have led the desperate fund to go all-in on a sans-Neumann WeWork. They will have to shape the business on their own. They enabled Neumann and now they are left with the task of reverse engineering a disaster into a great turnaround story.

Send me feedback
on Twitter @lucasmtny or email
lucas@techcrunch.com

On to the rest of the week’s news.

Facebook CEO Mark Zuckerberg Testifies Before The House Financial Services Committee

(Photo by Chip Somodevilla/Getty Images)

Trends of the week

Here are a few big news items from big companies, with green links to all the sweet, sweet added context:

  • Extra! Extra!
    Facebook is getting into the news game once again, paying publishers and building an Apple News-like product called Facebook News that is determined to give America access to trusted news. Facebook is doing great fresh out of the gate by giving Breitbart the distinction as a trusted news source. Kudos, Mark. What could go wrong?
  • Netflix keeps racking up the bills
    Hit TV shows don’t feel like they should be as expensive as building a quantum computer and yet Netflix’s hefty original content spending is still chugging along. The streaming company announced this week they’re raising $2 billion in debt to fund its next efforts, which may or may not include another 14 seasons of Stranger Things.
  • Antitrust attorneys general
    This week was another rough one for Facebook, a New York antitrust investigation picked up the support of a whole lot of other states as the probe seeks out anticompetitive practices. There are now 47 attorneys general taking part.

facebook newspaper dollars

GAFA Gaffes

How did the top tech companies screw up this week? This clearly needs its own section, in order of badness:

  1. Facebook is still publisher enemy #1:
    [Why the Facebook News Tab shouldn’t be trusted]
  2. Google’s emoji puritanism:
    [Google’s Play Store is giving an age rating finger to Fleksy, a Gboard rival]

Disrupt Berlin

DISRUPT SF 530X350 V2 berlin

It’s hard to believe it’s already that time of the year again, but we just announced the agenda for Disrupt Berlin and we’ve got some all-stars making their way to the stage. I’ll be there this year, get some tickets and come say hey!

Sign up for more newsletters in your inbox (including this one) here.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support