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

Monday, 24 May 2021

Korea’s Riiid raises $175M from SoftBank to expand its AI-based learning platform to global markets

“AI is eating the world of education,” Riiid co-founder and CEO YJ Jang notes in his biographical description on his LinkedIn profile, and today his startup — which builds AI-based personalized learning, including test prep, for students — is announcing a major funding round to help it position itself as a player in that process.

Seoul-based Riiid has closed a funding round of $175 million, an equity round coming from a single backer, SoftBank’s Vision Fund 2.

The funding is coming at a high-watermark moment for edtech — with the shift to remote learning in the last year of pandemic living highlighting the opportunity to build better tools to serve that market, and a number of startups in the category subsequently raising hundreds of millions of dollars to tackle the opportunity. Riiid plans to use the investment both to expand its footprint internationally, a well as to expand its products.

Riiid is not disclosing its valuation, but this round is its biggest yet and brings the total raised by the startup to $250 million, a significant sum in the world of edtech.

Riiid has primarily made a name for itself through Santa, a test prep app geared towards people in non-English-language countries to practice and prepare to take the TOEIC English language proficiency exam (often a requirement to apply to English-language universities if you’re not a native English speaker), which has been used by more than 2.5 million students in Korea and Japan.

It has also been partnering with third parties to expand into test prep for other exams. These have included the GMAT (in partnership with Kaplan) for Korean students; an app, in partnership with ConnecME Education (a company that tailors educational services specifically to cater to international audiences) to help people in Egypt, UAE, Turkey, Saudi Arabia, and Jordan prepare for the ACT; and a deal to build AI-based tools for students in Latin America to prepare for their college entrance exams. The ACT development comes after Riiid said that the former CEO of ACT, Marten Roorda, was joining its international arm Riiid Labs as its “executive in residence,” so that could point to more ACT prep applications for other markets, too.

Beyond university entrance tests, Riiid has also been building apps for vocational education, with Santa Realtor for preparing for real estate agency exams, and a test preparation tool for insurance agent exams, both in Korea.

The company has been growing at a time when edtechs are seeing more business and a rise in overall credibility and urgency to fill the gap left by the temporary cessation of in-person learning. The extra element of bringing artificial intelligence into the equation is not unique: a number of companies are bringing in advances in computer vision, natural language processing and machine learning to bring more personalized experiences into what might otherwise appear like a one-size-fits-all model. What is notable here is that Riiid has also been anchoring a lot of its R&D in IP. The company says it has applied for 103 domestic and international patents, and has so far had 27 of them issued.

“Riiid wants to transform education with AI, and achieve a true democratization of educational opportunities,” said Riiid CEO YJ Jang in a statement. “This investment is only the beginning of our journey in creating a new industry ecosystem and we will carry out this mission with global partnerships.”

For SoftBank, this is one of the firm’s bigger edtech investments — others have included Kahoot ($215 million), Unacademy in India, and Descomplica in Brazil. Riiid said that this round is SoftBank’s first specifically in the area of AI built for educational applications.

“Riiiid is driving a paradigm shift in education, from a ‘one size fits all’ approach to personalized instruction. Powered by AI and machine learning, Riiid’s platform provides education companies, schools and students with personalized plans and tools to optimize learning potential,” said Greg Moon, Managing Partner at SoftBank Investment Advisers. “We are delighted to partner with YJ and the Riiid team to support their ambition of democratizing quality education around the world.”



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support