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

This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Monday, 1 March 2021

Istanbul’s Dream Games snaps up $50M and launches its first game, the puzzle-based Royal Match

On the back of Zynga acquiring Turkey’s Peak Games for $1.8 billion last year and then following it up with another gaming acquisition in the country, Turkey has been making a name for itself as a hub for mobile gaming startups, and specifically those building casual puzzle games, the wildly popular and very sticky format that takes players through successive graphic challenges that test their logic, memory and ability to think under time pressure.

Today, one of the more promising of those startups, Istanbul-based, Peak alum-founded Dream Games, is announcing the GA launch of its first title, Royal Match (on both iOS and Android), along with $50 million in funding to double down on the opportunity ahead — the largest Series A raised by a startup in Turkey to date.

While Dream Games will focus for the moment on building out the audience for puzzle games with more innovative ideas, it also has its sights set on a bigger goal.

“We’re building this as an entertainment company,” CEO Soner Aydemir said in an interview, where he described Pixar as a key inspiration not just for size but for quality in its category. “What they did for animated movies, we want to do for mobile gaming. We are focusing on casual puzzle games first because everyone plays these, but we will also move forward with other genres. We want to be a huge interactive entertainment company that builds high quality games.”

The Series A is being led by Index Ventures, with participation also from Balderton Capital and Makers Fund. The latter two backed Dream Games previously, in a $7.5 million seed round in 2019. Index, meanwhile, is a notable VC to have on board: other successful gaming startups it has backed include Discord, King, Roblox and Supercell.

Interestingly, this is not Index’s first investment in a gaming startup founded by Peak Games alums: in December it led a $6 million round for another Istanbul mobile casual puzzle gaming startup founded by ex-Peak employees: Bigger Games.

Dream Games is not disclosing its valuation with this round.

Dream Games raising $57.5 million ahead of launching any games — or proving whether they get any traction — may sound like a risky bet, but there is some context to the story that sets up the odds in this startup’s favor.

The founding team all come from Peak Games, the Istanbul gaming startup that was so nice, Zynga bought it twice — first, in the form of one small acquisition of some specific titles, and then the whole company some years later.

CEO Soner Aydemir is Peak’s former director of product who built the company’s two biggest hits, Toy Blast and Toon Blast. Ikbal Namli and Hakan Saglam were Peak’s former engineering leads. And Peak product manager Eren Sengul and an ex-Peak 3D artist Serdar Yilmaz round out the rest of the founding team.

(Aydemir notes that the team left and formed Dream Games in 2019, about a year before Zynga’s full acquisition.)

The other indicators that Dream Games is on to something are its metrics for its limited test run of Royal Match.

Royal Match — in which players are tasked with helping King Robert restore his royal castle “to its former glory” by rebuilding it through a series of match-3 levels and obstacles, with new rooms, royal chambers and gardens making up the different levels of the game — was launched first as a limited test on iOS and Android in the U.K. and Canada in July leading up to this launch. In that time, Aydemir said it saw 1 million downloads and 200,000 daily average users.

“We think the numbers are very promising compared to previous experiences,” he said.

While Aydemir likes to describe Dream as an “entertainment” company, there is a lot of technology going into the product, from the graphics and the mechanics of the puzzles themselves through to the data science behind them.

“If you want to create an iconic game, you need to combine engineering, art and data science together with high quality user acquisition and a strong marketing approach,” he said.

And he believes that when you focus on these it will inevitably lead to quality, which means you no longer have to focus on simply trying to find a hit.

“We don’t like that approach,” he said. “We don’t want to find a hit.”

That was also the mix that Index also wanted to back.

“Building iconic titles requires a harmonious mix of craft, science and flawless execution,” said Index Ventures partner Stephane Kurgan, who led the round together with Index’s Sofia Dolfe. “The Dream Games team has perfected this mix over many years of working together, and has put it on full display in Royal Match. We could not be more excited to work with them in their journey to build the next global casual champion.”

While Dream Games’ long-term ambition is to build out interactive experiences around different audiences and genres, Aydemir said that casual games, and puzzles in particular, have proven to be a huge hit with consumers.

The strength of that trend has up to now meant that puzzle games generally have proven to have more staying power than other genres in mobile games, which have soared in popularity but also somewhat fizzled out.

“Every year we see the bigger market of users growing by 20%,” he said. “It will remain for decades.”

Interestingly, the focus on casual gaming startups in Turkey seems like a perfect storm of sorts. Undeniably, the proven success of Peak has brought in more punters, but it has also shown the way to developers: you can build a successful and global consumer tech startup out of Turkey, and perhaps puzzles — which focus on shapes — are especially good at transcending different language barriers.. Alongside that, Aydemir pointed out that the country is strong on engineers and developers but slim on opportunities with bigger tech companies.

“Mobile gaming is a younger industry, so that presents an opportunity,” he said.

Updated to correct that Index is not an investor in Rovio, and that the limited test had 200,000, not 200, DAUs.



from TechCrunch https://ift.tt/3ky0YlW
Share:

Lime unveils new ebike as part of $50 million investment to expand to more 25 cities

Lime said Monday it has allocated $50 million towards its bike-share operation, an investment that has been used to develop a new ebike and will fund its expansion this year to another 25 cities in North America, Europe, and Australia and New Zealand. 

If the company hits its goal, Lime’s bike-share service will be operational in 50 cities globally by the end of 2021.

The latest generation e-bike, known internally as 6.0, has a swappable battery that is interchangeable with Lime’s newest scooter. Additional upgrades to the e-bike include increased motor power, a phone holder, a new handlebar display, an electric lock that replaces the former generation’s cable lock and an automatic two-speed transmission. The new bikes are expected to launch and scale this summer. 

The hardware upgrade builds off of the 5.8, a bike developed by Jump that was supposed to be deployed in 2020. That never happened at scale because Uber, which owned Jump, offloaded the unit to Lime as part of a complex $170 million investment round announced in May.

“Jump made great hardware,” Lime President Joe Kraus said in a recent interview. “And we made some further improvements on top with the new bike.”

The hardware upgrades and expansion were funded from its own operational funds, not new financing from outside investors, Kraus said. The funding was possible as a result of Lime achieving its first full quarter of profitability in 2020, according to the company.

“We have figured out how to be profitable and we are funding this,” Kraus said.

Lime not only added a new motor to the bike, it moved its location in an aim to make it easier to handle at low speeds and enough power to climb hills, Kraus said. The swappable battery was perhaps its most important upgrade directly tied to its drive towards profitability, Kraus added.

“When our operations teams is roaming around the city, they take can care of bikes and the scooter fleet, which allows us to both operate profitably and continue to have affordable pricing,” he added.

Lime’s investment in its ebike operation comes a month after it announced plans to add electric mopeds to its micromobility platform as the startup aims to own the spectrum of inner city travel from jaunts to the corner store to longer distance trips up to five miles. Lime is launching the effort by deploying 600 electric mopeds on its platform this spring in Washington D.C. The company is also working with officials to pilot the mopeds in Paris. Eventually, the mopeds will be offered in a “handful of cities” over the next several months.

“This idea of how to service more trips five miles within a city is part of why we continue to do multi modality,” Kraus said. “When we add a new modality like bikes into a scooter city, or when we add scooters to a bike city both modalities go up in usage.”



from TechCrunch https://ift.tt/3kxAX6g
Share:

Sunday, 28 February 2021

The Wikileaks-style group DDoSecrets claims that Parler-like site Gab has been breached and is now set to share 70GB of passwords, private posts, and more (Andy Greenberg/Wired)

Andy Greenberg / Wired:
The Wikileaks-style group DDoSecrets claims that Parler-like site Gab has been breached and is now set to share 70GB of passwords, private posts, and more  —  The transparency group DDoSecrets says it will make the 70GB of passwords, private posts, and more available to researchers, journalists, and social scientists.



from Techmeme https://ift.tt/2Ob3By8
Share:

An oral history of #hugops and the growing community of operations engineers who offer support for their peers before and during major cloud service outages (Tom Krazit/Protocol)

Tom Krazit / Protocol:
An oral history of #hugops and the growing community of operations engineers who offer support for their peers before and during major cloud service outages  —  When something breaks on the internet, the people who know how to fix it just want to give their colleagues a hug — even if they're a rival.



from Techmeme https://ift.tt/301Jxku
Share:

Qualcomm veteran to replace Alain Crozier as Microsoft Greater China boss

Microsoft gets a new leader for its Greater China business. Yang Hou, a former executive at Qualcomm, will take over Alain Crozier as the chairman and chief executive officer for Microsoft Greater China Region, according to a company announcement released Monday.

More to come…



from TechCrunch https://ift.tt/3kvK87n
Share:

Blog Archive

Definition List

Unordered List

Support