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 30 July 2019

Real estate platform Compass raises another $370M on a $6.4B valuation en route to an IPO

The real estate market will forever go through ups and downs, but today comes big news for a startup in the space that has built a platform that it believes can help all players in it — buyers, sellers, and those who help with the buying and selling — no matter what stage of the cycle we happen to be in.

Compass — a startup that has built a three-sided marketplace for the industry, along with a wide set of algorithms to help make it work — has raised a $370 million round of funding, money that it plans to use to continue expanding to more geographies and expanding its R&D and product development. Sources tell me that it’s also now eyeing up an IPO, likely sometime in the next 24 months.

“From day one we knew, when we had just a small amount of people at the company, we had a very clear focus,” co-founder and chairman Ori Allon said in an interview. “We wanted to bring more tech and data and transparency to real estate, and i think it’s paid off.”

Based out of New York, Compass earlier this year established an engineering hub in Seattle run by the former CTO of AI for Microsoft, Joseph Sirosh. It’s continuing to hire there and elsewhere (alongside also making acqui-hires for talent).

The Series G funding — which brings the total raised by Compass to $1.5 billion — is coming in at a $6.4 billion valuation, a huge uptick for the company compared to its $4.4 billion valuation less than a year ago. Part of the reason for that has been the company’s massive growth: in the last quarter, its revenues were up 250% compared to Q2 2018.

The investor list for this latest round includes previous investors Canada Pension Plan Investment Board (CPPIB), Dragoneer Investment Group, and SoftBank Vision Fund. Other investors since it was first founded in 2012 have included Founders Fund, the Qatar Investment Authority (a construction and real estate giant), Fidelity and others.

The company was co-founded by Ori Allon and Robert Reffkin — respectively the chairman and CEO — with Allon holding a string of notable successes in the field of search to his name (his two prior startups were sold to Google and Twitter, which used them as the basis of large areas of their search and discovery algorithms).

In this latest entrepreneurial foray, Allon’s vision of using machine learning algorithms to improve decisions that humans make has been tailored to the specific vertical of real estate.

The platform is not a mere marketplace to connect buyers to real estate agents to sellers, but an engine that helps figure out pricing, timing for sales, how to stage homes (and more recently how to improve them with actual building work by way of Compass Concierge) to get the best prices and best sales. It also helps real estate agents manage their time and their customers (by way of an acquisition it made of CRM platform Contactually earlier this year). Starting with high-end homes for private individuals, Compass has expanded to commercial real estate and a much wider set of price brackets.

There is a wide opportunity for vertical search businesses at the moment. People want more accurate and targeted information to make purchasing decisions; and companies that are in the business of providing information (and selling things) are keen for better platforms to bring in online visitors and increase their conversions.

I understand that this has led to Compass getting approached for acquisitions, but that is not in the blueprint for this real estate startup: the longer term plan will be to take the company public, likely in the next 24 months.

“It has been incredible to see the growth of our Product & Engineering team, including the addition of Joseph Sirosh as CTO,” said Compass Founder & Executive Chairman Ori Allon, in a statement. “We are excited to partner with new investors, and deepen our relationship with our existing partners to accelerate our growth and further our technology advancements.”

 



from TechCrunch https://ift.tt/331E9xI
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support