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

Sunday, 3 January 2021

The big question on every startup’s mind for 2021

My big question for 2021, and the one that is on every startup’s mind, is how will a cataclysmic event such as a global pandemic show up in post-pandemic innovation? I think we’re in the early innings of seeing what ‘aha moments’ have materialized into companies. And we won’t know the pandemic’s true impact on our psyches until the dust settles and we have an opportunity to reflect.

We do know it will be fascinating to watch. In 2020, innovators and investors were forced to stand still, and witness cracks, fractures, and rubble in society in a way like never before. It was a humbling year that, for much of the tech community, was mostly spent inside, away, and alone.

One reaction I’ve noticed so far – that isn’t necessarily new but comes with new weight – is a rush of innovation that focuses on reducing friction. Take trends like the rise of building in public or the unbundling of venture capital. Or remote work’s shift from enabling communication to now needing to enable passive and active collaboration. Apply the same idea to mental health, education, and fitness. Heck, we’re even seeing people take the Y Combinator format and apply it to anything that makes sense, from helping operators turn into investors to helping employees try to turn their side gig into a full-time company.

While these movements didn’t begin because of the coronavirus, they all seem to have a huge, pandemic-sized asterisk next to it.

It would be easy to dismiss these movements as small and inconsequential. But, as my colleague and fellow Equity co-host Danny Crichton pointed out this week, “sometimes the most important changes in venture and startups more generally have come from lowering that last bit of friction to action.”

Lowering friction feels like the mantra we all need to enter 2021 with.

I already have hope that innovation will come from a more diverse set of people, whether it’s in a hacker house for undergraduate women or a student-founded service that matches undergraduate students to non-profits. So, as we enter the new year — and bear with me here – I urge you to be optimistic.

The last year in tech hasn’t left people exhausted and hopeless, it’s left them energized and ready.

Maze, computer artwork.

Will second time be the charm for Qualtrics?

When SAP announced that Qualtrics was getting spun out in July, the full-circle moment made the Equity podcast crew jump to our mics with guesses around why. Now, months later, there’s a new S-1 filing, and more to color in. Alex Wilhelm broke down the Utah-based unicorn’s numbers, noting that it’s the second time Qualtrics has filed.

Will the second time be the charm that Qualtrics needs to actually go public this time around? I’ll let you make the call yourself once you sift through Alex’s analysis of the valuation and financials.

Blackboard Business Strategy Concept

Miami, Substack, and Clubhouse

If those three words in a single subhed elicit a certain reaction from you, Danny Crichton has a bone to pick with you. He wrote a piece this week about tech’s cynicism around anything new, underscoring how Miami’s future as a tech hub, Substack’s future as a replacement for traditional journalism, and Clubhouse’s future as a social media disruptor have come under fire as expected.

The cynicism of immediate perfection is one of the strange dynamics of startups in 2020. There is this expectation that a startup, with one or a few founders and a couple of employees, is somehow going to build a perfect product on day one that mitigates any potential problem even before it becomes one. Maybe these startups are just getting popularized too early, and the people who understand early product are getting subsumed by the wider masses who don’t understand the evolution of products?

Danny’s argument is to give these companies a little more grace to execute on a vision they themselves are not even close to scratching the surface of. When it comes to holding specific decision-makers and businesses to a certain standard, I prefer a more fluid conversation. But I do agree that writing off a business because it hasn’t done everything correctly from the start can hurt progress. It’s easy to be grumpy, but why not choose to be an optimist? Tell me your optimistic bets by responding to this newsletter or tweeting me @nmasc_.

Skyline of downtown Miami, Florida looking toward the Brickell neighborhood on Biscayne Bay, Brickell is one of the largest financial districts in the United States and also has many high-rise residential condominium and apartment towers

And some good news

Speaking of humbling moments and optimism, our own Sarah Perez wrote a piece this week about EarlyBird, an app that lets families and friends gift investments to children. While Acorns and Stash have similar offerings, Earlybird is bringing a fresh UX play to financial literacy, freedom, and education. There’s a ton of work left to be done, hurdles to deal with, and giant unicorns to compete with. EarlyBird, however, is only weeks old so there’s much to watch out for.

VP Caleb Frankel, now EarlyBird COO, explained the early inspiration:

“This all started with a problem I experienced years ago when my beautiful baby niece was born. I found myself head over heels and spending hundreds and hundreds of dollars on just the most ridiculous stuff — pretty much just junk gifts,” he says. “I wanted to have a larger impact in her life and something that she could really use when she grew up.”

Crowdfunding Concept Investment into Idea or Business Startup

Image Credits: oxygen (opens in a new window) / Getty Images

Around TechCrunch

Attending CES 2021? TechCrunch wants to meet your startup

Gift Guide: Last-minute subscriptions to keep the gifts going all year

Across the week

Seen on Extra Crunch

How artificial intelligence will be used in 2021

On the diversity front, 2020 may prove a tipping point

The 2020 boom in climate tech SPACs

2021 will be a calmer year for semiconductors and chips (except for Intel)

Understanding Europe’s big push to rewrite the digital rulebook

Seen on TechCrunch

China lays out ‘rectification’ plan for Jack Ma’s fintech empire Ant

NSO used real people’s location data to pitch its contact-tracing tech, researchers say

India’s slow 2020 told through dollars and cent

An earnest review of a robotic cat pillow

@EquityPod

The Equity pod put together a 2021 predictions episode (with Chris Gates, our producer, making a guest appearance on the mic as well!). We talk about IPO candidates, San Francisco, and the future of drugs.

2020 brought several million downloads to the podcast, and we’re super thankful to all of y’all for tuning in. This year will be even bigger, better, and, hey, maybe we’ll even get to make fun of eachother in person too.

Till next week,

Natasha Mascarenhas



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support