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

Thursday, 27 February 2020

Indian research firm Convergence Catalyst is ready for its second act

A 9-year-old is smashing the shuttle far and wide, and frantically pacing back and forth on the court in Bangalore, India, as her competition refuses to back down. Her rival is not a human. She is playing against a machine that is mimicking the game of badminton legend P.V. Sindhu, toned down a few notches to adjust for the age difference.

By the court, her father, Jayanth Kolla, is watching the game and taking notes. Kolla is a familiar name in the tech startup and business ecosystem in India. For the last eight years, he has been helming the research firm Convergence Catalyst, which covers mobility, telecom, AI and IoT.

When his daughter showed interest in badminton, Kolla rushed to explore options, only to realize that the centuries old sports could use some deep tech.

He reached out to a few friends to explore if they could build a device. “I have always wondered how a younger version of players who have made it to the professional arena must have played like,” he said in an interview.

Months later, they had something better.

Sensate Technologies

Kolla founded Sensate Technologies last year and has hired many industry experts and data scientists from Stanford, MIT, and India’s IIT. Sensate is building solutions on deep technologies such as AI, ML, advanced analytics, IoT, robotics and blockchain.

In the last year, the bootstrapped startup has developed seven prototypes, five of which are for sports. It holds eight patents. Which brings us back to the court.

One of the prototypes that Sensate has built is the machine that Kolla’s daughter is playing against. In a recent interview, he demonstrated how Sensate was able to accurately map how a player moves on the court and goes about smashing the shuttle by just looking at two-dimensional videos on YouTube and mobile camera feed. This has been built using Computer Vision AI.

It then fine tunes the gameplay in accordance with the age difference, which is input into a machine that can now mimic that player to a great level, said Kolla.

A handful of startups and established players have sought to address the sports tech market in recent years. SeeHow, another India-based startup, builds and embeds sensors in bats and balls to track specific types of data that batsmen and bowlers generate.

Kolla’s aim is to turn Sensate Technologies into a global deep tech venture foundry and build 20 odd products that would then branch into multiple companies operating in 11 different industries.

Microsoft last year partnered with Indian cricket legend Anil Kumble’s company Spektacom to work on a number of solutions including a smart sticker for bats that contains sensor tech designed to track the performance.

But Kolla’s ambitions go way beyond sports tech.

“The best part about deep technology solutions and platforms is that you build solutions on these technologies to solve a problem in a particular sector and with very little incremental effort, they can solve problems in a completely different sector,” he said.

Kolla, a former product manager at Motorola and Nokia, among other companies, said the startup is also in discussion with one of the world’s biggest companies that is looking to license its tech for their healthcare stack. “This validates our approach.” He declined to name any potential clients as the talks have not materialized yet.



from TechCrunch https://ift.tt/32DjwZg
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support