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, 17 January 2020

Caregiving startup Homage raises $10 million Series B to enter new Asian markets

In many countries, an aging population coupled with a low birth rate is increasing the demand for qualified caregivers. In Asia, the need is especially urgent because rapid demographic shifts and changing social structures means family members who traditionally cared for relatives are unable to because they need to work or live far away. Homage wants to help with a platform that not only matches pre-screened professionals and clients, but also enables caregiving organizations to scale up more quickly.

The startup announced this week that it has raised Series B funding, led by EV Growth, with new investors Alternate Ventures and KDV Capital. Returning investor HealthXCapital also participated. The amount of funding was undisclosed, but sources tell TechCrunch it was $10 million.

Launched in 2016 by Gillian Tee, Lily Phang and Tong Duong, Homage currently operates in Singapore and Malaysia, with plans to expand into five more countries over the next two years. Before Homage, Tee, its CEO, worked in the United States, where she was co-founded Rocketrip, a business travel startup backed by Y Combinator. Tee tells TechCrunch she realized the need for a caregiving platform while looking for carers.

“We saw that in ASEAN and the Asia Pacific region, there is really a need to build long-term care infrastructure,” she says.

This includes increasing the pool of basic caregivers to reduce costs and also making it easier for families to be matched with professionals. Homage’s platform currently includes about 2,000 caregivers and focuses on elderly care, but also provides services needed by a wide age range, including rehabilitation care, physiotherapy, speech therapy and occupational therapy.

The platform was also created to give caregiving organizations a tech platform that allows them to expand more quickly and cost efficiently, in turn reducing care expenses for families. Homage interviews caregivers before they are added to the platform and partners with health organizations to provide continuing education and training. On the enterprise side, it helps providers with administrative tasks like compliance and bookings.

Tee says Homage’s screening process goes beyond interviews and background checks.

“From solving my own caregiving problems, I believe that a platform is needed, a highly-curated one, so that every single individual has to be fully competency assessed,” she says.

For caregivers, this means building a profile, and in addition to the information they provide, Homage also works with nurses to evaluate how they are able to perform important tasks like manual transfer techniques. That information is then used by its matching engine.

“The human mind can take in so many details at once, so we have an algorithm for manual transfer techniques, like bent pivot transfers or two-handed transfers, down to that granularity,” Tee says. “It is captured into the system and that translates into mobility, and gives categories of mobility, so it helps us shortlist much better than humans can.” Then final assessments and matches are done by one of Homage’s operators.

Homage also provides compliance tools that collect information about licenses, background and health checks, AED and CPR training and other documentation. On the bookings side, Homage helps organizations manage fluctuations in demand, since many families only need carers a few days a week. Caregivers on the platform range from full-time nurses to part-time carers and it also helps organizations plans breaks to prevent burnout.

Tee says many caregiving organizations put together their own system for administrative tasks and Homage gives them an alternative that lets them set up operations or expand more quickly.

Homage’s funding will be used on expanding its base of caregivers, providing training and new services, including its medical delivery service.

In a press statement, EV Growth managing partner Willson Cuaca said “Increasing aging population and low TFR (total fertility rate) are inevitable. Urbanization and a fast-paced working environment make caregiving service one of the key services in our daily life. Gillian and the team have been consistently trying to make the on-demand caregiving service as accessible as possible, fast and reliable. We are proud to be part of the Homage journey to bring back caregiving with control, grace, and dignity.”



from TechCrunch https://ift.tt/30wt5rW
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support