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 July 2019

Startups BRCK and Swvl partner on free WiFi for Kenyan ride-hail buses

Nairobi based internet hardware and service startup BRCK and Egyptian ride-hail venture Swvl are partnering to bring WiFI and online entertainment to on-demand bus service in Kenya.

BRCK will install its routers on Swvl vehicles in Kenya and run its Moja service, which offers free public WiFi—internet, music, and entertainment—subsidized by commercial partners.

Founded in Cairo in 2017, Swvl is a mass transit service that has positioned itself as an Uber for shared buses. “Think ride hailing, but with a bus…and instead of the vehicle coming to you…you go to the bus, and the bus picks you up at a certain point and time,” Swvl’s general manager for Kenya, Shivachi Muleji, told TechCrunch via email.

The company raised a $42 million Series B round in June, with intent to expand in Africa, Swvl CEO Mostafa Kandil said in an interview.

In Kenya, BRCK has installed 15 of its units in Swvl buses and looks to offer its Moja WiFi service in 700 by 2020, BRCK’s chief operating officer Nivi Sharma told TechCrunch.  Swvl pays a monthly fee for the routers and for maintenance of the routers, Swvl confirmed.

Both BRCK and Swvl see a solid fit in pairing up their product offerings. “SWVL’s objectives to provide an alternative in the transportation industry line up nicely with BRCK’s objectives of providing connectivity to commuters,” said BRCK COO Nivi Sharma.

Backed by $10 million from investors including Steve Case’s Revolution VC fund, BRCK built its platform around providing internet solutions in East Africa. Founder Erik Hersman has described Africa’s internet challenges—mainly the lowest penetration rates in the world—as shifting toward more of an affordability than availability problem.

“The demand on internet in Africa is largely driven by the 10 to 15 percent who can afford it. The real massive opportunity is trying to connect the 70 to 80 percent of the people who can’t,” Hersman told TechCrunch in 2017.

SupaPossibleLead1To that end, BRCK paired up its Africa specific WiFi routers to its Moja service to offer free internet and content supported by commercial partners. Users can access Moja on their mobile phones, tablets, or laptops on public transportation or in public areas. They earn points from their browsing to apply to faster connectivity or premium content.

In 2018, BRCK began offering SupaBRCK devices to drivers of Nairobi’s highly-used Matatu buses for Kenyan commuters to access Moja. In February, the startup acquired Nairobi based internet provide Surf and its network of hotspots.

BRCK currently has 445,000 unique monthly active users on its Matatu based Moja mobile network in Kenya and Rwanda and 150,000 unique monthly active users on its fixed network—including users connecting at cafes, barbershops, and marketplaces, according to company data.

Swvl Bus with moja 2BRCK and Swvl wouldn’t confirm plans on expanding their mobile internet partnership to additional countries outside of Kenya.

Ride-hail markets in Africa have become an active sector for VC investment and global and local startups. The big players such as Uber  and Bolt are competing in Kampala and Nairobi—where in addition to car-service—they offer rickshaw taxis.

On-demand motorcycle startups are multiplying and piloting EVs with funds from international partners. And many ride-hail companies in Africa are adapting unique product solutions to local transit needs. The collective startup activity is making the continent home to a number of fresh mobility use-cases, including the BRCK and Svl WiFi partnership.

 

 

 

 

 

 

 



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support