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

Saturday, 31 July 2021

China roundup: Keep down internet upstarts, cultivate hard tech

Hello and welcome back to TechCrunch’s China roundup, a digest of recent events shaping the Chinese tech landscape and what they mean to people in the rest of the world.

The tech industry in China has had quite a turbulent week. The government is upending its $100 billion private education sector, wiping billions from the market cap of the industry’s most lucrative players. Meanwhile, the assault on Chinese internet giants continued. Tech stocks tumbled after Tencent suspended user registration, sparking fears over who will be the next target of Beijing’s wrath.

Incisive observers point out that the new wave of stringent regulations against China’s internet and education firms has long been on Beijing’s agenda and there’s nothing surprising. Indeed, the central government has been unabashed about its desires to boost manufacturing and contain the unchecked powers of its service industry, which can include everything from internet platforms, film studios to after-school centers.

A few weeks ago I had an informative conversation with a Chinese venture capitalist who has been investing in industrial robots for over a decade, so I’m including it in this issue as it provides useful context for what’s going on in the consumer tech industry this week.

Automate the factories

China is putting robots into factories at an aggressive pace. Huang He, a partner at Northern Light Venture Capital, sees three forces spurring the demand for industrial robots — particularly ones that are made in China.

Over the years, Beijing has advocated for “localization” in a broad range of technology sectors, from enterprise software to production line automation. One may start to see Chinese robots that can rival those of Schneider and Panasonic a few years down the road. CRP, an NLVC-backed industrial robot maker, is already selling across Southeast Asia, Russia and East Europe.

On top of tech localization, it’s also well acknowledged that China is facing a severe demographic crisis. The labor shortage in its manufacturing sector is further compounded by the reluctance of young people to do menial factory work. Factory robots could offer a hand.

“Youngsters these days would rather become food delivery riders than work in a factory. The work that robots replace is the low-skilled type, and those that still can’t be taken up by robots pay well and come with great benefits,” Huang observed.

Large corporations in China still lean toward imported robots due to the products’ proven stability. The problem is that imported robots are not only expensive but also selective about their users.

“Companies need to have deep technical capabilities to be able to operate these [Western] robots, but such companies are rare in China,” said Huang, adding that the overwhelming majority of Chinese enterprises are small and medium size.

With the exceptions of the automotive and semiconductor industries, which still largely rely on sophisticated, imported robots, affordable, easy-to-use Chinese robots can already meet most of the local demand for industrial automation, Huang said.

China currently uses nearly one million six-axis robots a year but only manufactures 20% of them itself. The gap, coupled with a national plan for localization, has led to a frenzy of investments in industrial robotics startups.

The rush isn’t necessarily a good thing, said Huang. “There’s this bizarre phenomenon in China, where the most funded and valuable industrial robotic firms are generating less than 30 million yuan in annual revenue and not really heard of by real users in the industry.”

“This isn’t an industry where giants can be created by burning through cash. It’s not the internet sector.”

Small-and-medium-size businesses are happily welcoming robots onto factory floors. Take welding for example. An average welder costs about 150,000 yuan ($23,200) a year. A typical welding robot, which is sold for 120,000 yuan, can replace up to three workers a year and “doesn’t complain at work,” said the investor. A quality robot can work continuously for six to eight years, so the financial incentive to automate is obvious.

Advanced manufacturing is not just helping local bosses. It will eventually increase foreign enterprises’ dependence on China for its efficiency, making it hard to cut off Chinese supply chains despite efforts to avoid the geopolitical risks of manufacturing in China.

“In electronics, for example, most of the supply chains are in China, so factories outside China end up spending more on logistics to move parts around. Much of the 3C manufacturing is already highly automated, which relies heavily on electricity, but in most emerging economies, the power supply is still quite unstable, which disrupts production,” said Huang.

War on internet titans

The shock of antitrust regulations against Alibaba from last year is still reverberating, but another wave of scrutiny has already begun. Shortly after Didi’s blockbuster IPO in New York, the ride-hailing giant was asked to cease user registration and work on protecting user information critical to national security.

On Tuesday, Tencent stocks fell the most in a decade after it halted user signups on its WeChat messenger as it “upgrades” its security technology to align with relevant laws and regulations. The gaming and social media giant is just the latest in a growing list of companies hit by Beijing’s tightening grip on the internet sector, which had been flourishing for two decades under laissez-faire policies.

Underlying the clampdowns is Beijing’s growing unease with the service industry’s unscrutinized accumulation of wealth and power. China is unequivocally determined to advance its tech sector, but the types of tech that Beijing wants are not so much the video games that bring myopia to children and algorithms that get adults hooked to their screens. China makes it clear in its five-year plan, a series of social and economic initiatives, that it will go all-in on “hard tech” like semiconductors, renewable energy, agritech, biotech and industrial automation like factory robotics.

China has also vowed to fight inequality in education and wealth. In the authorities’ eyes, expensive, for-profit after-schools dotting big cities are hindering education attainment for children from poorer areas, which eventually exacerbates the wealth gap. The new regulatory measures have restricted the hours, content, profits and financing of private tutoring institutions, tanking stocks of the industry’s top companies. Again, there have been clear indications from President Xi Jinping’s writings to bring off-campus tutoring “back on the educational track.” All China-focused investors and analysts are now poring over Xi’s thoughts and directives.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support