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

Tuesday, 30 April 2019

Glovo, the on-demand ‘deliver anything’ local app, raises $169M Series D

Glovo, the Spain-headquartered on-demand delivery app that has similarities to Postmates in the U.S., has raised $169 million (€150m) in Series D funding. Lakestar led the round alongside Drake, owner of global pizza franchise Papa John’s.

Idinvest Partners and Korelya Capital also participated, bringing total raised to approximately $322 million. The company last raised funding ten months ago: a $134 million Series C round from Seaya Ventures, Cathay Innovation and Rakuten Capital.

Founded in January 2015 by Oscar Pierre and Sacha Michaud, Glovo offers a ‘shop on your behalf’ app that promises to let you order anything locally on-demand and have it delivered “within minutes”. This includes food items — the company is known for its McDonald’s deliveries in Spain — and non-takeout food and other verticals, such as groceries and pharmaceuticals.

The fast-growing company claims more than 5.5 million unique users and 16,000 associated partners, and now operates in 124 cities across 21 countries, including EEMEA, LATAM, and most recently in Sub Saharian Africa.

The startup says it currently employs over 1,000 people globally, with over 400 people in its Barcelona HQ. A classic gig worker setup: Glovo has 35,000 active “Glovers” on its platform (that’s “self-employed” couriers, to you and me).

Glovo says it will use this injection of funding to bolster global growth, which has been dramatically picking up pace (although, with some reported bumps in the road). CEO Oscar Pierre tells me the company launched in 18 new countries in 2018. There are also plans to further innovate around on-demand groceries, including creating “dark supermarkets” that operate alongside the app’s marketplace of local supermarket chains.

Explains Pierre: “Our Darkstores are urban micro-fulfillment centers located in central areas of a city. They allow us to fully control the value chain and offer the best UX, with a delivery of around 20 minutes. They are run 24 hours a day by Glovo employees whose role is to pick and pack customer orders and have them ready for when the courier arrives. We have launched the offering in Barcelona and Madrid so far and we are still learning and analyzing the results”.

In addition, Glovo will continue to throw more engineers and technology at the problem of optimising on-demand delivery. The company recently hired VP of engineering Mustafa Sezgin, who was an engineering leader at Uber prior to joining.

Pierre says tech is being developed to continue improving the efficiency of Glovo’s “delivery and dispatching capabilities to building a world-class mobile product that exposes everything in a city at the push of a button”. To support this, he intends to grow the tech and data team to over 300 engineers in the next 18 months.

“Today, more than 70 percent of our business is food, followed by groceries, courier and pharmacy,” adds Pierre. “Our vision is to make everything in a city instantly available through the app, and we want to expand into other areas beyond delivery (services, reservations, etc) soon”.

Meanwhile, I’m told Glovo’s most successful markets in terms of orders are Spain (Madrid & Barcelona), Argentina (Buenos Aires), Peru (Lima) and Italy (Milan). Its most successful markets in terms of growth last month (ie new customer acquisition) outside of the above were Costa Rica (San José), Guayaquil (Ecuador), Ukraine (Kiev), Turkey (Istanbul) and Romania (Bucharest).



from TechCrunch https://tcrn.ch/2GSjyTv
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support