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

Thursday, 27 August 2020

Presenting TechCrunch Disrupt’s Asia sessions

As you know by now, Disrupt is going completely virtual for its 10th anniversary. TechCrunch’s Asia team (me, Rita Liao and Manish Singh) will miss seeing everyone in Moscone Center, but this will be the most accessible Disrupt ever, and we are excited to bring a full roster of Asia-focused sessions to its agenda for the first time. The sessions, with people from some of Asia’s most influential tech companies, startups and investment firms, will be broadcast during the day in this part of the world, followed by live Q&A sessions. And of course, all Disrupt attendees will get full access to everything TechCrunch’s team has spent months working to bring online: the Disrupt and Extra Crunch stages, virtual networking at CrunchMatch and Digital Startup Alley.

Many of the most important recent startup trends and tech stories have come from Asia, or were driven by Asian companies. The continent is home to several of the world’s most complex and dynamic markets: China, India and Indonesia, to name just some of the biggest ones.

Available at a time that works best for you, catch these sessions Sept 15-18th from 1:00 PM – 2:00 PM HKT. Immediately after each interview, join the speakers for a live Q&A. So come with your questions!

India is Facebook’s biggest market by number of users, and our speakers will include its head of India, Ajit Mohan.

We also have Russell Cohen, regional head of operations at Grab, the ride-hailing company that acquired Uber’s Southeast Asia operations two years ago and is now also one of the region’s largest on-demand delivery platforms.

Byju Raveendran, founder of BYJU’s, India’s most highly-valued edtech startup, will talk about online learning, one of this year’s most important topics.

As another example of how tech innovations in Asia influence other parts of the world, we will speak to Kaisei Hamamoto, co-founder and chief operating officer of SmartNews, which runs versions of its news aggregator app in two very different markets, Japan and the United States.

Our lineup of founders include Sonny Vu, whose last startup, Misfit, was acquired by Apple, and is currently the chief executive officer of continuous carbon-fiber 3D printing company Arevo.

We’ll also talk to Steven Yang of Anker about how he built his company into one of the most popular and well-regarded smartphone charger and power bank brands.

Gillian Tee, founder of Singapore-based caregiving and telehealth startup Homage, will share insights about how tech can serve the world’s most vulnerable people.

On the investment side, we will hear from Edith Yeung, general partner at Race Capital, about emerging technology trends in China and Silicon Valley.

East Ventures, one of the most prolific and influential investment firms in Indonesia, Southeast Asia’s largest market, will be represented by Melisa Irene, the firm’s first female partner.

And Karthik Reddy, co-founder of Blume Ventures, will be on hand to talk about the challenges and opportunities of helping build India’s startup ecosystem.

Each session will be followed by a live Q&A, so attendees will get a chance to ask each speaker questions. Stay tuned for the final schedule. In the meantime, make sure to get your pass to attend these sessions and a whole bunch more! If you move quickly, you can take advantage of savings on your pro pass if you buy before Friday, September 11 at 11:59pm PT.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support