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, 16 January 2020

Allen Institute for AI’s Incubator expands with $10M fund from high-profile VCs

The Allen Institute for AI (AI2) started its incubator up two years ago, helping launch companies like Xnor.ai, Blue Canoe, and WellSaidLabs. Their success has attracted funding from not just local Seattle VC outfit Madrona, but Sequoia, Kleiner Perkins, and Two Sigma as well, resulting in a new $10M fund that should help keep the lights on.

The AI2 Incubator, led by Jacob Colker since its inception in 2017, has focused on launching a handful of companies every year that in some way leverage a serious AI advantage. Blue Canoe, for instance, does natural language processing with a focus on accent modification; Xnor.ai is working on ultra-low-power implementations of machine learning algorithms, and was just acquired yesterday by Apple for a reported $200M.

“We think the next generation of so called AI-first companies are going to have to graduate into building long term, successful businesses that start with an AI edge,” said the program’s new managing director, Bryan Hale. “And the people who can help do this are the ones who have helped build iconic companies.”

Hence the involvement of household names (in the startup community anyhow) Sequoia and Kleiner Perkins, and Two Sigma from New York. Seattle-based Madrona also recently invested in AI2 company Lexion. It’s a pretty solid crowd to be running with, and as Colker pointed out, “they don’t often come together.”

“But also, they looked up into the northwest and said, what’s going on up there?” added Hale. Indeed, Seattle has over the last few years blossomed into a haven for AI research, with many major tech companies establishing or expanding satellite offices here at least partly concerned with the topic: Apple, Google, Nvidia, and Facebook among others, and of course local standbys Amazon, Microsoft, and Adobe.

Practically speaking the new fund will let the incubator continue on its current path, but with a bit more runway and potentially bigger investments in the startups it works with.

“We just have a lot more resources now to help our companies succeed,” said Colker. “Previously we were able to write up to about a $250,000 check, but now we can write up to maybe $800,000 per company. That means they have a lot more time to build out their team, aggregate training data, test their models, all these points that are important for a team to raise a bigger, better VC funding round.”

AI2 prides itself on its large staff of PhDs and open research strategy, publishing pretty much everything publicly in order to spur the field onwards. Access to these big brains, many of which have bred successful startups of their own, is no less a draw than the possibility of more general business mentorship and funding.

Colker said the incubator will continue to produce 3-5 startups per year, each one taking “about 12-18 months, from whiteboard to venture funding.” AI, he pointed out, often needs more time than a consumer app or even enterprise play, since it’s as much research as it is development. But so far the model seems to work quite well.

“There are very few places in the world where an entrepreneur can come to take advantage of the brain power of a hundred PhDs and support staff. We’ve got a new research center with 70 desks, we’ve got plenty of space for those teams to grow,” he said. “We’re incredibly well positioned to support the next wave of AI companies.”



from TechCrunch https://ift.tt/3afVBCA
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support