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

Well that was a crazy week

Welcome back to The TechCrunch Exchange, a weekly startups-and-markets newsletter. It’s broadly based on the daily column that appears on Extra Crunch, but free, and made for your weekend reading.

Well that was a crazy week

I may be getting older, but it does seem that the pace of tech news has gotten stuck in top-gear. It’s bonkers. Think about how small a splash the news that WeWork is going public via a SPAC made. It was small potatoes in the broader rush of happenings that blasted past us over the last seven days.

Y Comabinator’s Demo Day was this week, somehow, even if it feels like a few weeks have gone by since. Still, it’s what I want to riff on with you today. A nice early-stage break, we could say.

During the one-day demo day rush, a few hundred startups showed off what they are doing in single-slide format. TechCrunch covered some favorites, but we had to leave far more startups on the shelf than we got to write about. Let’s add some names to the mix, shall we?

On the fintech front, a few names stood out to me during the hours I was able to tune in. Alinea wants to build a trading app for Gen Z. I dig the idea as Zoomers seem far cooler than any other generation. Why shouldn’t they get a native investing experience aimed at their demographic?

Hapi is a similar idea, but aimed at Latin America. Again, I like it. One trend I’ve enjoyed seeing in recent quarters has been the application of startup models that have worked in the United States taken to new markets, replicated with local tweaks, and offered up to way more people. Investing has long been artificially expensive. Here’s to making it cheaper.

Atrato checks similar boxes, taking the Affirm-style buy now, pay later (BNPL) model to Latin America. I am generally less stoked about consumer credit apps than I am about consumer savings apps, but given the growth that Affirm, Klarna and others have managed, there’s real demand for their products. Let’s see what Atrato can get done.

Turning from Latin America to Southeast Asia, OctiFi is building BNPL products for that market. It’s not the only startup that we saw at demo day taking on that geographic slice — BrioHR is working there as well.

Bueno Finance fits the theme of fintech for markets other than the United States and Europe, building what it calls “Chime for India.” If you think, as I do, that Chime and other neobanks are generally doing an alright job providing lower-cost, higher-quality banking experiences to less-wealthy consumers, this is an obvious winner. Of course most startups fail, but I like where their thinking is focused. (NextPay is working on SMB digital banking for the Philippines; the list goes on.)

Another theme I had my eyes on were startups delivering their software via an API instead of as a managed service. It’s something that we’ve covered on The Exchange for ages. Some demo day names included Dyte (“Stripe for live video”), Pibit.ai (an API to help structure data), Dayra (finservices for Egyptians via an API), enode (energy provider-EV API), and so on.

Finally, there were a few startups working on services for IRL SMBs. The Third Place is building subscription services for small businesses, while Per Diem wants to bring quick shipping to companies other than Amazon.

There were a bunch of other neat companies (GimBooks! Recover! Wasp! Axiom.ai!), more than I could ever write down for you. Now it’s time to sit back and see which grow the most in the next half year. But I left this particular demo day pretty excited about global startup activity. That’s not a bad way to close a Tuesday.

Late-stage everything

Amidst all the IPO and SPAC news (here and here in case you need to catch up), there were a host of big rounds worth our time. Two came from the insurtech space, with Pie (workers’ comp insurance) and Snapsheet (claims management) raising $118 million and $30 million apiece.

ServiceTitan raised $500 million at a quadrupled valuation of $8.3 billion, Forbes reported. In about two years. That’s a chonky boi valuation differential. I suppose we’ll be covering their IPO next year. And accounting-focused Pilot raised $100 million at a $1.2 billion valuation. The pace of 2021 unicorn creation feels anything but slow.

And I can’t help but note that the UiPath IPO filing is pretty bonkers in terms of illustrating how the company turned terrifying losses into some pretty reasonable economics. It’s looking like it’s working to pull a Snowflake, at least in GAAP terms.

I could add another 17 paragraphs with news just from this month and not even get close to all the eight and nine-figure rounds. It’s bonkers! Surely the Q1 2021 venture capital numbers feel like they should be both hot and spicy. More on that as soon as we get the data.

Various and sundry

I am not here to merely feed you vegetables, however. There’s a budding story that I need to get to in the near future that involves my favorite sport, and my job. More precisely it’s about F1 (the car racing thing) and tech.

Recently Cognizant sponsored the Aston Martin F1 team. Splunk works with McLaren. Microsoft has a deal with Renault’s team, now named after the car company’s Alpine brand. Epson, Bose and Hewlett Packard Enterprise sponsor the Mercedes racing team. Oracle sponsors Red Bull racing. The list goes on!

And this week Zoom announced that it was getting into the F1 game as well. This is all very good fun for myself, and leads me to a hope. Namely that we see some tech companies begin to use F1 teams as a method of intra-industry competition. That would, one, allow me to write about F1 at work — like I am doing right now — and annoy more tech CEOs on earnings calls about why their team isn’t faster. I am sure that by now Splunk CEO Douglas Merritt is tired of my questions about his orange team. But I don’t want to stop.

So if you are a tech CEO, and you do not sponsor an F1 team, I shall from here on presume that your company is too small to matter, or too boring to be fun. And I am only mostly kidding.

Alex



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support