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

The maker of popular selfie app Facetune just landed $135 million at a unicorn valuation

Facetune, a photo editing app that empowers users to cover their gray hairs, refine their jaw lines, and reshape their noses, was first introduced around six years ago, and it quickly climbed to the top of the download charts, becoming Apple’s most popular paid app of 2017. Despite stiff competition, it has remaining highly popular, too.

That staying power hasn’t been lost Goldman Sachs Private Capital Investing, Insight Partners or ClalTech, which just gave Facetune’s parent company, Lightricks, $135 million in Series C funding at a post-money valuation of $1 billion.

The investment firms — two of which led a $60 million round in the company less than a year ago —  are getting much more than Facetune in the deal.

Lightricks, based in Tel Aviv, has 260 employees supporting six products across three divisions, including Facetune, whose second version was rolled out this year; Enlight, a line of mobile photography and editing tools that aims to make photo editing more accessible to amateurs; and the startup’s newest, enterprise-focused brand, Swish, a marketing video editor that helps companies tell their story with video ads.

The separate divisions each come with meaningful mind share. According to cofounder and CEO Zeev Farbman, Lightricks has seen 180 million downloads across it paid apps, which generally cost $3.99 to download. Since the company began offering subscription layers to users who want premium bells and whistles in 2017, it has amassed a respectable number of subscribers, as well. According to Farbman, Facetune now has more than 1 million subscribers; Enlight has roughly 1 million subscribers, and Swish’s subscribers brings the total to roughly 3 million subscribers altogether.

More subscription-based content-creation apps are on the way, says Farbman, who hints they may be coming shortly. (Other developments might take a while, he adds, explaining that Lightworks, originally founded by five PhDs, is “constantly working on things that will be out two or three years down the line.”)

Reshaping features

If it it has been mostly smooth sailing for the company, there have been headwinds from time to time.

Facetune has been accused of taking photo brushing too far, for example, with celebrity model Chrissy Teigen tweeting about the app last year, “I don’t know what real skin looks like anymore . . . everyone looks like an oil painting.”

Asked what he thought of the body image debate the app had prompted, Farbman says the company sees itself as “democratizing retouching, and [educating users about] how powerful image processing can be.

“If you go back 10 years,” he notes, before mobile image processing software was available to everyone, “people didn’t understand that the people they were seeing on magazine covers had undergone the photoshopping process.”

Facetune users have also long grumbled about the second release of the app, not realizing that when they update the app, they lose some of the features that were previously available to them. (You have to subscribe in order to continue using them.)

Lightricks

 

Clearly, Lightricks and its backers — and one million users — think the company’s products are worth the monthly expense, which ranges depending on the features a user wants to unlock.

A team that includes experts across a number of relevant domains is the reason, says Farbman, who himself previously spent most of his time in academia, studying computer graphics, computer vision, and computational photography.

After the photo editing app Snapseed made its debut and was quickly scooped up by Google, he and four PhD friends “realized that nobody is becoming a great platform for content creation.” They quickly got to work developing their first product — Facetune — and by 2015, the bootstrapped company, which had also by then introduced Enlight, was seeing $10 million in annual revenue.

Still, we “thought we could do better,” says Farbman. Toward that end, Lightricks raised money, and we “started to grow way faster as a company,” he recalls.

It also began rolling out its subscription offerings, and despite continued complaints from some corners (Facetune 2 came out in 2016), Farbman says more people are signing up — and agreeing to pay more — than he initially imagined would be the case.

It makes sense to him now, he suggests. “Our founding team includes PhDs who were at the top of their fields, which allowed us to attract a strong team at the beginning. And once you’re hiring the best people, you’re probably going to build the best software. And if you’re building the best software, you can charge premium prices for that.”

Lightricks’s latest financing brings its total funding to $205 million to date. The new funding will be used to crate more tools, says Farbman. He adds that his team also plans to begin acquiring companies strategically.



from TechCrunch https://ift.tt/333Lkp9
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support