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, 29 November 2018

V2X Network gives developers the keys to in-vehicle data

Data is king. But if there isn’t a way to capture, sort and use it, then there it sits — an untapped resource.

V2X Network, a German-based startup presenting onstage Thursday during Startup Battlefield at TechCrunch Disrupt Berlin, sees opportunity in all the data produced in the modern car. And it’s a hefty sum. A fully connected and automated car loaded with sensors can produce up to 4 terabytes of data per day, the company says. As V2X Network puts it, “cars have basically become rolling data servers.”

This data can provide all kinds of insights, such as driving and road conditions and the locations of charging and fuel stations. Data produced from vehicles, if properly captured and organized, could be used to deliver services to consumers, such as helping to improve driving behavior or handing the information to city planners to better understand traffic patterns.

This isn’t a new opportunity. (After all, Intel calls data the new oil.) And V2X Network is not the first (or the last) company to see gold in the hills of data generated by connected vehicles.

V2X Network, which was founded earlier this year, is taking a carrot-first and blockchain-protected approach. The company, founded by CEO Ahsan Shamim, COO Holger Philipp and CTO Shumail Mohyuddin, has developed what it describes as a decentralized incentivized platform that gives developers access to in-vehicle data, which can be turned into a variety of different apps.

But there’s a moat, and it’s the driver. V2X Network doesn’t allow any application developer to access the data without the driver’s consent, and that can always be revoked, the company’s founders told TechCrunch. 

v2x network

Here’s how the founders, who have backgrounds in automotive and computer science, envision the system will work.

Giving developers access to in-vehicle data so they can turn it into all kinds of apps delivered to cities, automakers and drivers sounds like a winning idea. The problem is accessing that data. Why would anyone just give it away? And why would automakers hand it over?

V2X Network is taking a dual approach to getting access to that valuable data. The company is collaborating with automakers for direct access. (V2X Network couldn’t say who they were working with; only that they’re starting to work with two OEMs on a proof of concept basis.) The second data source is straight from the car owner through an OBD-II dongle solution used to collect data on older vehicles. A prototype of the V2X Network dongle, a blockchain node that starts sharing information with V2X Network once it’s plugged in, was shown at Disrupt Berlin.  

Once the data is collected, it’s made available to developers who use it to create valuable apps that could be used by drivers, cities and automakers, among others.

Incentivizing the car owner for producing the data lies at the center of the platform. V2X Network isn’t buying the data from the car owner. Instead, the company proposes charging data access fees from the service providers and sharing part of the revenue with the car owners or manufacturers.

The company sees a variety of possible applications developed from the data, from fleet management services and vehicle tracking to traffic congestion control, smart parking and driver coaching.

[gallery ids="1752153,1752159,1752156,1752154,1752157,1752155"]


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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support