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

Lime claims it didn’t know controversial PR firm Definers would sling mud at rivals

Scooter startup Lime has confirmed it hired Definers but claimed it didn’t know the controversial PR firm would try to smear its rivals. The company was speaking during an on stage interview here at TechCrunch Disrupt Berlin.

Definers was recently revealed to have carried out so-called ‘opposition research’ on entities critical of Facebook. Including by leveraging anti-semitic conspiracy theories about billionaire George Soros, according to the New York Times, which broke the story earlier this month.

At the same time it emerged that other tech firms had also been using Definers — Lime being one of them.

And, as we reported earlier, the PR firm pitched us a suggestive email seeking to throw mud on scooter rival Bird.

“I read your piece on Bird’s custom scooter and delivery. Just wanted to flag that Bird’s numbers seem off based on what they have listed on their website. They’ve taken a bunch off the list. Seems odd since they just announced 100 cities two weeks ago. Thought you’d find this interesting,” Definers wrote us on October 5.

Asked about its business relationship with the PR firm, Lime’s VP of global expansion Caen Contee, claimed it had not known how Definers operated.

He also said Lime has since terminated its program with the firm.

“First off we do not support that,” he said, of the Soros smears. “We do not believe that this is the space that should be used for anything [like that]. We used them to work on our Lime green and our carbon free programs. As soon as we understood they were doing some of these things we parted ways and finished our program with them.”

Contee claimed Lime had engaged Definers to try to understand “what were the levers of opportunity for us to really create the messaging and also to do our own research; understanding the life-cycle; all the pieces that are in a very complex business”.

“As soon as we found out they were engaged in bad practices that were not beneficial and obviously not creating a good image… we decided to move on,” he said, adding that Definers had been “recommended by top providers all the way around”.

Pressed by TechCrunch’s Romain Dillet on why it had sent an email on Lime’s behalf seeking to smear Bird, Contee continued the flat-denial — now in the first person.

“Okay I don’t know anything about that. Honestly,” he said.

“Aren’t you suppose to know who you’re working with?” rejoined Dillet.

“Of course we know who we’re working with. As to knowing exactly the tactics I don’t know your tactics but I’m here talking to you,” replied Contee, misleadingly comparing a commercial business relationship with an unpaid appearance at a technology conference.

The whole episode sits uneasily with other comments the Lime VP made during the interview, as he sought to paint a picture of a collaboratively minded company.

He claimed Lime wants to not just partner with the cities (he called them “city stakeholders”) it obviously needs on side in order to seed its on-demand electric vehicles but also with other players in the multi-modal urban mobility space — to build momentum and drive adoption of a new and disruptive mobility tech.

Changing behaviour will be key to expanding the urban mobility opportunity, he suggested, adding: “We need to really address and change the behavior. And if multiple companies are enabling that then we’re all for it.”

“Our methodology is working side by side with cities,” he also said. “And the ability to do so is based on showing demand. What you’re seeing now is that cities have long wanted to support urban mobility lanes, and recreate the urban infrastructure. But it’s a bit of a chicken and egg problem.

“We provide a supply, the demand is there and I think what you’ll see is that as we create more infrastructure and we encourage more of this behaviour cities will encourage also to see more and more of these types of companies to really serve their citizens.”

Lime has previously taken investment from Uber — and Contee couched that multi-modal rival as “both” an investor and partner.

“I think the reality is that we want to see cities transform and we welcome anyone who wants to find a way to help us do that alongside of us — as part of more of a partner-based company,” he said, when asked about Lime’s relationship with Uber. “Where we’ve got long-term relationships and collaborating than we are about trying to create things between people.”

“Ultimately this is proving the viability of the space, enabling the transformation that we see. The fact that globally we have less than 5-10% for what is ultra-mobility, in terms of the number of trips that are happening in the community… that’s the real thing we need to be doing,” he added.

The pitch for fellow urban mobility innovators to work with Lime to collectively open up a nascent market makes it all the more puzzling that it engaged an oppo research firm which tried to sling mud at a rival.

Unless, well, Lime actually views rival scooter startups as a barrier to grabbing greater marketshare (and thus scaling the value of its company faster — perhaps to shoot for an early exit).

And therefore as better ridden over or pushed out of the road as it pulls to go full throttle.

Contee said otherwise today. But the Definers pitch stands as a contraction. So not doing proper due diligence there looks like a major misstep.

One thing is clear: Lime has been accelerating very rapidly over the past 18 months.

Contee confirmed today that it’s operating in 130 cities globally, with now a full 20 million rides under its belt — and a staggering $467M raised.

While, as VP of global expansion, he said he’s only home for three to four days a month on account of all the work travel required to set up local teams, adding — without obvious irony — “I live on a plane.”



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support