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

Friday, 29 March 2019

In San Francisco, a fight over a homeless shelter shines a harsh light on a conflicted population

As of 2017, there were roughly 7,000 people living without homes in San Francisco, a number that comprises minors — a lot of them. The San Francisco Unified School District estimates that as of 2017, roughly 2,100 of the children in the school system were homeless —  a number that it said looked to be escalating, not shrinking.

While parents may not hesitate to send their offspring to these same schools, some of them are uncomfortable with the idea of homeless adults and families seeking shelter in close proximity. Such appears to be the point of a GoFundMe campaign that was launched late last week called “Safe Embarcadero for All,” and that was formed with the goal of $100,000 for legal counsel to push against the creation of a shelter along the city’s eastern waterfront region.

The campaign is a reaction to an idea introduced earlier this month by San Francisco Mayor London Breed to turn a parking lot along Embarcadero that’s owned by the Port of San Francisco into a center that would provide health and housing services and round-the-clock stays for up to 200 of the city’s homeless residents.

It isn’t just theoretical. If the Port Commission agrees to the plan, Breed estimated the center could be open by summer. Thus the GoFundMe campaign, which has now raised $71,250 as of this writing from 180 people, some of whom presumably live in the luxury high-rise apartments nearby and others who share the  campaign organizers’ concerns that the shelter could introduce “public safety, drug use, and other problems.”

It’s a frustrating state of affairs, though some are finding inspiration in a new, rival campaign that was created yesterday in support of the center and which is fast gaining financial support.  Called a “SAFER Embarcadero for ALL,” it has already raised more than earlier GoFundMe campaign, with more than 1,021 donors  contributing more than $76,000 as of this writing, including Twilio CEO Jeff Lawson and Salesforce CEO Marc Benioff, who has been a frequent and public supporter of Breed and a number of her initiatives.

Lawson appears to have given $20,000; Benioff has given at least $10,000 to the campaign and is using Twitter as a platform to drum up more support.

Some are heralding their involvement as proof that tech CEOs do care about San Francisco’s homeless population, which they’re often accused of exacerbating by planting themselves in the city, paying their employees high wages, and driving up the cost of everything from rent to groceries in the process.

Even GoFundMe itself has joined sides, donating $5,000 to the new campaign in support of the homeless center or, more specifically the Coalition on Homelessness, which has been promised the monies.

“I don’t think the tech industry is doing enough about the homeless issue,” GoFundMe CEO Rob Solomon told the San Francisco Chronicle this morning. “We wanted to do our small part, even though we’re not located in San Francisco.”

No doubt critics will argue that it’s because GoFundMe is 25 miles south of the San Francisco, in Redwood City, that the company has less at stake.

Still, proponents of the center will take support wherever they can find it.

Indeed, Jennifer Friedenbach, executive director of the Coalition on Homelessness, told the Chronicle earlier today the group is already planning to use the new funds to help with public education, to get input on the center, and to educate residents about what they misunderstand about the city’s homeless population.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support