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

Saturday, 27 March 2021

The disconnect between Y Combinator Demo Day and due diligence

Within 48 hours, the startup world experienced two momentous events: Y Combinator’s largest Demo Day ever, and the early investor exodus of Dispo, a photo-sharing app. Both events, while seemingly unrelated, taught us a lot about the importance, and difficulty, of due diligence in our current world.

For background, early investors in Dispo distanced from the startup after a key investigation unearthed allegations around co-creator and popular YouTuber, David Dobrik. Per venture capitalists I spoke to, the move to “sever all ties” with Dispo was unprecedented.

So what’s the impact here? It’s a rude awakening on the importance of due diligence. On Equity, I argued that the Dispo news should nudge venture capitalists to do a more thorough job with vetting founders in the future. Dobrik’s questionable “pranks” were always a search away.

Even though one person doesn’t represent an entire company (Dispo’s team seems great, for what it’s worth), investors still left because of what their money represented. Fast forward, this event could have a chilling effect on VCs working with celebrities or influencers. The liability just seems too huge to back a startup led by potentially problematic individuals, so either stay away or do your homework.

Well, you’d think. Ironically, 24 hours after Dispo investors backed away from the startup was YC Demo Day, one of the marquee startup events of the year. My colleague joked that founders don’t simply need to figure out how to get into Y Combinator anymore — they need to figure out how to stand out in the batch once they get there. The comment, made in jest, underscored a truth about the current startup funding environment: too noisy to handle.

Noise turned into free-for-all investments. One investor got an email from a batch company saying essentially, “thanks for your interest, if you want to invest here’s a document, no due diligence required.” The startup was valued at $100 million. Another investor I spoke to said that a company asked for an investment without meeting the VC.

While these are only anecdotes, I think these pitches are illustrative of the disconnect between the importance of due diligence and the hype cycle we are in. As Dispo showed us, it’s net positive to vet your future partner, back the right startups and bring on the right money. As YC Demo Day showed us, it’s hard to go slow when you can go fast. If the money is dangling in front of you, how do you say no?

I don’t have a solution to the disconnect, and ultimately the change comes down to the ethos of individual investors and founders. But at minimum, this week of extremes gives a dose of reality to startup mania right now.

In the rest of this newsletter, we’ll focus on a five-month unicorn, and Plaid’s harmony at Discord’s cost. As always, you can find me on Twitter @nmasc_. 

Image Credits: Getty Images

‘From launch to unicorn in 5 months’

Pacaso, a startup that wants to make it easier for people to have second home ownership, has reached a $1 billion valuation in just five months. The startup essentially wants to reinvent timeshares, with the goal of “bringing together a small group of co-owners to purchase a share of a single-family home” with access throughout the year, Mary Ann Azevedo reports.

You can get Startups Weekly in your inbox every Saturday, so subscribe here to join the cool kids

Here’s what to know: The proptech unicorns are here to stay. My colleague Eric Eldon wrote about real estate trends, from co-living to a suburban-style living boom.

Colorful bar and light trails composed on the collaged circuit boards. It’s images of big data in Cyber City. Image Credits: Hiroshi Watanabe / Getty Images

Exits, and Plaid’s lack thereof

Even an ol’ enterprise giant wants to remind you that community matters. Microsoft is reportedly trying to scoop up Discord, in deal talks that would value the latter at $10 billion. The startup was last valued at $7 billion.

Here’s what to know: The deal price feels slightly cheap, argues the Equity trio. When you consider the fact that Plaid could be valued at almost double or triple for what it was going to be sold to Visa, one has to wonder if Discord has an anti-trust discount limiting its pricing.

discord illustration

Image Credits: Discord

Around TechCrunch

  • Here’s a discount code to our TechCrunch Early Stage conference, our two-day virtual event for founders, investors and operators. Use code “TCARTICLE” to get 20% off your ticket so you can attend super-cool events like how to bootstrap with Calendly’s Tope Awotona and OpenView’s Blake Bartlett, how to pitch your Series A fundraise with Kleiner Perkins’ Bucky Moore (moderated by moi) and finance for founders with Alexa von Tobel.
  • Grab super early-bird passes to TechCrunch Disrupt for less than $100. Equity might do something fun and special, who knows.
  • The TechCrunch List is a directory of the most active and engaged investors in the VC industry today as recommended by founders.

Across the week

Seen on TechCrunch

Elon Musk declares you can now buy a Tesla with bitcoin in the US

Slack’s new DM feature Connect is thankfully opt-in

The Frankencloud model is our biggest security risk

As more artists and musicians turn their attention to NFTs, so, likely, do money launderers

Tableau CEO Adam Selipsky is returning to AWS to replace Andy Jassy as CEO

Seen on Extra Crunch

It’s time to abandon business intelligence tools

NFTs could bridge video games and the fashion industry

How VC and private equity funds can launch portfolio-acceleration platforms

Steady’s Adam Roseman and investor Emmalyn Shaw outline what worked (and what was missing) in the Series A deck



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support