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

Tuesday, 26 May 2020

Indonesian startup Delman raises $1.6 million to help companies clean up data

Delman, a Jakarta-based data management startup, has raised $1.6 million in seed funding. The round was led by Intudo Ventures, with participation from Prasetia Dwidharma Ventures and Qlue Performa Indonesia, and will be used to establish a research and development center and hire software engineers and data scientists.

Delman was founded in 2018 by chief executive officer Surya Halim, chief product officer Raymond Christopher and chief technology officer Theo Budiyanto, who were classmates at the University of California, Berkeley. After graduation, they worked at tech companies in Silicon Valley, including Google and Splunk, before deciding to focus on the Indonesian market.

Originally launched as an end-to-end big data analytics provider, Delman shifted its focus to data preparation and management after talking to clients in Indonesia, said Halim. Many companies said they had budgeted for expensive data analytics solution, but then realized their data was not ready for analysis because it was spread across multiple formats. Delman’s mission is to make it easier for data engineers and scientists to do their jobs by cleaning up and preparing data.

Halim says many large companies in Indonesia typically spend up to $200,000 to clean and warehouse data, but Delman gives them a more cost-efficient and faster alternative.

“We have the capability to do analytics and data visualization for clients, but there are so many established companies that already do that, which is why we shifted our business model to something more niche and needed,” said Halim. “It also enables us to open our door to partner with everyone doing data analytics services.”

While newer companies and startups have cleaner datasets, Halim said many older Indonesian companies, especially ones with branches in multiple cities, often have large amounts of data spread across pen-and-paper ledgers, Excel spreadsheets and other software. The data may also have code, keywords and typos that need to be corrected.

“It’s easier for a new company, because everything is already standardized,” Halim said, “But if a company that was established in the 1970s wants to unify previous generations of data to integrate it into their system and keep notes on what customer behavior is like in order to compete with up-and-coming companies, then they need to have a data-driven policy.”

Delman is industry-agnostic and its clients range from large corporations and consulting firms to government agencies. Its customers have included PWC and Qlue. Halim said that the startup plans to expand into other Southeast Asian markets and expects that as COVID-19 changes the way people work, companies will want to invest more heavily in their IT infrastructure and make their databases easier to access outside of a central location.

In a press statement, Intudo Ventures founding partner Eddy Chan said, “By combining a highly localized approach with global technical expertise, Delman is providing Indonesian businesses with Indonesian-developed big data solutions, ultimately leading to better outcomes for end-users. Since meeting the Delman founding team in Silicon Valley in 2017, we have witnessed their growth as a management team, and are excited to continue to support them in their entrepreneurial journey ahead.”



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support