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

Tuesday, 3 September 2019

Tom Hulme from GV is joining us at Disrupt Berlin

Based in London, Tom Hulme is a general partner for GV, the VC firm formerly known as Google Ventures. And Hulme isn’t your average VC as he likes to focus on hard problems instead of quick wins. He has become an important figure of the European VC landscape, that’s why I’m excited to announce that Glovo founder Oscar Pierre is joining us at TechCrunch Disrupt Berlin.

GV has had an interesting start in Europe. The firm originally announced a new, separate fund focused on European startups exclusively. A dedicated GV Europe team was supposed to lead the fund.

A few years later, GV has switched to a more global and unified strategy. The European team is now part of GV at large. But it doesn’t mean that GV stopped looking at European startups altogether.

Tom Hulme is evidence that GV is still very much active in London, the U.K. and Europe. A couple of years ago, TechCrunch’s Ingrid Lunden interviewed him. It is a fascinating read and I would recommend it to anyone interested in startup investment.

GV doesn’t want to stop at low-hanging fruits. The firm is looking at startups working around artificial intelligence and deep learning, virtual and augmented reality, the car of the future, life sciences and more.

For instance, Tom Hulme and his team looked at over 60 companies in Europe and Tel Aviv focused on AI. In other words, if you’re working on something big that requires a lot of capital, chances are you should meet up with GV.

Tom Hulme has invested in SpyBiotech, Lemonade, Currencycloud, Secret Escapes, Genomics Medicine Ireland, Cambridge Epigenetix and many other startups. And I can’t wait to hear what’s going to be his next investment.

Buy your ticket to Disrupt Berlin to listen to this discussion — and many others. The conference will take place on December 11-12.

In addition to panels and fireside chats, like this one, new startups will participate in the Startup Battlefield to compete for the highly coveted Battlefield Cup.


Tom is a general partner at Google Ventures. Previously, Tom was a design director at IDEO Europe, where he founded OpenIDEO, an open innovation platform that has over 150,000 users from more than 170 countries. Tom also launched OIEngine, an online platform for IDEO clients, including Harvard Business School and the Knight Foundation.

Before IDEO, Tom was managing director of Marcos, a British sports car manufacturer. As a serial entrepreneur, Tom also founded Magnom, a magnetic filter startup. Tom’s filter designs have been widely used in Formula One, Superbikes, JCB loaders, and central heating systems.

Tom has been recognized as a Young Global Leader by the World Economic Forum, and has been featured in WIRED UK’s Top 100 Digital Power Brokers list every year since the list has been published. He has also been included in the Evening Standard list of London’s 1000 Most Influential People.

Tom earned a first class bachelor’s degree in physics from the University of Bristol, and an MBA from Harvard Business School, where he received the Baker Scholar Award of high distinction. Tom has also received an honorary doctorate from University Arts London.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support