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, 29 February 2020

Why you can’t overlook the small details in the pursuit of innovation

This week, we read a very short story, The Great Silence, as we start to head toward the end of Ted Chiang’s Exhalation collection. This story asks questions about how we connect with nature, and also how to think about innovation and where new ideas come from.

We will finish the remaining two stories in the collection in the coming week, and then it will be time (sadly!) to change books. I’ll announce the next book in the book club hopefully shortly.

Some further quick notes:

  • Want to join the conversation? Feel free to email me your thoughts at bookclub@techcrunch.com (we got a real email address!) or join some of the discussions on Reddit or Twitter (hashtag TCBookClub)
  • Follow these informal book club articles here: https://techcrunch.com/book-review/. That page also has a built-in RSS feed for posts exclusively in the Book Review category, which is very low volume.
  • Feel free to add your comments in our TechCrunch comments section below this post.

Reading The Great Silence

This is a quite short story with a simple message. The narrator is a parrot discussing humanity’s quest to seek out artificial life elsewhere in the universe. The parrot, observing these actions, reflects on why humanity spends so much time looking for intelligence elsewhere, when it itself is intelligent, and located right next to us. The devastating line Chiang delivers comes toward the end:

But parrots are more similar to humans than any extraterrestrial species ever will be, and humans can observe us up close; they can look us in the eye. How do they expect to recognize an alien intelligence if all they can do is eavesdrop from a hundred light-years away?

The author offers us some obvious points to think about around environmental destruction and species extinction, and those are obvious enough that I think any reader can sort of surmise how the story connects to those issues.

So I want to instead connect this discussion to a theme dear to the heart of TechCrunch readers, and that is the quest for science and innovation.

To me, Chiang isn’t just criticizing our disdain for the animal species around us, but is also critiquing an innovation community that constantly strives for the big and “shiny” discoveries when so many smaller and local discoveries have yet to be made.

We invest billions of dollars into satellites and telescopes and radar arrays hoping to capture some fleeting glimpse into an alien world somewhere in the galaxy. And yet, there are deeply alien worlds all around us. It’s not just parrots — Earth is filled with species that are incredibly different from us in physiology, behavior, and group dynamics. What if the species most alien to our own in the whole galaxy is located right under our noses?

Of course, there would be huge headlines in finding even a single-celled organism on another planet (assuming there was even some way to detect such life in the first place). But that is precisely the type of narrow-minded, novelty-seeking behavior that Chiang is pointing out here.

Nonetheless, innovation can be a weird beast. It isn’t hard to look around the Valley these days and be dismayed at just how adrift a huge part of the industry is. We are creating more “smart” products than ever, yet huge social challenges and scientific frontiers remain completely unfunded. It’s easier to raise funding to start up an upgraded handbag company with a new brand and marketing strategy than it is to build an engineering team to push quantum computing forward.

There are certainly many valid arguments for moving our money to more “worthwhile” pursuits. Yet, fresh ideas that change industries can sometimes come from the oddest places, with even frivolous products occasionally creating fundamental advances in technology. Facebook as a social network might be a time sink for its users, but its huge scale also triggered all kinds of new data center infrastructure technologies that have been widely adopted by the rest of the tech industry. Solving a frivolous problem became the means to solving a problem of more depth.

In the end, you need to seek answers. Don’t overlook the obvious around us or get inured to the quotidian challenges that may just be the fount of innovation. Maybe figuring out the communication of parrots does nothing for us. Or maybe, exploring that area will open up whole new ideas for how to communicate and understand the neural patterns of speech. We can’t know until we tread along the path.

Now, to take one aside before we close out: Exhalation is a collection of previously-published short stories, but Chiang manages to work in his arch-symbol of breath and air into this piece in a fairly tight way:

It’s no coincidence that “aspiration” means both hope and the act of breathing.

When we speak, we use the breath in our lungs to give our thoughts a physical form. The sounds we make are simultaneously our intentions and our life force.

It’s a symbol we saw most substantively in Exhalation (the short story itself, not this whole collection) which we talked about a few posts ago. It’s a gorgeous little motif, and Chiang nicely embeds it to create an empathetic connection between humans and animals.

Some question about Omphalos

For the next and penultimate short story Omphalos, here are some questions to think about as you read the story.

  • What is the meaning of belief? How does belief influence both our views on our place in the world and our approaches to science and the scientific method?
  • Does existence and existentialism flow from external symbols or internal rationales?
  • How do religion and science mix? How did Chiang frame this narrative to make this question easier to contend with?
  • The story focuses on the dynamics of archaeology and astronomy — why these two disciplines and not some other field of science?
  • What’s the ultimate message of the story? Or is there more than one that can be read into the text?


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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support