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 March 2021

Ecovative sees a fungal future for fashion, food, and foam packaging and has a fresh $60M to make it

Eben Bayer has spent the better part of fourteen years proving out the power of the humble mushroom as the world’s truly functional food. 

As the chief executive and founder of Ecovative Design, Bayer has made replacements for foam packaging, lamps and furniture, leather materials, and even meats like bacon from mighty mushroom mycelia (they even grew a tiny. home).

Now the company has $60 million in financing to create new applications for its mycelial products and scale up existing business units.

The core of Ecovative Design’s business is in packaging. That’s where the company has been developing its tech the longest and where its replacements for styrofoam packaging have had the most commercial traction.

But there’s far more to Ecovative’s mushrooms than that and the company’s new investors including Viking Global Investors, with support from Senator Investment Group, AiiM Partners, Trousdale Ventures and other undisclosed backers want to see just how far the company can go. 

Part of the money will be used to build out a discovery platform for new materials and new strains in an effort to make Ecovative, the Gingko Bioworks of the mushroom business. While another chunk of change will be used to build out a larger production facility for its mushroom production.

The Gingko analogy may not be that much of a stretch. Using its platform for manufacturing and deep knowledge of fungi, Ecovative has already spun up a food company called Atlast, which raised $7 million to begin building a fake meat empire on the back of a mushroom-made bacon substitute.

A person in a lab coat stands with their back to several trays of Ecovative’s mushroom material growing in trays. Image Credit: Ecovative Design

And the company also has fashion on the brain. A licensing agreement between Ecovative and Bolt Threads helped power that massively funded startup’s push into manufacturing a leather replacement from mushrooms back in 2018.

The deal between the two ended in acrimony and litigation — and now Ecovative is going it alone, looking to be a provider of bulk leather replacements for anything from shoes to belts, to buckskin jackets.

“It seems like there’s a need for somebody who could not be a branded supplier, but to be someone who can provide scalable mushroom leather,” said Bayer. 

Other companies are working on trying to convince consumers to make the switch to mushrooms or other plant-based leather substitutes. Those are businesses like Mycoworks, which raised $45 million from a slew of celebrities last year to build out its own commercial scale mycelial manufacturing business. Or Natural Fiber Welding, which is backed by none other than the omnipresent eco-conscious fashion accessory adorning the feet of almost every venture investor — Allbirds (or are Atoms the new thing? I can’t keep up.)

“The demand for new biomaterials in the fashion industry, such as mycelium, far outstrips the current supply.  Ecovative is tackling this challenge head-on, committing to building a next generation platform capable of producing mycelium at scale,” said Katrin Ley, Managing Director of Fashion For Good, in a statement. 

While Ecovative makes small batches of products under brands like Atlast, Bayer wants his company to be more of a white-label material provider than a branded business making shoes, packaging, and plant-based meat replacements.

The new financing comes on the heels of Ecovative’s partnership with UK packaging licensee Magical Mushroom Company, which recently announced the opening of four more facilities to supply the UK and EU markets with green packaging solutions, the company said. 

“Mycelium is a unique material that outperforms other sustainable alternatives in industries as diverse as fashion and food,” said Evan Lodes, Partner at Senator Investment Group, which first backed Ecovative back in 2019. “Ecovative pioneered the field of mycelium materials, and has invested in the research and development necessary to deliver it at the scale and cost necessary to make a significant impact.” 



from TechCrunch https://ift.tt/3deuJFc
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support