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, 29 August 2021

Korean 3D spatial data tool startup Urbanbase closes $11.1M Series B+ round

Urbanbase, a Seoul-based company that develops a 3D spatial data platform for interior planning and design, announced today it has raised $11.1 million (13 billion won) in a Series B+ round as it scales up.

This round of funding was led by Hanwha Hotel & Resort, which is a subsidiary of South Korean conglomerate Hanwha Corporation.

Urbanbase, founded in 2013 by chief executive officer and a former architect Jinu Ha, has now raised $20 million (approximately 23 billion won) in total.

Existing investors did not join this round. The company had raised Series A funding of $1.8 million and an additional $1.2 million in 2017 and its first Series B round in April 2020, from backers that included South Korea-based Shinsegae Information & Communication, Woomi Construction, SL Investment, KDB Capital, Shinhan Capital, Enlight Ventures, CKD Venture Capital, and Breeze Investment, Ha said.

The latest funding will be used for enhancing its B2B SaaS, investing in R&D for advanced virtual reality (VR), augmented reality (AR) and 3D tools, which are considered core technologies of metaverse that is its new business Urbanbase plans to enter, according to Ha. Global metaverse market size is projected to increase $280 billion by 2025 from $30.7 billion in 2021, based on Strategy Analytics’ report.

Companies that focus on opportunities in the so-called “metaverse” have been growing as part of a next-generation approach to building viable business models in areas like virtual and augmented reality, and all the hardware and software and new tech that are being built for them. Big tech corporations, ranging from Facebook, Intel to Microsoft, are targeting to move in the area. Apple also waded into the area of virtual reality, working on developing a high-end VR headset.

Urbanbase also plans to upgrade its home interior software platform, Urbanbase Studio, that has functions to transform 2D indoor space images into 3D displays via Urbanbase’s patented algorithm, visualize interior products in augmented reality and analyze spatial images based on the AI technology.

Urbanbase claims 50,000 monthly active users with 70,000 registered B2C users. The company has about 50 B2B customers.

“Most of our B2B clients are large conglomerates in South Korea and Japan, for example, LG Electronics, Japan-based Mitsubishi Real Estate Service, Nitori Holdings, Dentsu Group and SoftBank, but we would like to extend our B2B clients base to small, midsized companies and bring more B2C users after closing the Series B+ funding,” Ha mentioned.

Urbanbase is seeking an acquisition target in prop-tech and construction technology sectors, Ha told TechCrunch. Urbanbase currently focuses on developing the interior tools for apartment buildings because about 70-80 percent of total households in South Korea and Japan live in apartments, Ha said, adding that it will diversify its portfolio by acquiring a startup that covers different types of residence.

It currently operates the platform in Korean and Japanese, but it will add English language service prior to entering in Singapore in the end of 2021, Ha said.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support