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

Facebook co-founder Saverin’s B Capital doubles down on SaaS in China

B Capital Group, the six-year-old venture capital fund formed by Facebook co-founder Eduardo Saverin and Bain Capital veteran Raj Ganguly, is doubling down on China as it looks to allocate $500 million to $1 billion of its fund into Chinese tech companies over the next few years.

With $1.9 billion assets under management, B Capital is going after enterprise software providers in China, an area that has seen “explosive growth” but is still only a “fraction the size of the U.S. SaaS market,” Ganguly said in an interview with TechCrunch.

The idea that Chinese companies are reluctant to shell out for software is “very backward-looking thinking”, he added.

One force fueling the boom of B2B companies in China is surging labor costs. As such, B Capital is hunting down software that could make labor and business operations more productive, and subsequently, give companies a competitive edge. Covid-19 accelerated the shift, as well-digitized companies had proven much more resilient to disruptions caused by the pandemic.

B Capital is able to discern what enterprises need thanks to its close partnership with Boston Consulting Group, which has a raft of customers ranging from healthcare, finance to transportation looking to digitize.

These large corporations “understand that their internal technology can’t be the only solution and they have to look to the outside and be willing to partner with early-stage, high-growth, or late-stage tech companies,” Ganguly suggested. They are also more willing to pay for software compared to scrappy, cash-strapped startups.

B Capital began deploying capital in China early this year and has already closed three deals. It’s stage-agnostic — though growth-stage startups are the focus — and plans to back 15-20 projects in China over the next few years. About 15 of its investment and operating employees are based out of Hong Kong and Beijing. It has around 110 staff worldwide.

Ganguly declined to disclose the names of its Chinese investees at this stage but said they include a biotech company, an automotive parts business, and an e-commerce enabler. Leveraging BCG’s expertise, the biotech company is learning how it can bring actual drugs to market faster. And the automotive business is similarly working with BCG to figure out its pricing and go-to-market strategy.

Going global

Overall, B Capital looks for opportunities in healthcare, fintech, industrial digitalization, and other horizontal enterprise services. Chinese startups that interest B Capital most are also those with the intention and ability to cross borders.

“Biotech is the area that we’ve been the most impressed by what’s happening in China and how that technology can be exported to other countries,” Ganguly said. B Capital has backed one biotech startup with offices in both Shanghai and Cambridge, Massachusettes, and is on track to close a deal with another that also straddles China and the U.S.

The other target is e-commerce, which Ganguly described as “cross-border by its nature” because a product is often sourced in one country, made in another, and then sold in a third market.

The investor is certainly right about the potential of cross-border e-commerce in China, where consumers have a big appetite for imported goods and manufacturers look for new ways to sell globally.

China is also in a good position to export its enterprise software, similar to how Indian counterparts have succeeded overseas, said Ganguly. The difference is that few Indian corporations are willing to pay big bucks for software, which forces B2B entrepreneurs to seek market abroad, whereas China’s domestic companies have an increasing demand for SaaS.

Despite ongoing geopolitical complications, Ganguly is optimistic that the world “is still moving towards globalization” over the long term.

“Certain innovation cycles have started in Silicon Valley and spread to places like China and Southeast Asia. But frankly, other innovation cycles have started in China and gone to South and Southeast Asia and the U.S. We think that China’s enterprise [software], artificial intelligence and biotech are some of the best technology that we’ve seen.”

But these globalizing companies must be able to adapt, hire talent outside their core market, get regulatory approvals, and build the right distribution networks, the investor suggested.

“I think that there are aspects of globalization that have become very politicized, and I think that’s unfortunate but understandable. Our belief is that businesses that we invest in have the ability to cross borders. Sometimes that means going from China to South and Southeast Asia, and sometimes that means extending to the U.S. Sometimes it just means the ability to import or export their products or software, and even staying in China where they can sell their technologies overseas.”



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support