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

Wednesday 31 October 2018

After canceling ‘Rift 2’ overhaul, Oculus plans a modest update to flagship VR headset

Facebook’s virtual reality arm may soon find itself in the unfamiliar position of playing catch-up with hardware competitors.

Last week, TechCrunch reported that Oculus co-founder Brendan Iribe had decided to leave Facebook partially due to his “fundamentally different views on the future of Oculus” and decisions surrounding the cancellation of a next-generation “Rift 2” project.

The company’s prototype “Rift 2” device, codenamed Caspar, was a “complete redesign” of the original Rift headset, a source familiar with the matter tells us. Its cancellation signified an interest by Facebook leadership to focus on more accessible improvements to the core Rift experience that wouldn’t require the latest PC hardware to function. Iribe did not agree with the direction, with a source telling us that he was specifically not interested in “offering compromised experiences that provided short-term user growth but sacrificed on comfort and performance.”

Former Oculus CEO Brendan Iribe sharing details on the Oculus Rift in 2015

In the wake of the overhaul’s cancellation, the company will be pursuing a more modest product update — possibly called the “Rift S” — to be released as early as next year, which makes minor upgrades to the device’s display resolution while more notably getting rid of the external sensor tracking system, sources tell us. Instead, the headset will utilize the integrated “inside-out” Insight tracking system which is core to Facebook’s recently-announced Oculus Quest standalone headset.

The “Constellation” tracking system on the current-generation Rift offers precise accuracy thanks to the static external sensors that track the headset and Touch controllers. While the Insight system would likely offer users a much more simplified setup process, a clear pain point of the first-generation product, “inside-out” tracking systems have greater limitations when it comes to the lighting conditions they work in and are generally less accurate than systems with external trackers.

While Oculus has long led the way on hardware advances, this release could be seen as the company playing catch-up with competitors like Microsoft, which has partnered with OEMs including Samsung, Lenovo and LG to release headsets on its Windows Mixed Reality platform that also feature inside-out tracking as well as higher resolution displays than the Oculus Rift.

“While we don’t comment on rumors/speculation about our future products, as we shared last week, PC VR remains a part of our strategy and is a category we will continue to invest in. In addition to hardware, we have a robust software roadmap and are funding content well into 2020,” an Oculus spokesperson told TechCrunch.

Facebook CEO Mark Zuckerberg introducing the $399 Oculus Quest

There are some clear benefits for Oculus pushing iterative hardware in an iPhone-like “S” manner, especially around affordability, as a more drawn out device life cycle gives both Oculus and PC component manufacturers time to reduce VR’s high barrier to entry in terms of cost.

The cancellation of its Caspar “Rift 2” project, does suggest a less aggressive pace of innovation for the company with its flagship premium VR product. The move away from a redesign could alienate early adopters and send them to other platforms. It could also lead Oculus into a situation where new titles that take advantage of the latest systems aren’t compatible with Rift hardware.

At its Oculus Connect developer conference, Facebook CEO Mark Zuckerberg shared that the Oculus Rift, Quest and Go represented “the completion of its first-generation of VR products.” As Zuckerberg continues to double-down on his long-term goal to bring 1 billion users into VR, the need to build the Oculus user base is growing more important but it’s unclear how essential the company believes leading the high-end PC VR market is to defining that early mainstream success.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support